0x60806040523480156200001157600080fd5b50604080518082018252600a815269053616e647920537761760b41b60208083019182528351808501909452600584526453414e445960d81b908401528151919291620000619160039162000356565b5080516200007790600490602084019062000356565b505050620000946200008e6200013460201b60201c565b62000138565b6008805462010000600160b01b0319163362010000810291909117909155620000c690670de0b6b3a76400006200018a565b336000908152600660205260408082208054600160ff19918216811790925530845291832080548316821790559180527f54cdd369e4e8a8515e52ca72ec816c2101831ad1f18bf44102ed171459c9b4f88054909116821790556008805461ffff1916909117905562000460565b3390565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b038216620001e65760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064015b60405180910390fd5b8060026000828254620001fa9190620003fc565b90915550506001600160a01b038216600081815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a36200025b6000838362000264565b5050565b505050565b60085460ff1615620002da576001600160a01b03831660009081526006602052604090205460ff16620002da5760405162461bcd60e51b815260206004820152601d60248201527f66726f6d2061646472657373206e6f7420696e2077686974656c6973740000006044820152606401620001dd565b600854610100900460ff16156200025f576001600160a01b03821660009081526007602052604090205460ff16156200025f5760405162461bcd60e51b815260206004820152601b60248201527f746f2061646472657373206e6f7420696e2077686974656c69737400000000006044820152606401620001dd565b828054620003649062000423565b90600052602060002090601f016020900481019282620003885760008555620003d3565b82601f10620003a357805160ff1916838001178555620003d3565b82800160010185558215620003d3579182015b82811115620003d3578251825591602001919060010190620003b6565b50620003e1929150620003e5565b5090565b5b80821115620003e15760008155600101620003e6565b600082198211156200041e57634e487b7160e01b600052601160045260246000fd5b500190565b600181811c908216806200043857607f821691505b602082108114156200045a57634e487b7160e01b600052602260045260246000fd5b50919050565b610fe380620004706000396000f3fe608060405234801561001057600080fd5b50600436106101735760003560e01c806379cc6790116100de578063b6cf7cb911610097578063dd62ed3e11610071578063dd62ed3e14610354578063f2fde38b14610367578063fca3b5aa1461037a578063fcd5dd1c1461038d57600080fd5b8063b6cf7cb914610322578063bc93233f14610334578063d7ff644c1461034757600080fd5b806379cc6790146102ad5780638da5cb5b146102c057806395d89b41146102d1578063a457c2d7146102d9578063a9059cbb146102ec578063b239b08d146102ff57600080fd5b80633950935111610130578063395093511461021e5780633b6e4bdf1461023157806340c10f191461025457806342966c681461026757806370a082311461027c578063715018a6146102a557600080fd5b806306fdde03146101785780630754617214610196578063095ea7b3146101c757806318160ddd146101ea57806323b872dd146101fc578063313ce5671461020f575b600080fd5b6101806103a0565b60405161018d9190610db1565b60405180910390f35b6008546101af906201000090046001600160a01b031681565b6040516001600160a01b03909116815260200161018d565b6101da6101d5366004610e22565b610432565b604051901515815260200161018d565b6002545b60405190815260200161018d565b6101da61020a366004610e4c565b61044a565b6040516012815260200161018d565b6101da61022c366004610e22565b61046e565b6101da61023f366004610e88565b60076020526000908152604090205460ff1681565b6101da610262366004610e22565b610490565b61027a610275366004610eaa565b6104c3565b005b6101ee61028a366004610e88565b6001600160a01b031660009081526020819052604090205490565b61027a6104d0565b61027a6102bb366004610e22565b6104e4565b6005546001600160a01b03166101af565b6101806104fd565b6101da6102e7366004610e22565b61050c565b6101da6102fa366004610e22565b61058c565b6101da61030d366004610e88565b60066020526000908152604090205460ff1681565b6008546101da90610100900460ff1681565b61027a610342366004610ed3565b61059a565b6008546101da9060ff1681565b6101ee610362366004610f06565b6105cd565b61027a610375366004610e88565b6105f8565b61027a610388366004610e88565b61066e565b61027a61039b366004610f30565b6106a0565b6060600380546103af90610f4c565b80601f01602080910402602001604051908101604052809291908181526020018280546103db90610f4c565b80156104285780601f106103fd57610100808354040283529160200191610428565b820191906000526020600020905b81548152906001019060200180831161040b57829003601f168201915b5050505050905090565b6000336104408185856106cc565b5060019392505050565b6000336104588582856107f0565b61046385858561086a565b506001949350505050565b60003361044081858561048183836105cd565b61048b9190610f87565b6106cc565b6008546000906201000090046001600160a01b031633146104b057600080fd5b6104ba8383610a14565b50600192915050565b6104cd3382610adb565b50565b6104d8610c19565b6104e26000610c73565b565b6104ef8233836107f0565b6104f98282610adb565b5050565b6060600480546103af90610f4c565b6000338161051a82866105cd565b90508381101561057f5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084015b60405180910390fd5b61046382868684036106cc565b60003361044081858561086a565b6105a2610c19565b6001600160a01b03919091166000908152600660205260409020805460ff1916911515919091179055565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b610600610c19565b6001600160a01b0381166106655760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610576565b6104cd81610c73565b610676610c19565b600880546001600160a01b03909216620100000262010000600160b01b0319909216919091179055565b6106a8610c19565b6008805461ffff191692151561ff0019169290921761010091151591909102179055565b6001600160a01b03831661072e5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610576565b6001600160a01b03821661078f5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610576565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006107fc84846105cd565b9050600019811461086457818110156108575760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610576565b61086484848484036106cc565b50505050565b6001600160a01b0383166108ce5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610576565b6001600160a01b0382166109305760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610576565b6001600160a01b038316600090815260208190526040902054818110156109a85760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610576565b6001600160a01b03848116600081815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3610864848484610cc5565b6001600160a01b038216610a6a5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401610576565b8060026000828254610a7c9190610f87565b90915550506001600160a01b038216600081815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a36104f960008383610cc5565b6001600160a01b038216610b3b5760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b6064820152608401610576565b6001600160a01b03821660009081526020819052604090205481811015610baf5760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b6064820152608401610576565b6001600160a01b0383166000818152602081815260408083208686039055600280548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3610c1483600084610cc5565b505050565b6005546001600160a01b031633146104e25760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610576565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b60085460ff1615610d38576001600160a01b03831660009081526006602052604090205460ff16610d385760405162461bcd60e51b815260206004820152601d60248201527f66726f6d2061646472657373206e6f7420696e2077686974656c6973740000006044820152606401610576565b600854610100900460ff1615610c14576001600160a01b03821660009081526007602052604090205460ff1615610c145760405162461bcd60e51b815260206004820152601b60248201527f746f2061646472657373206e6f7420696e2077686974656c69737400000000006044820152606401610576565b600060208083528351808285015260005b81811015610dde57858101830151858201604001528201610dc2565b81811115610df0576000604083870101525b50601f01601f1916929092016040019392505050565b80356001600160a01b0381168114610e1d57600080fd5b919050565b60008060408385031215610e3557600080fd5b610e3e83610e06565b946020939093013593505050565b600080600060608486031215610e6157600080fd5b610e6a84610e06565b9250610e7860208501610e06565b9150604084013590509250925092565b600060208284031215610e9a57600080fd5b610ea382610e06565b9392505050565b600060208284031215610ebc57600080fd5b5035919050565b80358015158114610e1d57600080fd5b60008060408385031215610ee657600080fd5b610eef83610e06565b9150610efd60208401610ec3565b90509250929050565b60008060408385031215610f1957600080fd5b610f2283610e06565b9150610efd60208401610e06565b60008060408385031215610f4357600080fd5b610eef83610ec3565b600181811c90821680610f6057607f821691505b60208210811415610f8157634e487b7160e01b600052602260045260246000fd5b50919050565b60008219821115610fa857634e487b7160e01b600052601160045260246000fd5b50019056fea264697066735822122042077f163373c50f7c71e76ce8470fb5d770315ee749cf37a83d4735cc3d9eed64736f6c634300080b0033