0x60a060405262278d00600255348015610016575f80fd5b505f80546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a35073c36442b4a4522e871399cd717abdd847ab11fe886080526080516114dd6100b15f395f81816101a2015281816104c30152818161059c015281816106700152818161072001528181610a440152610c6101526114dd5ff3fe608060405260043610610108575f3560e01c80638da5cb5b11610092578063c9da1f8c11610062578063c9da1f8c14610310578063ee44b44e14610325578063f2dd042b1461033a578063f2fde38b1461034e578063fd361d0e1461036d575f80fd5b80638da5cb5b146102a2578063a8f8a633146102be578063befd2fac146102dd578063c7c61e2c146102fc575f80fd5b80634f6f19b0116100d85780634f6f19b014610191578063519f5099146101dc578063712c29851461025b578063715018a61461026f5780638366e79a14610283575f80fd5b8063058054c91461011357806306e99fef1461013b5780630cf1d232146101515780630fbac33314610170575f80fd5b3661010f57005b5f80fd5b34801561011e575f80fd5b5061012860015481565b6040519081526020015b60405180910390f35b348015610146575f80fd5b5061014f610396565b005b34801561015c575f80fd5b5061014f61016b366004611112565b61045a565b34801561017b575f80fd5b5061018461057a565b6040516101329190611129565b34801561019c575f80fd5b506101c47f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610132565b3480156101e7575f80fd5b506101fb6101f6366004611112565b610716565b604080516001600160a01b03998a16815298909716602089015262ffffff90951695870195909552600292830b6060870152910b60808501526001600160801b0390811660a085015291821660c08401521660e082015261010001610132565b348015610266575f80fd5b506101286107f5565b34801561027a575f80fd5b5061014f61081c565b34801561028e575f80fd5b5061014f61029d366004611180565b61088d565b3480156102ad575f80fd5b505f546001600160a01b03166101c4565b3480156102c9575f80fd5b5061014f6102d83660046111b7565b610986565b3480156102e8575f80fd5b5061014f6102f7366004611112565b610ad9565b348015610307575f80fd5b5061014f610bb7565b34801561031b575f80fd5b5061012860045481565b348015610330575f80fd5b5061012860025481565b348015610345575f80fd5b5061014f610c1e565b348015610359575f80fd5b5061014f6103683660046111b7565b610d95565b348015610378575f80fd5b506003546103869060ff1681565b6040519015158152602001610132565b5f546001600160a01b031633146103c85760405162461bcd60e51b81526004016103bf906111d9565b60405180910390fd5b6040515f90339047908381818185875af1925050503d805f8114610407576040519150601f19603f3d011682016040523d82523d5f602084013e61040c565b606091505b505080915050806104575760405162461bcd60e51b81526020600482015260156024820152741dda5d1a191c985dc81d5b9cdd58d8d95cdcd99d5b605a1b60448201526064016103bf565b50565b5f546001600160a01b031633146104835760405162461bcd60e51b81526004016103bf906111d9565b604080516080810182528281523360208201526001600160801b038183018190526060820152905163fc6f786560e01b81525f9182916001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169163fc6f7865916104f7919060040161120e565b60408051808303815f875af1158015610512573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105369190611251565b60408051838152602081018390529294509092507fef4bbc540dccb586b2feb24442d2744b2163eeda96084969a325397cc39030fe910160405180910390a1505050565b6040516370a0823160e01b81523060048201526060905f906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906370a0823190602401602060405180830381865afa1580156105e1573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106059190611273565b67ffffffffffffffff81111561061d5761061d61128a565b604051908082528060200260200182016040528015610646578160200160208202803683370190505b5090505f5b815181101561071057604051632f745c5960e01b8152306004820152602481018290527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690632f745c5990604401602060405180830381865afa1580156106bd573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106e19190611273565b8282815181106106f3576106f361129e565b602090810291909101015280610708816112c6565b91505061064b565b50919050565b5f805f805f805f807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166399fbab888a6040518263ffffffff1660e01b815260040161076c91815260200190565b61018060405180830381865afa158015610788573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107ac9190611327565b909192939495969798999a50909192939495969798995090919250909150809850819950829a50839b50849c50859d50869e50879f505050505050505050919395975091939597565b6003545f9060ff1615610817576002546001546108129190611400565b905090565b505f90565b5f546001600160a01b031633146108455760405162461bcd60e51b81526004016103bf906111d9565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146108b65760405162461bcd60e51b81526004016103bf906111d9565b6001600160a01b03821661090c5760405162461bcd60e51b815260206004820152601a60248201527f5f746f6b656e20616464726573732063616e6e6f74206265203000000000000060448201526064016103bf565b6040516370a0823160e01b81523060048201525f906001600160a01b038416906370a0823190602401602060405180830381865afa158015610950573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109749190611273565b9050610981838383610e7c565b505050565b5f546001600160a01b031633146109af5760405162461bcd60e51b81526004016103bf906111d9565b6109b76107f5565b42101580156109cc57505f6109ca6107f5565b115b610a115760405162461bcd60e51b815260206004820152601660248201527526bab9ba103932b8bab2b9ba1030b732103bb0b4ba1760511b60448201526064016103bf565b600480546040516323b872dd60e01b815230928101929092526001600160a01b03838116602484015260448301919091527f000000000000000000000000000000000000000000000000000000000000000016906323b872dd906064015f604051808303815f87803b158015610a85575f80fd5b505af1158015610a97573d5f803e3d5ffd5b505050507fe69f5b0321de029de1ed8c2f46e8abd49195bcefb47395eb1c73e881cc8a5afe600454604051610ace91815260200190565b60405180910390a150565b5f546001600160a01b03163314610b025760405162461bcd60e51b81526004016103bf906111d9565b60035460ff1615610b6f5760405162461bcd60e51b815260206004820152603160248201527f43616e6e6f74207265717565737420616761696e20756e74696c206669727374604482015270103932b8bab2b9ba1034b99037bb32b91760791b60648201526084016103bf565b4260019081556003805460ff1916909117905560048190556040518181527f77d155c45b6b6d71e74b6b0f4febf87f076bdbfa4130b22682ea9bdb4364c16c90602001610ace565b5f546001600160a01b03163314610be05760405162461bcd60e51b81526004016103bf906111d9565b6003805460ff191690555f600181905560048190556040517ffbcc1c208c9c4d1d9f557267b55c5ae316e74ce676a0db72ef18c6d5f5767c619190a1565b5f546001600160a01b03163314610c475760405162461bcd60e51b81526004016103bf906111d9565b5f610c5061057a565b90505f805f5b8351811015610d8f577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663fc6f78656040518060800160405280878581518110610cab57610cab61129e565b60200260200101518152602001336001600160a01b031681526020016001600160801b03801681526020016001600160801b0380168152506040518263ffffffff1660e01b8152600401610cff919061120e565b60408051808303815f875af1158015610d1a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d3e9190611251565b60408051838152602081018390529295509093507fef4bbc540dccb586b2feb24442d2744b2163eeda96084969a325397cc39030fe910160405180910390a180610d87816112c6565b915050610c56565b50505050565b5f546001600160a01b03163314610dbe5760405162461bcd60e51b81526004016103bf906111d9565b6001600160a01b038116610e235760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016103bf565b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b604080516001600160a01b03848116602483015260448083018590528351808403909101815260649092018352602080830180516001600160e01b031663a9059cbb60e01b17905283518085019094528084527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c656490840152610981928692915f91610f0b918516908490610f88565b8051909150156109815780806020019051810190610f299190611419565b6109815760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b60648201526084016103bf565b6060610f9684845f85610f9e565b949350505050565b606082471015610fff5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b60648201526084016103bf565b5f80866001600160a01b0316858760405161101a919061145a565b5f6040518083038185875af1925050503d805f8114611054576040519150601f19603f3d011682016040523d82523d5f602084013e611059565b606091505b509150915061106a87838387611075565b979650505050505050565b606083156110e35782515f036110dc576001600160a01b0385163b6110dc5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016103bf565b5081610f96565b610f9683838151156110f85781518083602001fd5b8060405162461bcd60e51b81526004016103bf9190611475565b5f60208284031215611122575f80fd5b5035919050565b602080825282518282018190525f9190848201906040850190845b8181101561116057835183529284019291840191600101611144565b50909695505050505050565b6001600160a01b0381168114610457575f80fd5b5f8060408385031215611191575f80fd5b823561119c8161116c565b915060208301356111ac8161116c565b809150509250929050565b5f602082840312156111c7575f80fd5b81356111d28161116c565b9392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b815181526020808301516001600160a01b0316908201526040808301516001600160801b0390811691830191909152606092830151169181019190915260800190565b5f8060408385031215611262575f80fd5b505080516020909101519092909150565b5f60208284031215611283575f80fd5b5051919050565b634e487b7160e01b5f52604160045260245ffd5b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b5f600182016112d7576112d76112b2565b5060010190565b80516112e98161116c565b919050565b805162ffffff811681146112e9575f80fd5b8051600281900b81146112e9575f80fd5b80516001600160801b03811681146112e9575f80fd5b5f805f805f805f805f805f806101808d8f031215611343575f80fd5b8c516bffffffffffffffffffffffff8116811461135e575f80fd5b9b5061136c60208e016112de565b9a5061137a60408e016112de565b995061138860608e016112de565b985061139660808e016112ee565b97506113a460a08e01611300565b96506113b260c08e01611300565b95506113c060e08e01611311565b94506101008d015193506101208d015192506113df6101408e01611311565b91506113ee6101608e01611311565b90509295989b509295989b509295989b565b80820180821115611413576114136112b2565b92915050565b5f60208284031215611429575f80fd5b815180151581146111d2575f80fd5b5f5b8381101561145257818101518382015260200161143a565b50505f910152565b5f825161146b818460208701611438565b9190910192915050565b602081525f8251806020840152611493816040850160208701611438565b601f01601f1916919091016040019291505056fea26469706673582212203e1577efac2d970363e284978497beac4a1c552dcb46b3115036dce004b76c3264736f6c63430008140033