0x608060405234801561001057600080fd5b506004361061007d5760003560e01c8063bc6f02b21161005b578063bc6f02b2146100fa578063c723c87f14610190578063cb122a0914610224578063ddca3f43146102445761007d565b806329763a3a146100825780635207ce82146100bc57806395e911a8146100e0575b600080fd5b6100a86004803603602081101561009857600080fd5b50356001600160a01b0316610262565b604080519115158252519081900360200190f35b6100c4610277565b604080516001600160a01b039092168252519081900360200190f35b6100e8610286565b60408051918252519081900360200190f35b61018e600480360360a081101561011057600080fd5b6001600160a01b038235811692602081013592604082013592606083013516919081019060a08101608082013564010000000081111561014f57600080fd5b82018360208201111561016157600080fd5b8035906020019184600183028401116401000000008311171561018357600080fd5b50909250905061028c565b005b61018e600480360360a08110156101a657600080fd5b6001600160a01b038235811692602081013592604082013592606083013516919081019060a0810160808201356401000000008111156101e557600080fd5b8201836020820111156101f757600080fd5b8035906020019184600183028401116401000000008311171561021957600080fd5b5090925090506103b2565b61018e6004803603602081101561023a57600080fd5b503560ff166104b3565b61024c61052d565b6040805160ff9092168252519081900360200190f35b60016020526000908152604090205460ff1681565b6000546001600160a01b031681565b61271081565b6102ab33736b175474e89094c44da98b954eedeac495271d0f87610536565b60006102cb736b175474e89094c44da98b954eedeac495271d0f8761061f565b905060006102f2736b175474e89094c44da98b954eedeac495271d0f8984898989896106b6565b604080516370a0823160e01b81523060048201529051919250600091736b175474e89094c44da98b954eedeac495271d0f916370a08231916024808301926020929190829003018186803b15801561034957600080fd5b505afa15801561035d573d6000803e3d6000fd5b505050506040513d602081101561037357600080fd5b50519050801561039c5761039c736b175474e89094c44da98b954eedeac495271d0f33836108f3565b6103a78933846108f3565b505050505050505050565b6103bd338787610536565b60006103e287736b175474e89094c44da98b954eedeac495271d0f88888888886106b6565b90506000610404736b175474e89094c44da98b954eedeac495271d0f8361061f565b90506000886001600160a01b03166370a08231306040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b15801561045557600080fd5b505afa158015610469573d6000803e3d6000fd5b505050506040513d602081101561047f57600080fd5b505190508015610494576104948933836108f3565b6103a7736b175474e89094c44da98b954eedeac495271d0f33846108f3565b3360009081526001602052604090205460ff16610517576040805162461bcd60e51b815260206004820152601f60248201527f45786368616e6765202f20556e617574686f72697a65642043616c6c65722e00604482015290519081900360640190fd5b6002805460ff191660ff92909216919091179055565b60025460ff1681565b60408051636eb1769f60e11b81526001600160a01b0385811660048301523060248301529151839285169163dd62ed3e916044808301926020929190829003018186803b15801561058657600080fd5b505afa15801561059a573d6000803e3d6000fd5b505050506040513d60208110156105b057600080fd5b50511015610605576040805162461bcd60e51b815260206004820152601f60248201527f45786368616e6765202f204e6f7420656e6f75676820616c6c6f77616e636500604482015290519081900360640190fd5b61061a6001600160a01b038316843084610907565b505050565b6002546000908190610643906127109061063d90869060ff16610967565b906109c7565b600054909150610660906001600160a01b03868116911683610a09565b6000546040805183815290516001600160a01b03909216917f075a2720282fdf622141dae0b048ef90a21a7e57c134c76912d19d006b3b3f6f9181900360200190a26106ac8382610a5b565b9150505b92915050565b60006106cc6001600160a01b0389168588610a9d565b6000846001600160a01b03168484604051808383808284376040519201945060009350909150508083038183865af19150503d806000811461072a576040519150601f19603f3d011682016040523d82523d6000602084013e61072f565b606091505b5050905080610785576040805162461bcd60e51b815260206004820152601960248201527f45786368616e6765202f20436f756c64206e6f74207377617000000000000000604482015290519081900360640190fd5b6000886001600160a01b03166370a08231306040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b1580156107d457600080fd5b505afa1580156107e8573d6000803e3d6000fd5b505050506040513d60208110156107fe57600080fd5b5051604080518981526020810183905281519293507fcfe2b36dff205c560fb985b2c9220458365fa2dcafb12305e0c565e84b84255b929081900390910190a186811015610893576040805162461bcd60e51b815260206004820152601860248201527f45786368616e6765202f205265636569766564206c6573730000000000000000604482015290519081900360640190fd5b886001600160a01b03168a6001600160a01b03167f945805326745354040d87a85082ddbf37400ed05d6ffe9ae1452b4c5cfe298838a84604051808381526020018281526020019250505060405180910390a39998505050505050505050565b61061a6001600160a01b0384168383610a09565b604080516001600160a01b0380861660248301528416604482015260648082018490528251808303909101815260849091019091526020810180516001600160e01b03166323b872dd60e01b179052610961908590610b40565b50505050565b600082610976575060006106b0565b8282028284828161098357fe5b04146109c05760405162461bcd60e51b8152600401808060200182810382526021815260200180610eaa6021913960400191505060405180910390fd5b9392505050565b60006109c083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250610bf1565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b17905261061a908490610b40565b60006109c083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610c93565b604080516001600160a01b038416602482015260006044808301919091528251808303909101815260649091019091526020810180516001600160e01b031663095ea7b360e01b179052610af2908490610b40565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663095ea7b360e01b17905261061a9084905b6000610b95826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316610ced9092919063ffffffff16565b80519091501561061a57808060200190516020811015610bb457600080fd5b505161061a5760405162461bcd60e51b815260040180806020018281038252602a815260200180610ecb602a913960400191505060405180910390fd5b60008183610c7d5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610c42578181015183820152602001610c2a565b50505050905090810190601f168015610c6f5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000838581610c8957fe5b0495945050505050565b60008184841115610ce55760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315610c42578181015183820152602001610c2a565b505050900390565b6060610cfc8484600085610d04565b949350505050565b6060610d0f85610e70565b610d60576040805162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015290519081900360640190fd5b600080866001600160a01b031685876040518082805190602001908083835b60208310610d9e5780518252601f199092019160209182019101610d7f565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d8060008114610e00576040519150601f19603f3d011682016040523d82523d6000602084013e610e05565b606091505b50915091508115610e19579150610cfc9050565b805115610e295780518082602001fd5b60405162461bcd60e51b8152602060048201818152865160248401528651879391928392604401919085019080838360008315610c42578181015183820152602001610c2a565b6000813f7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470818114801590610cfc57505015159291505056fe536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f775361666545524332303a204552433230206f7065726174696f6e20646964206e6f742073756363656564a26469706673582212200a5b9676ca867887f00c221e27530c810e0b867573d7723a4d89d8e46715ccf164736f6c63430007060033
0x608060405234801561001057600080fd5b50604051610fda380380610fda8339818101604052606081101561003357600080fd5b5080516020808301516040938401516001600160a01b039384166000908152600193849052858120805460ff1990811686179091558154959093166001600160a01b031990951685178155938452939092208054831690911790556002805460ff90931692909116919091179055610f2a806100b06000396000f3fe608060405234801561001057600080fd5b506004361061007d5760003560e01c8063bc6f02b21161005b578063bc6f02b2146100fa578063c723c87f14610190578063cb122a0914610224578063ddca3f43146102445761007d565b806329763a3a146100825780635207ce82146100bc57806395e911a8146100e0575b600080fd5b6100a86004803603602081101561009857600080fd5b50356001600160a01b0316610262565b604080519115158252519081900360200190f35b6100c4610277565b604080516001600160a01b039092168252519081900360200190f35b6100e8610286565b60408051918252519081900360200190f35b61018e600480360360a081101561011057600080fd5b6001600160a01b038235811692602081013592604082013592606083013516919081019060a08101608082013564010000000081111561014f57600080fd5b82018360208201111561016157600080fd5b8035906020019184600183028401116401000000008311171561018357600080fd5b50909250905061028c565b005b61018e600480360360a08110156101a657600080fd5b6001600160a01b038235811692602081013592604082013592606083013516919081019060a0810160808201356401000000008111156101e557600080fd5b8201836020820111156101f757600080fd5b8035906020019184600183028401116401000000008311171561021957600080fd5b5090925090506103b2565b61018e6004803603602081101561023a57600080fd5b503560ff166104b3565b61024c61052d565b6040805160ff9092168252519081900360200190f35b60016020526000908152604090205460ff1681565b6000546001600160a01b031681565b61271081565b6102ab33736b175474e89094c44da98b954eedeac495271d0f87610536565b60006102cb736b175474e89094c44da98b954eedeac495271d0f8761061f565b905060006102f2736b175474e89094c44da98b954eedeac495271d0f8984898989896106b6565b604080516370a0823160e01b81523060048201529051919250600091736b175474e89094c44da98b954eedeac495271d0f916370a08231916024808301926020929190829003018186803b15801561034957600080fd5b505afa15801561035d573d6000803e3d6000fd5b505050506040513d602081101561037357600080fd5b50519050801561039c5761039c736b175474e89094c44da98b954eedeac495271d0f33836108f3565b6103a78933846108f3565b505050505050505050565b6103bd338787610536565b60006103e287736b175474e89094c44da98b954eedeac495271d0f88888888886106b6565b90506000610404736b175474e89094c44da98b954eedeac495271d0f8361061f565b90506000886001600160a01b03166370a08231306040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b15801561045557600080fd5b505afa158015610469573d6000803e3d6000fd5b505050506040513d602081101561047f57600080fd5b505190508015610494576104948933836108f3565b6103a7736b175474e89094c44da98b954eedeac495271d0f33846108f3565b3360009081526001602052604090205460ff16610517576040805162461bcd60e51b815260206004820152601f60248201527f45786368616e6765202f20556e617574686f72697a65642043616c6c65722e00604482015290519081900360640190fd5b6002805460ff191660ff92909216919091179055565b60025460ff1681565b60408051636eb1769f60e11b81526001600160a01b0385811660048301523060248301529151839285169163dd62ed3e916044808301926020929190829003018186803b15801561058657600080fd5b505afa15801561059a573d6000803e3d6000fd5b505050506040513d60208110156105b057600080fd5b50511015610605576040805162461bcd60e51b815260206004820152601f60248201527f45786368616e6765202f204e6f7420656e6f75676820616c6c6f77616e636500604482015290519081900360640190fd5b61061a6001600160a01b038316843084610907565b505050565b6002546000908190610643906127109061063d90869060ff16610967565b906109c7565b600054909150610660906001600160a01b03868116911683610a09565b6000546040805183815290516001600160a01b03909216917f075a2720282fdf622141dae0b048ef90a21a7e57c134c76912d19d006b3b3f6f9181900360200190a26106ac8382610a5b565b9150505b92915050565b60006106cc6001600160a01b0389168588610a9d565b6000846001600160a01b03168484604051808383808284376040519201945060009350909150508083038183865af19150503d806000811461072a576040519150601f19603f3d011682016040523d82523d6000602084013e61072f565b606091505b5050905080610785576040805162461bcd60e51b815260206004820152601960248201527f45786368616e6765202f20436f756c64206e6f74207377617000000000000000604482015290519081900360640190fd5b6000886001600160a01b03166370a08231306040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b1580156107d457600080fd5b505afa1580156107e8573d6000803e3d6000fd5b505050506040513d60208110156107fe57600080fd5b5051604080518981526020810183905281519293507fcfe2b36dff205c560fb985b2c9220458365fa2dcafb12305e0c565e84b84255b929081900390910190a186811015610893576040805162461bcd60e51b815260206004820152601860248201527f45786368616e6765202f205265636569766564206c6573730000000000000000604482015290519081900360640190fd5b886001600160a01b03168a6001600160a01b03167f945805326745354040d87a85082ddbf37400ed05d6ffe9ae1452b4c5cfe298838a84604051808381526020018281526020019250505060405180910390a39998505050505050505050565b61061a6001600160a01b0384168383610a09565b604080516001600160a01b0380861660248301528416604482015260648082018490528251808303909101815260849091019091526020810180516001600160e01b03166323b872dd60e01b179052610961908590610b40565b50505050565b600082610976575060006106b0565b8282028284828161098357fe5b04146109c05760405162461bcd60e51b8152600401808060200182810382526021815260200180610eaa6021913960400191505060405180910390fd5b9392505050565b60006109c083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250610bf1565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b17905261061a908490610b40565b60006109c083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610c93565b604080516001600160a01b038416602482015260006044808301919091528251808303909101815260649091019091526020810180516001600160e01b031663095ea7b360e01b179052610af2908490610b40565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663095ea7b360e01b17905261061a9084905b6000610b95826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316610ced9092919063ffffffff16565b80519091501561061a57808060200190516020811015610bb457600080fd5b505161061a5760405162461bcd60e51b815260040180806020018281038252602a815260200180610ecb602a913960400191505060405180910390fd5b60008183610c7d5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610c42578181015183820152602001610c2a565b50505050905090810190601f168015610c6f5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000838581610c8957fe5b0495945050505050565b60008184841115610ce55760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315610c42578181015183820152602001610c2a565b505050900390565b6060610cfc8484600085610d04565b949350505050565b6060610d0f85610e70565b610d60576040805162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015290519081900360640190fd5b600080866001600160a01b031685876040518082805190602001908083835b60208310610d9e5780518252601f199092019160209182019101610d7f565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d8060008114610e00576040519150601f19603f3d011682016040523d82523d6000602084013e610e05565b606091505b50915091508115610e19579150610cfc9050565b805115610e295780518082602001fd5b60405162461bcd60e51b8152602060048201818152865160248401528651879391928392604401919085019080838360008315610c42578181015183820152602001610c2a565b6000813f7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470818114801590610cfc57505015159291505056fe536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f775361666545524332303a204552433230206f7065726174696f6e20646964206e6f742073756363656564a26469706673582212200a5b9676ca867887f00c221e27530c810e0b867573d7723a4d89d8e46715ccf164736f6c6343000706003300000000000000000000000085f9b7408afe6ceb5e46223451f5d4b832b522dc000000000000000000000000c7b548ad9cf38721810246c079b2d8083aba89090000000000000000000000000000000000000000000000000000000000000014