0x608060405234801561001057600080fd5b506004361061010b5760003560e01c8063893d20e8116100a2578063a9059cbb11610071578063a9059cbb14610222578063dd62ed3e14610235578063e1b7535f1461026e578063f2c098b71461027f578063f2fde38b1461029257600080fd5b8063893d20e8146101d15780638da5cb5b146101f657806395d89b41146102075780639dc29fac1461020f57600080fd5b8063313ce567116100de578063313ce5671461017657806340c10f191461018b57806370a082311461019e578063715018a6146101c757600080fd5b806306fdde0314610110578063095ea7b31461012e57806318160ddd1461015157806323b872dd14610163575b600080fd5b6101186102a5565b6040516101259190610bd1565b60405180910390f35b61014161013c366004610c3b565b610337565b6040519015158152602001610125565b6003545b604051908152602001610125565b610141610171366004610c65565b61034e565b60045460405160ff9091168152602001610125565b610141610199366004610c3b565b6103a0565b6101556101ac366004610ca1565b6001600160a01b031660009081526001602052604090205490565b6101cf61049e565b005b6000546001600160a01b03165b6040516001600160a01b039091168152602001610125565b6000546001600160a01b03166101de565b610118610512565b61014161021d366004610c3b565b610521565b610141610230366004610c3b565b61061a565b610155610243366004610cc3565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b6007546001600160a01b03166101de565b6101cf61028d366004610ca1565b610627565b6101cf6102a0366004610ca1565b610673565b6060600680546102b490610cf6565b80601f01602080910402602001604051908101604052809291908181526020018280546102e090610cf6565b801561032d5780601f106103025761010080835404028352916020019161032d565b820191906000526020600020905b81548152906001019060200180831161031057829003601f168201915b5050505050905090565b60006103443384846106a9565b5060015b92915050565b600061035b8484846107ce565b6001600160a01b038416600090815260026020908152604080832033808552925290912054610396918691610391908690610d46565b6106a9565b5060019392505050565b6007546000906001600160a01b0316336001600160a01b03161461040b5760405162461bcd60e51b815260206004820152601b60248201527f63616c6c6572206973206e6f7420746865206465706f7369746f72000000000060448201526064015b60405180910390fd5b6001600160a01b0383166104535760405162461bcd60e51b815260206004820152600f60248201526e1a5b9d985b1a59081858d8dbdd5b9d608a1b6044820152606401610402565b600082116104945760405162461bcd60e51b815260206004820152600e60248201526d1a5b9d985b1a5908185b5bdd5b9d60921b6044820152606401610402565b610344838361093d565b6000546001600160a01b031633146104c85760405162461bcd60e51b815260040161040290610d59565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6060600580546102b490610cf6565b6007546000906001600160a01b0316336001600160a01b0316146105875760405162461bcd60e51b815260206004820152601b60248201527f63616c6c6572206973206e6f7420746865206465706f7369746f7200000000006044820152606401610402565b6001600160a01b0383166105cf5760405162461bcd60e51b815260206004820152600f60248201526e1a5b9d985b1a59081858d8dbdd5b9d608a1b6044820152606401610402565b600082116106105760405162461bcd60e51b815260206004820152600e60248201526d1a5b9d985b1a5908185b5bdd5b9d60921b6044820152606401610402565b6103448383610a25565b60006103443384846107ce565b6000546001600160a01b031633146106515760405162461bcd60e51b815260040161040290610d59565b600780546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b0316331461069d5760405162461bcd60e51b815260040161040290610d59565b6106a681610b11565b50565b6001600160a01b03831661070b5760405162461bcd60e51b8152602060048201526024808201527f45474332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610402565b6001600160a01b03821661076c5760405162461bcd60e51b815260206004820152602260248201527f45474332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610402565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b0383166108335760405162461bcd60e51b815260206004820152602660248201527f4547434332303a207472616e736665722066726f6d20746865207a65726f206160448201526564647265737360d01b6064820152608401610402565b6001600160a01b0382166108955760405162461bcd60e51b815260206004820152602360248201527f45474332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610402565b6001600160a01b0383166000908152600160205260409020546108b9908290610d46565b6001600160a01b0380851660009081526001602052604080822093909355908416815220546108e9908290610d8e565b6001600160a01b0380841660008181526001602052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906107c19085815260200190565b6001600160a01b0382166109935760405162461bcd60e51b815260206004820152601f60248201527f45474332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401610402565b806003546109a19190610d8e565b6003556001600160a01b0382166000908152600160205260409020546109c8908290610d8e565b6001600160a01b0383166000818152600160205260408082209390935591519091907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610a199085815260200190565b60405180910390a35050565b6001600160a01b038216610a855760405162461bcd60e51b815260206004820152602160248201527f45474332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b6064820152608401610402565b6001600160a01b038216600090815260016020526040902054610aa9908290610d46565b6001600160a01b038316600090815260016020526040902055600354610ad0908290610d46565b6003556040518181526000906001600160a01b038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90602001610a19565b6001600160a01b038116610b765760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610402565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b600060208083528351808285015260005b81811015610bfe57858101830151858201604001528201610be2565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b0381168114610c3657600080fd5b919050565b60008060408385031215610c4e57600080fd5b610c5783610c1f565b946020939093013593505050565b600080600060608486031215610c7a57600080fd5b610c8384610c1f565b9250610c9160208501610c1f565b9150604084013590509250925092565b600060208284031215610cb357600080fd5b610cbc82610c1f565b9392505050565b60008060408385031215610cd657600080fd5b610cdf83610c1f565b9150610ced60208401610c1f565b90509250929050565b600181811c90821680610d0a57607f821691505b602082108103610d2a57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b8181038181111561034857610348610d30565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b8082018082111561034857610348610d3056fea26469706673582212207ad37d66085d3804f3e8d822a6cb665c19bb4e78a226b7f8358b155e59d253fb64736f6c63430008110033
0x608060405266038d7ea4c68000600855624c4b406009553480156200002357600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a35060408051808201909152600f81526e27b732902bb7b936321021b430b4b760891b60208201526006906200009a9082620001c1565b5060408051808201909152600481526313d5d0d560e21b6020820152600590620000c59082620001c1565b506004805460ff1916601217905560035460405133916000917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef916200010e9190815260200190565b60405180910390a36200028d565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200014757607f821691505b6020821081036200016857634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620001bc57600081815260208120601f850160051c81016020861015620001975750805b601f850160051c820191505b81811015620001b857828155600101620001a3565b5050505b505050565b81516001600160401b03811115620001dd57620001dd6200011c565b620001f581620001ee845462000132565b846200016e565b602080601f8311600181146200022d5760008415620002145750858301515b600019600386901b1c1916600185901b178555620001b8565b600085815260208120601f198616915b828110156200025e578886015182559484019460019091019084016200023d565b50858210156200027d5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b610dd7806200029d6000396000f3fe608060405234801561001057600080fd5b506004361061010b5760003560e01c8063893d20e8116100a2578063a9059cbb11610071578063a9059cbb14610222578063dd62ed3e14610235578063e1b7535f1461026e578063f2c098b71461027f578063f2fde38b1461029257600080fd5b8063893d20e8146101d15780638da5cb5b146101f657806395d89b41146102075780639dc29fac1461020f57600080fd5b8063313ce567116100de578063313ce5671461017657806340c10f191461018b57806370a082311461019e578063715018a6146101c757600080fd5b806306fdde0314610110578063095ea7b31461012e57806318160ddd1461015157806323b872dd14610163575b600080fd5b6101186102a5565b6040516101259190610bd1565b60405180910390f35b61014161013c366004610c3b565b610337565b6040519015158152602001610125565b6003545b604051908152602001610125565b610141610171366004610c65565b61034e565b60045460405160ff9091168152602001610125565b610141610199366004610c3b565b6103a0565b6101556101ac366004610ca1565b6001600160a01b031660009081526001602052604090205490565b6101cf61049e565b005b6000546001600160a01b03165b6040516001600160a01b039091168152602001610125565b6000546001600160a01b03166101de565b610118610512565b61014161021d366004610c3b565b610521565b610141610230366004610c3b565b61061a565b610155610243366004610cc3565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b6007546001600160a01b03166101de565b6101cf61028d366004610ca1565b610627565b6101cf6102a0366004610ca1565b610673565b6060600680546102b490610cf6565b80601f01602080910402602001604051908101604052809291908181526020018280546102e090610cf6565b801561032d5780601f106103025761010080835404028352916020019161032d565b820191906000526020600020905b81548152906001019060200180831161031057829003601f168201915b5050505050905090565b60006103443384846106a9565b5060015b92915050565b600061035b8484846107ce565b6001600160a01b038416600090815260026020908152604080832033808552925290912054610396918691610391908690610d46565b6106a9565b5060019392505050565b6007546000906001600160a01b0316336001600160a01b03161461040b5760405162461bcd60e51b815260206004820152601b60248201527f63616c6c6572206973206e6f7420746865206465706f7369746f72000000000060448201526064015b60405180910390fd5b6001600160a01b0383166104535760405162461bcd60e51b815260206004820152600f60248201526e1a5b9d985b1a59081858d8dbdd5b9d608a1b6044820152606401610402565b600082116104945760405162461bcd60e51b815260206004820152600e60248201526d1a5b9d985b1a5908185b5bdd5b9d60921b6044820152606401610402565b610344838361093d565b6000546001600160a01b031633146104c85760405162461bcd60e51b815260040161040290610d59565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6060600580546102b490610cf6565b6007546000906001600160a01b0316336001600160a01b0316146105875760405162461bcd60e51b815260206004820152601b60248201527f63616c6c6572206973206e6f7420746865206465706f7369746f7200000000006044820152606401610402565b6001600160a01b0383166105cf5760405162461bcd60e51b815260206004820152600f60248201526e1a5b9d985b1a59081858d8dbdd5b9d608a1b6044820152606401610402565b600082116106105760405162461bcd60e51b815260206004820152600e60248201526d1a5b9d985b1a5908185b5bdd5b9d60921b6044820152606401610402565b6103448383610a25565b60006103443384846107ce565b6000546001600160a01b031633146106515760405162461bcd60e51b815260040161040290610d59565b600780546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b0316331461069d5760405162461bcd60e51b815260040161040290610d59565b6106a681610b11565b50565b6001600160a01b03831661070b5760405162461bcd60e51b8152602060048201526024808201527f45474332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610402565b6001600160a01b03821661076c5760405162461bcd60e51b815260206004820152602260248201527f45474332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610402565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b0383166108335760405162461bcd60e51b815260206004820152602660248201527f4547434332303a207472616e736665722066726f6d20746865207a65726f206160448201526564647265737360d01b6064820152608401610402565b6001600160a01b0382166108955760405162461bcd60e51b815260206004820152602360248201527f45474332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610402565b6001600160a01b0383166000908152600160205260409020546108b9908290610d46565b6001600160a01b0380851660009081526001602052604080822093909355908416815220546108e9908290610d8e565b6001600160a01b0380841660008181526001602052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906107c19085815260200190565b6001600160a01b0382166109935760405162461bcd60e51b815260206004820152601f60248201527f45474332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401610402565b806003546109a19190610d8e565b6003556001600160a01b0382166000908152600160205260409020546109c8908290610d8e565b6001600160a01b0383166000818152600160205260408082209390935591519091907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610a199085815260200190565b60405180910390a35050565b6001600160a01b038216610a855760405162461bcd60e51b815260206004820152602160248201527f45474332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b6064820152608401610402565b6001600160a01b038216600090815260016020526040902054610aa9908290610d46565b6001600160a01b038316600090815260016020526040902055600354610ad0908290610d46565b6003556040518181526000906001600160a01b038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90602001610a19565b6001600160a01b038116610b765760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610402565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b600060208083528351808285015260005b81811015610bfe57858101830151858201604001528201610be2565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b0381168114610c3657600080fd5b919050565b60008060408385031215610c4e57600080fd5b610c5783610c1f565b946020939093013593505050565b600080600060608486031215610c7a57600080fd5b610c8384610c1f565b9250610c9160208501610c1f565b9150604084013590509250925092565b600060208284031215610cb357600080fd5b610cbc82610c1f565b9392505050565b60008060408385031215610cd657600080fd5b610cdf83610c1f565b9150610ced60208401610c1f565b90509250929050565b600181811c90821680610d0a57607f821691505b602082108103610d2a57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b8181038181111561034857610348610d30565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b8082018082111561034857610348610d3056fea26469706673582212207ad37d66085d3804f3e8d822a6cb665c19bb4e78a226b7f8358b155e59d253fb64736f6c63430008110033