0x608060405234801561001057600080fd5b506004361061009e5760003560e01c8063313ce56711610066578063313ce5671461015e57806370a082311461017d57806395d89b4114610190578063a9059cbb14610198578063dd62ed3e146101ab5761009e565b806306fdde03146100eb578063095ea7b3146101095780630c55699c1461012c57806318160ddd1461014357806323b872dd1461014b575b60405162461bcd60e51b815260206004820152601e60248201527f46616c6c6261636b2066756e6374696f6e20646f6573206e6f7468696e67000060448201526064015b60405180910390fd5b6100f36101e4565b604051610100919061077f565b60405180910390f35b61011c6101173660046107e9565b610276565b6040519015158152602001610100565b61013560095481565b604051908152602001610100565b600554610135565b61011c610159366004610813565b610290565b600854600160a01b900460ff1660405160ff9091168152602001610100565b61013561018b366004610850565b6102b4565b6100f361034b565b61011c6101a63660046107e9565b61035a565b6101356101b9366004610872565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6060600380546101f3906108a5565b80601f016020809104026020016040519081016040528092919081815260200182805461021f906108a5565b801561026c5780601f106102415761010080835404028352916020019161026c565b820191906000526020600020905b81548152906001019060200180831161024f57829003601f168201915b5050505050905090565b600033610284818585610490565b60019150505b92915050565b60003361029e8582856104a2565b6102a9858585610521565b506001949350505050565b60006040516bffffffffffffffffffffffff19606084901b166020820152426034820152600090602d906054016040516020818303038152906040528051906020012060001c61030491906108f5565b61030f90600161091f565b600854909150600090600a9061032f90600160a01b900460ff1682610a19565b6103399084610a28565b6103439190610a3f565b949350505050565b6060600480546101f3906108a5565b60006001606461036b60328261091f565b9050600081116103aa5760405162461bcd60e51b815260206004820152600a6024820152694d4f562c20454158203160b01b60448201526064016100e2565b5060443610156103f45760405162461bcd60e51b8152602060048201526015602482015274496e76616c69642063616c6c646174612073697a6560581b60448201526064016100e2565b60003660448260606104068385610a53565b6104109190610a3f565b905060005b81811015610481576040805160608302850191820135808252823592602090810135926001600160a01b0380851692908616917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3836001019350505050610415565b50600198975050505050505050565b61049d8383836001610580565b505050565b6001600160a01b0383811660009081526001602090815260408083209386168352929052205460001981101561051b578181101561050c57604051637dc7a0d960e11b81526001600160a01b038416600482015260248101829052604481018390526064016100e2565b61051b84848484036000610580565b50505050565b6001600160a01b03831661054b57604051634b637e8f60e11b8152600060048201526024016100e2565b6001600160a01b0382166105755760405163ec442f0560e01b8152600060048201526024016100e2565b61049d838383610655565b6001600160a01b0384166105aa5760405163e602df0560e01b8152600060048201526024016100e2565b6001600160a01b0383166105d457604051634a1406b160e11b8152600060048201526024016100e2565b6001600160a01b038085166000908152600160209081526040808320938716835292905220829055801561051b57826001600160a01b0316846001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161064791815260200190565b60405180910390a350505050565b6001600160a01b038316610680578060026000828254610675919061091f565b909155506106f29050565b6001600160a01b038316600090815260208190526040902054818110156106d35760405163391434e360e21b81526001600160a01b038516600482015260248101829052604481018390526064016100e2565b6001600160a01b03841660009081526020819052604090209082900390555b6001600160a01b03821661070e5760028054829003905561072d565b6001600160a01b03821660009081526020819052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161077291815260200190565b60405180910390a3505050565b602081526000825180602084015260005b818110156107ad5760208186018101516040868401015201610790565b506000604082850101526040601f19601f83011684010191505092915050565b80356001600160a01b03811681146107e457600080fd5b919050565b600080604083850312156107fc57600080fd5b610805836107cd565b946020939093013593505050565b60008060006060848603121561082857600080fd5b610831846107cd565b925061083f602085016107cd565b929592945050506040919091013590565b60006020828403121561086257600080fd5b61086b826107cd565b9392505050565b6000806040838503121561088557600080fd5b61088e836107cd565b915061089c602084016107cd565b90509250929050565b600181811c908216806108b957607f821691505b6020821081036108d957634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601260045260246000fd5b600082610904576109046108df565b500690565b634e487b7160e01b600052601160045260246000fd5b8082018082111561028a5761028a610909565b6001815b600184111561096d5780850481111561095157610951610909565b600184161561095f57908102905b60019390931c928002610936565b935093915050565b6000826109845750600161028a565b816109915750600061028a565b81600181146109a757600281146109b1576109cd565b600191505061028a565b60ff8411156109c2576109c2610909565b50506001821b61028a565b5060208310610133831016604e8410600b84101617156109f0575081810a61028a565b6109fd6000198484610932565b8060001904821115610a1157610a11610909565b029392505050565b600061086b60ff841683610975565b808202811582820484141761028a5761028a610909565b600082610a4e57610a4e6108df565b500490565b8181038181111561028a5761028a61090956fea2646970667358221220490a3756b25aad62bdeb9cb7b25d82d50d530f7e3beb2a30d685da40c67cc83e64736f6c634300081d0033
0x60806040526d14bdda60e3ea09c99004e980810e600555600880546001600160a81b03191674126982508145454ce325ddbe47a25d4ec3d231193317905534801561004957600080fd5b506040518060400160405280601a81526020017fe281accea1e281a2d0b5e281aad180e2808ed0b5e281a3e281ab0000000000008152506040518060400160405280601a81526020017fefbbbfcea1e281a2ce95e2808dcea1e281aace95e281afe281a100000000000081525081600390816100c5919061018d565b5060046100d2828261018d565b505050604051428152426020820152506020600060803961024b565b634e487b7160e01b600052604160045260246000fd5b600181811c9082168061011857607f821691505b60208210810361013857634e487b7160e01b600052602260045260246000fd5b50919050565b601f82111561018857806000526020600020601f840160051c810160208510156101655750805b601f840160051c820191505b818110156101855760008155600101610171565b50505b505050565b81516001600160401b038111156101a6576101a66100ee565b6101ba816101b48454610104565b8461013e565b6020601f8211600181146101ee57600083156101d65750848201515b600019600385901b1c1916600184901b178455610185565b600084815260208120601f198516915b8281101561021e57878501518255602094850194600190920191016101fe565b508482101561023c5786840151600019600387901b60f8161c191681555b50505050600190811b01905550565b610a9c8061025a6000396000f3fe608060405234801561001057600080fd5b506004361061009e5760003560e01c8063313ce56711610066578063313ce5671461015e57806370a082311461017d57806395d89b4114610190578063a9059cbb14610198578063dd62ed3e146101ab5761009e565b806306fdde03146100eb578063095ea7b3146101095780630c55699c1461012c57806318160ddd1461014357806323b872dd1461014b575b60405162461bcd60e51b815260206004820152601e60248201527f46616c6c6261636b2066756e6374696f6e20646f6573206e6f7468696e67000060448201526064015b60405180910390fd5b6100f36101e4565b604051610100919061077f565b60405180910390f35b61011c6101173660046107e9565b610276565b6040519015158152602001610100565b61013560095481565b604051908152602001610100565b600554610135565b61011c610159366004610813565b610290565b600854600160a01b900460ff1660405160ff9091168152602001610100565b61013561018b366004610850565b6102b4565b6100f361034b565b61011c6101a63660046107e9565b61035a565b6101356101b9366004610872565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6060600380546101f3906108a5565b80601f016020809104026020016040519081016040528092919081815260200182805461021f906108a5565b801561026c5780601f106102415761010080835404028352916020019161026c565b820191906000526020600020905b81548152906001019060200180831161024f57829003601f168201915b5050505050905090565b600033610284818585610490565b60019150505b92915050565b60003361029e8582856104a2565b6102a9858585610521565b506001949350505050565b60006040516bffffffffffffffffffffffff19606084901b166020820152426034820152600090602d906054016040516020818303038152906040528051906020012060001c61030491906108f5565b61030f90600161091f565b600854909150600090600a9061032f90600160a01b900460ff1682610a19565b6103399084610a28565b6103439190610a3f565b949350505050565b6060600480546101f3906108a5565b60006001606461036b60328261091f565b9050600081116103aa5760405162461bcd60e51b815260206004820152600a6024820152694d4f562c20454158203160b01b60448201526064016100e2565b5060443610156103f45760405162461bcd60e51b8152602060048201526015602482015274496e76616c69642063616c6c646174612073697a6560581b60448201526064016100e2565b60003660448260606104068385610a53565b6104109190610a3f565b905060005b81811015610481576040805160608302850191820135808252823592602090810135926001600160a01b0380851692908616917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3836001019350505050610415565b50600198975050505050505050565b61049d8383836001610580565b505050565b6001600160a01b0383811660009081526001602090815260408083209386168352929052205460001981101561051b578181101561050c57604051637dc7a0d960e11b81526001600160a01b038416600482015260248101829052604481018390526064016100e2565b61051b84848484036000610580565b50505050565b6001600160a01b03831661054b57604051634b637e8f60e11b8152600060048201526024016100e2565b6001600160a01b0382166105755760405163ec442f0560e01b8152600060048201526024016100e2565b61049d838383610655565b6001600160a01b0384166105aa5760405163e602df0560e01b8152600060048201526024016100e2565b6001600160a01b0383166105d457604051634a1406b160e11b8152600060048201526024016100e2565b6001600160a01b038085166000908152600160209081526040808320938716835292905220829055801561051b57826001600160a01b0316846001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161064791815260200190565b60405180910390a350505050565b6001600160a01b038316610680578060026000828254610675919061091f565b909155506106f29050565b6001600160a01b038316600090815260208190526040902054818110156106d35760405163391434e360e21b81526001600160a01b038516600482015260248101829052604481018390526064016100e2565b6001600160a01b03841660009081526020819052604090209082900390555b6001600160a01b03821661070e5760028054829003905561072d565b6001600160a01b03821660009081526020819052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161077291815260200190565b60405180910390a3505050565b602081526000825180602084015260005b818110156107ad5760208186018101516040868401015201610790565b506000604082850101526040601f19601f83011684010191505092915050565b80356001600160a01b03811681146107e457600080fd5b919050565b600080604083850312156107fc57600080fd5b610805836107cd565b946020939093013593505050565b60008060006060848603121561082857600080fd5b610831846107cd565b925061083f602085016107cd565b929592945050506040919091013590565b60006020828403121561086257600080fd5b61086b826107cd565b9392505050565b6000806040838503121561088557600080fd5b61088e836107cd565b915061089c602084016107cd565b90509250929050565b600181811c908216806108b957607f821691505b6020821081036108d957634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601260045260246000fd5b600082610904576109046108df565b500690565b634e487b7160e01b600052601160045260246000fd5b8082018082111561028a5761028a610909565b6001815b600184111561096d5780850481111561095157610951610909565b600184161561095f57908102905b60019390931c928002610936565b935093915050565b6000826109845750600161028a565b816109915750600061028a565b81600181146109a757600281146109b1576109cd565b600191505061028a565b60ff8411156109c2576109c2610909565b50506001821b61028a565b5060208310610133831016604e8410600b84101617156109f0575081810a61028a565b6109fd6000198484610932565b8060001904821115610a1157610a11610909565b029392505050565b600061086b60ff841683610975565b808202811582820484141761028a5761028a610909565b600082610a4e57610a4e6108df565b500490565b8181038181111561028a5761028a61090956fea2646970667358221220490a3756b25aad62bdeb9cb7b25d82d50d530f7e3beb2a30d685da40c67cc83e64736f6c634300081d0033