0x608060405234801561001057600080fd5b506109ee806100206000396000f3fe608060405234801561001057600080fd5b50600436106100b45760003560e01c8063a06617cd11610071578063a06617cd1461013f578063ad6f6e8914610172578063cc6fcf721461019b578063ce8af54b146101bb578063f2fde38b146101ce578063fac2c621146101e157600080fd5b806322a5dde4146100b95780633b4da69f146100ce5780635e5c06e2146100e1578063715018a6146101145780638129fc1c1461011c5780638da5cb5b14610124575b600080fd5b6100cc6100c7366004610812565b6101f4565b005b6100cc6100dc366004610834565b610243565b6101016100ef366004610812565b60656020526000908152604090205481565b6040519081526020015b60405180910390f35b6100cc61031b565b6100cc61032f565b6033546040516001600160a01b03909116815260200161010b565b61016261014d366004610812565b60666020526000908152604090205460ff1681565b604051901515815260200161010b565b610101610180366004610812565b6001600160a01b031660009081526065602052604090205490565b6101ae6101a936600461085e565b61043f565b60405161010b91906108d3565b6100cc6101c9366004610917565b610516565b6100cc6101dc366004610812565b610630565b6100cc6101ef366004610812565b6106a6565b6101fc6106f0565b6001600160a01b03811660009081526066602052604090205460ff16610240576001600160a01b0381166000908152606660205260409020805460ff191660011790555b50565b3360009081526066602052604090205460ff166102a15760405162461bcd60e51b8152602060048201526017602482015276139bdd081c9959da5cdd195c99590818dbdb9d1c9858dd604a1b60448201526064015b60405180910390fd5b6001600160a01b038216600090815260656020526040902054156102ff5760405162461bcd60e51b8152602060048201526015602482015274416c7265616479206a6f696e656420612067616d6560581b6044820152606401610298565b6001600160a01b03909116600090815260656020526040902055565b6103236106f0565b61032d600061074a565b565b600054610100900460ff161580801561034f5750600054600160ff909116105b806103695750303b158015610369575060005460ff166001145b6103cc5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610298565b6000805460ff1916600117905580156103ef576000805461ff0019166101001790555b6103f761079c565b8015610240576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a150565b60608167ffffffffffffffff81111561045a5761045a610943565b604051908082528060200260200182016040528015610483578160200160208202803683370190505b50905060005b8281101561050f57606560008585848181106104a7576104a7610959565b90506020020160208101906104bc9190610812565b6001600160a01b03166001600160a01b03168152602001908152602001600020600001548282815181106104f2576104f2610959565b6020908102919091010152806105078161096f565b915050610489565b5092915050565b3360009081526066602052604090205460ff1661056f5760405162461bcd60e51b8152602060048201526017602482015276139bdd081c9959da5cdd195c99590818dbdb9d1c9858dd604a1b6044820152606401610298565b6001600160a01b03811660009081526065602052604090205482146105e95760405162461bcd60e51b815260206004820152602a60248201527f506c61796572206e6f7420696e207468652067616d652073706563696669656460448201526908189e4819d85b59525960b21b6064820152608401610298565b6001600160a01b038116600081815260656020526040808220829055518492917f7823e479a1a4ebe2418874847436f8a1680c5ee5b17f38bb59dbff28e1b4555291a35050565b6106386106f0565b6001600160a01b03811661069d5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610298565b6102408161074a565b6106ae6106f0565b6001600160a01b03811660009081526066602052604090205460ff1615610240576001600160a01b03166000908152606660205260409020805460ff19169055565b6033546001600160a01b0316331461032d5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610298565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600054610100900460ff166107c35760405162461bcd60e51b815260040161029890610996565b61032d600054610100900460ff166107ed5760405162461bcd60e51b815260040161029890610996565b61032d3361074a565b80356001600160a01b038116811461080d57600080fd5b919050565b60006020828403121561082457600080fd5b61082d826107f6565b9392505050565b6000806040838503121561084757600080fd5b610850836107f6565b946020939093013593505050565b6000806020838503121561087157600080fd5b823567ffffffffffffffff8082111561088957600080fd5b818501915085601f83011261089d57600080fd5b8135818111156108ac57600080fd5b8660208260051b85010111156108c157600080fd5b60209290920196919550909350505050565b6020808252825182820181905260009190848201906040850190845b8181101561090b578351835292840192918401916001016108ef565b50909695505050505050565b6000806040838503121561092a57600080fd5b8235915061093a602084016107f6565b90509250929050565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b60006001820161098f57634e487b7160e01b600052601160045260246000fd5b5060010190565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b60608201526080019056fea164736f6c6343000811000a