0x608060405234801561001057600080fd5b506004361061009e5760003560e01c80638da5cb5b116100665780638da5cb5b146101a45780638f32d59b146101ac578063a42dce80146101c8578063c415b95c146101ee578063f2fde38b146101f65761009e565b80631e59c529146100a35780632b20e39714610156578063451c3d801461017a578063715018a6146101825780638d859f3e1461018a575b600080fd5b610154600480360360408110156100b957600080fd5b8101906020810181356401000000008111156100d457600080fd5b8201836020820111156100e657600080fd5b8035906020019184600183028401116401000000008311171561010857600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550505090356001600160a01b0316915061021c9050565b005b61015e610493565b604080516001600160a01b039092168252519081900360200190f35b61015e6104a2565b6101546104b1565b610192610554565b60408051918252519081900360200190f35b61015e610561565b6101b4610570565b604080519115158252519081900360200190f35b610154600480360360208110156101de57600080fd5b50356001600160a01b0316610594565b61015e6105f9565b6101546004803603602081101561020c57600080fd5b50356001600160a01b0316610608565b6001600160a01b03811661026d576040805162461bcd60e51b8152602060048201526013602482015272496e76616c69642062656e656669636961727960681b604482015290519081900360640190fd5b6102768261066a565b60025460408051631e59c52960e01b81526001600160a01b03848116602483015260048201928352855160448301528551931692631e59c5299286928692829160640190602086019080838360005b838110156102dd5781810151838201526020016102c5565b50505050905090810190601f16801561030a5780820380516001836020036101000a031916815260200191505b509350505050600060405180830381600087803b15801561032a57600080fd5b505af115801561033e573d6000803e3d6000fd5b5050600154600354604080516323b872dd60e01b81523360048201526001600160a01b03928316602482015268056bc75e2d63100000604482015290519190921693506323b872dd925060648083019260209291908290030181600087803b1580156103a957600080fd5b505af11580156103bd573d6000803e3d6000fd5b505050506040513d60208110156103d357600080fd5b50506040805168056bc75e2d63100000808252602082810184815286519484019490945285516001600160a01b0386169433947fb8c56202a5ae8b00edfcd57a54ec6c3fb8d2f6deb3067a7ba11408a7bd014a3e94938993919291606084019185019080838360005b8381101561045457818101518382015260200161043c565b50505050905090810190601f1680156104815780820380516001836020036101000a031916815260200191505b50935050505060405180910390a35050565b6002546001600160a01b031681565b6001546001600160a01b031681565b6104b9610570565b61050a576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b68056bc75e2d6310000081565b6000546001600160a01b031690565b600080546001600160a01b0316610585610765565b6001600160a01b031614905090565b61059c610570565b6105ed576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6105f681610769565b50565b6003546001600160a01b031681565b610610610570565b610661576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6105f681610818565b805181906002118015906106805750600f815111155b6106bb5760405162461bcd60e51b81526004018080602001828103825260468152602001806109b46046913960600191505060405180910390fd5b60005b8151811015610760576106ea8282815181106106d657fe5b01602001516001600160f81b0319166108b8565b8061071357506107138282815181106106ff57fe5b01602001516001600160f81b03191661091e565b610758576040805162461bcd60e51b815260206004820152601160248201527024b73b30b634b21021b430b930b1ba32b960791b604482015290519081900360640190fd5b6001016106be565b505050565b3390565b6001600160a01b0381166107bc576040805162461bcd60e51b815260206004820152601560248201527424b73b30b634b2103332b29031b7b63632b1ba37b960591b604482015290519081900360640190fd5b6003546040516001600160a01b038084169216907f649c5e3d0ed183894196148e193af316452b0037e77d2ff0fef23b7dc722bed090600090a3600380546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b03811661085d5760405162461bcd60e51b815260040180806020018281038252602681526020018061098e6026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000604160f81b6001600160f81b03198316108015906108e65750602d60f91b6001600160f81b0319831611155b806109185750606160f81b6001600160f81b03198316108015906109185750603d60f91b6001600160f81b0319831611155b92915050565b6000600360fc1b6001600160f81b0319831610801590610918575050603960f81b6001600160f81b031991909116111590565b6000813f7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47081158015906109855750808214155b94935050505056fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f20616464726573734e616d652073686f756c642062652067726561746572207468616e206f7220657175616c20746f203220616e64206c657373207468616e206f7220657175616c20746f203135a265627a7a7231582040e3e513f6a2216a170736f442334495c6419fe857b0fea3d982341523c18bd464736f6c634300050f0032
0x608060405234801561001057600080fd5b50604051610ddd380380610ddd8339818101604052608081101561003357600080fd5b508051602082015160408301516060909301519192909161005b6001600160e01b036101b216565b600080546001600160a01b0319166001600160a01b0392831617808255604051921691600080516020610dbd833981519152908290a36100ad846001600160a01b03166101b660201b6109511760201c565b6100e85760405162461bcd60e51b8152600401808060200182810382526023815260200180610d746023913960400191505060405180910390fd5b610104836001600160a01b03166101b660201b6109511760201c565b610155576040805162461bcd60e51b815260206004820152601e60248201527f5265676973747261722073686f756c64206265206120636f6e74726163740000604482015290519081900360640190fd5b600180546001600160a01b038087166001600160a01b0319928316179092556002805492861692909116919091179055610197826001600160e01b036101f216565b6101a9816001600160e01b036102a916565b50505050610337565b3390565b6000813f7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47081158015906101ea5750808214155b949350505050565b6001600160a01b03811661024d576040805162461bcd60e51b815260206004820152601560248201527f496e76616c69642066656520636f6c6c6563746f720000000000000000000000604482015290519081900360640190fd5b6003546040516001600160a01b038084169216907f649c5e3d0ed183894196148e193af316452b0037e77d2ff0fef23b7dc722bed090600090a3600380546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0381166102ee5760405162461bcd60e51b8152600401808060200182810382526026815260200180610d976026913960400191505060405180910390fd5b600080546040516001600160a01b0380851693921691600080516020610dbd83398151915291a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b610a2e806103466000396000f3fe608060405234801561001057600080fd5b506004361061009e5760003560e01c80638da5cb5b116100665780638da5cb5b146101a45780638f32d59b146101ac578063a42dce80146101c8578063c415b95c146101ee578063f2fde38b146101f65761009e565b80631e59c529146100a35780632b20e39714610156578063451c3d801461017a578063715018a6146101825780638d859f3e1461018a575b600080fd5b610154600480360360408110156100b957600080fd5b8101906020810181356401000000008111156100d457600080fd5b8201836020820111156100e657600080fd5b8035906020019184600183028401116401000000008311171561010857600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550505090356001600160a01b0316915061021c9050565b005b61015e610493565b604080516001600160a01b039092168252519081900360200190f35b61015e6104a2565b6101546104b1565b610192610554565b60408051918252519081900360200190f35b61015e610561565b6101b4610570565b604080519115158252519081900360200190f35b610154600480360360208110156101de57600080fd5b50356001600160a01b0316610594565b61015e6105f9565b6101546004803603602081101561020c57600080fd5b50356001600160a01b0316610608565b6001600160a01b03811661026d576040805162461bcd60e51b8152602060048201526013602482015272496e76616c69642062656e656669636961727960681b604482015290519081900360640190fd5b6102768261066a565b60025460408051631e59c52960e01b81526001600160a01b03848116602483015260048201928352855160448301528551931692631e59c5299286928692829160640190602086019080838360005b838110156102dd5781810151838201526020016102c5565b50505050905090810190601f16801561030a5780820380516001836020036101000a031916815260200191505b509350505050600060405180830381600087803b15801561032a57600080fd5b505af115801561033e573d6000803e3d6000fd5b5050600154600354604080516323b872dd60e01b81523360048201526001600160a01b03928316602482015268056bc75e2d63100000604482015290519190921693506323b872dd925060648083019260209291908290030181600087803b1580156103a957600080fd5b505af11580156103bd573d6000803e3d6000fd5b505050506040513d60208110156103d357600080fd5b50506040805168056bc75e2d63100000808252602082810184815286519484019490945285516001600160a01b0386169433947fb8c56202a5ae8b00edfcd57a54ec6c3fb8d2f6deb3067a7ba11408a7bd014a3e94938993919291606084019185019080838360005b8381101561045457818101518382015260200161043c565b50505050905090810190601f1680156104815780820380516001836020036101000a031916815260200191505b50935050505060405180910390a35050565b6002546001600160a01b031681565b6001546001600160a01b031681565b6104b9610570565b61050a576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b68056bc75e2d6310000081565b6000546001600160a01b031690565b600080546001600160a01b0316610585610765565b6001600160a01b031614905090565b61059c610570565b6105ed576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6105f681610769565b50565b6003546001600160a01b031681565b610610610570565b610661576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6105f681610818565b805181906002118015906106805750600f815111155b6106bb5760405162461bcd60e51b81526004018080602001828103825260468152602001806109b46046913960600191505060405180910390fd5b60005b8151811015610760576106ea8282815181106106d657fe5b01602001516001600160f81b0319166108b8565b8061071357506107138282815181106106ff57fe5b01602001516001600160f81b03191661091e565b610758576040805162461bcd60e51b815260206004820152601160248201527024b73b30b634b21021b430b930b1ba32b960791b604482015290519081900360640190fd5b6001016106be565b505050565b3390565b6001600160a01b0381166107bc576040805162461bcd60e51b815260206004820152601560248201527424b73b30b634b2103332b29031b7b63632b1ba37b960591b604482015290519081900360640190fd5b6003546040516001600160a01b038084169216907f649c5e3d0ed183894196148e193af316452b0037e77d2ff0fef23b7dc722bed090600090a3600380546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b03811661085d5760405162461bcd60e51b815260040180806020018281038252602681526020018061098e6026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000604160f81b6001600160f81b03198316108015906108e65750602d60f91b6001600160f81b0319831611155b806109185750606160f81b6001600160f81b03198316108015906109185750603d60f91b6001600160f81b0319831611155b92915050565b6000600360fc1b6001600160f81b0319831610801590610918575050603960f81b6001600160f81b031991909116111590565b6000813f7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47081158015906109855750808214155b94935050505056fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f20616464726573734e616d652073686f756c642062652067726561746572207468616e206f7220657175616c20746f203220616e64206c657373207468616e206f7220657175616c20746f203135a265627a7a7231582040e3e513f6a2216a170736f442334495c6419fe857b0fea3d982341523c18bd464736f6c634300050f0032416363657074656420746f6b656e2073686f756c64206265206120636f6e74726163744f776e61626c653a206e6577206f776e657220697320746865207a65726f20616464726573738be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e00000000000000000000000000f5d2fb29fb7d3cfee444a200298f468908cc9420000000000000000000000002a187453064356c898cae034eaed119e1663acb80000000000000000000000009a6ebe7e2a7722f8200d0ffb63a1f6406a0d7dce0000000000000000000000009a6ebe7e2a7722f8200d0ffb63a1f6406a0d7dce