0x60a060405234801561001057600080fd5b506040516111ee3803806111ee83398101604081905261002f9161010b565b600160005561003d336100b9565b6001805460ff60a01b191690556001600160a01b0381166100a45760405162461bcd60e51b815260206004820152601560248201527f496e76616c696420746f6b656e20616464726573730000000000000000000000604482015260640160405180910390fd5b60601b6001600160601b031916608052610139565b600180546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b60006020828403121561011c578081fd5b81516001600160a01b0381168114610132578182fd5b9392505050565b60805160601c6110896101656000396000818161014401528181610468015261051201526110896000f3fe6080604052600436106100a65760003560e01c80632eb4a7ab146100b257806336317972146100db5780633f4ba83a146100fd5780634783f0ef1461011257806355a373d6146101325780635c975abb14610173578063715018a614610198578063772dc32f146101ad57806384276d81146101dd5780638456cb59146101fd5780638da5cb5b146102125780639e281a9814610227578063f2fde38b1461024757600080fd5b366100ad57005b600080fd5b3480156100be57600080fd5b506100c860025481565b6040519081526020015b60405180910390f35b3480156100e757600080fd5b506100fb6100f6366004610d21565b610267565b005b34801561010957600080fd5b506100fb61057a565b34801561011e57600080fd5b506100fb61012d366004610d09565b6105b3565b34801561013e57600080fd5b506101667f000000000000000000000000000000000000000000000000000000000000000081565b6040516100d29190610e29565b34801561017f57600080fd5b506101886105e7565b60405190151581526020016100d2565b3480156101a457600080fd5b506100fb6105f7565b3480156101b957600080fd5b506101886101c8366004610ca6565b60036020526000908152604090205460ff1681565b3480156101e957600080fd5b506100fb6101f8366004610d09565b610630565b34801561020957600080fd5b506100fb6106d7565b34801561021e57600080fd5b5061016661070e565b34801561023357600080fd5b506100fb610242366004610cc0565b61071d565b34801561025357600080fd5b506100fb610262366004610ca6565b610760565b600260005414156102bf5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064015b60405180910390fd5b60026000556102cc6105e7565b156102e95760405162461bcd60e51b81526004016102b690610e70565b600082116103495760405162461bcd60e51b815260206004820152602760248201527f436c61696d3a20416d6f756e74206d7573742062652067726561746572207468604482015266616e207a65726f60c81b60648201526084016102b6565b6040516001600160601b03193360601b166020820152603481018390526000906054016040516020818303038152906040528051906020012090506103918260025483610800565b6103db5760405162461bcd60e51b815260206004820152601b60248201527a21b630b4b69d1024b73b30b634b21026b2b935b63290383937b7b360291b60448201526064016102b6565b3360009081526003602052604090205460ff161561043b5760405162461bcd60e51b815260206004820152601e60248201527f436c61696d3a204164647265737320616c726561647920636c61696d6564000060448201526064016102b6565b336000908152600360209081526040808320805460ff19166001179055805163313ce56760e01b815290517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169263313ce5679260048082019391829003018186803b1580156104b257600080fd5b505afa1580156104c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104ea9190610dec565b905060006104f982600a610f12565b6105039086610fbd565b90506105396001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163383610818565b60405185815233907f7084f5476618d8e60b11ef0d7d3f06914655adb8793e28ff7f018d4c76d505d59060200160405180910390a250506001600055505050565b3361058361070e565b6001600160a01b0316146105a95760405162461bcd60e51b81526004016102b690610e9a565b6105b161086f565b565b336105bc61070e565b6001600160a01b0316146105e25760405162461bcd60e51b81526004016102b690610e9a565b600255565b600154600160a01b900460ff1690565b3361060061070e565b6001600160a01b0316146106265760405162461bcd60e51b81526004016102b690610e9a565b6105b16000610901565b3361063961070e565b6001600160a01b03161461065f5760405162461bcd60e51b81526004016102b690610e9a565b478111156106a65760405162461bcd60e51b8152602060048201526014602482015273496e73756666696369656e742062616c616e636560601b60448201526064016102b6565b604051339082156108fc029083906000818181858888f193505050501580156106d3573d6000803e3d6000fd5b5050565b336106e061070e565b6001600160a01b0316146107065760405162461bcd60e51b81526004016102b690610e9a565b6105b1610953565b6001546001600160a01b031690565b3361072661070e565b6001600160a01b03161461074c5760405162461bcd60e51b81526004016102b690610e9a565b6106d36001600160a01b0383163383610818565b3361076961070e565b6001600160a01b03161461078f5760405162461bcd60e51b81526004016102b690610e9a565b6001600160a01b0381166107f45760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016102b6565b6107fd81610901565b50565b60008261080d85846109b3565b1490505b9392505050565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b17905261086a908490610a37565b505050565b6108776105e7565b6108ba5760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b60448201526064016102b6565b6001805460ff60a01b191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516108f79190610e29565b60405180910390a1565b600180546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b61095b6105e7565b156109785760405162461bcd60e51b81526004016102b690610e70565b6001805460ff60a01b1916600160a01b1790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586108ea3390565b600081815b8451811015610a2d5760008582815181106109e357634e487b7160e01b600052603260045260246000fd5b60200260200101519050808311610a095760008381526020829052604090209250610a1a565b600081815260208490526040902092505b5080610a258161100c565b9150506109b8565b5090505b92915050565b6000610a8c826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316610b099092919063ffffffff16565b80519091501561086a5780806020019051810190610aaa9190610ce9565b61086a5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b60648201526084016102b6565b6060610b188484600085610b20565b949350505050565b606082471015610b815760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b60648201526084016102b6565b6001600160a01b0385163b610bd85760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016102b6565b600080866001600160a01b03168587604051610bf49190610e0d565b60006040518083038185875af1925050503d8060008114610c31576040519150601f19603f3d011682016040523d82523d6000602084013e610c36565b606091505b5091509150610c46828286610c51565b979650505050505050565b60608315610c60575081610811565b825115610c705782518084602001fd5b8160405162461bcd60e51b81526004016102b69190610e3d565b80356001600160a01b0381168114610ca157600080fd5b919050565b600060208284031215610cb7578081fd5b61081182610c8a565b60008060408385031215610cd2578081fd5b610cdb83610c8a565b946020939093013593505050565b600060208284031215610cfa578081fd5b81518015158114610811578182fd5b600060208284031215610d1a578081fd5b5035919050565b60008060408385031215610d33578182fd5b823591506020808401356001600160401b0380821115610d51578384fd5b818601915086601f830112610d64578384fd5b813581811115610d7657610d7661103d565b8060051b604051601f19603f83011681018181108582111715610d9b57610d9b61103d565b604052828152858101935084860182860187018b1015610db9578788fd5b8795505b83861015610ddb578035855260019590950194938601938601610dbd565b508096505050505050509250929050565b600060208284031215610dfd578081fd5b815160ff81168114610811578182fd5b60008251610e1f818460208701610fdc565b9190910192915050565b6001600160a01b0391909116815260200190565b6020815260008251806020840152610e5c816040850160208701610fdc565b601f01601f19169190910160400192915050565b60208082526010908201526f14185d5cd8589b194e881c185d5cd95960821b604082015260600190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600181815b80851115610f0a578160001904821115610ef057610ef0611027565b80851615610efd57918102915b93841c9390800290610ed4565b509250929050565b600061081160ff841683600082610f2b57506001610a31565b81610f3857506000610a31565b8160018114610f4e5760028114610f5857610f74565b6001915050610a31565b60ff841115610f6957610f69611027565b50506001821b610a31565b5060208310610133831016604e8410600b8410161715610f97575081810a610a31565b610fa18383610ecf565b8060001904821115610fb557610fb5611027565b029392505050565b6000816000190483118215151615610fd757610fd7611027565b500290565b60005b83811015610ff7578181015183820152602001610fdf565b83811115611006576000848401525b50505050565b600060001982141561102057611020611027565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fdfea26469706673582212201d1c33ef664f9575d090217461757cc442e0315d0d974d4275f3765170cf41e364736f6c6343000804003300000000000000000000000054fe4948b348f1c21f27cd40c73a79c9090f0fba