6101006040526001600b819055600f805460ff1916909117905534801562000025575f80fd5b5060408051602080820183525f82528251808401845260098152681410561150d490519560ba1b81830152835180850190945260068452651610d490519560d21b91840191909152909160126122b8600133806200009c57604051631e4fbdf760e01b81525f600482015260240160405180910390fd5b620000a781620001fa565b50620000b38662000249565b60016004556008620000c68682620002f9565b506009620000d58582620002f9565b5060ff83166080819052620000ec90600a620004d4565b60c0819052620000fd9082620004eb565b60e05260c0516200010f9083620004eb565b60a0819052335f818152600a60209081526040808320805460ff191660011790556006825280832085905551938452919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050505050506040518060400160405280601581526020017f2e697066732e6e667473746f726167652e6c696e6b0000000000000000000000815250600c9081620001b99190620002f9565b506064620001ca6012600a620004d4565b620001d8906122b8620004eb565b620001e5906002620004eb565b620001f1919062000505565b600e5562000525565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6003620002578282620002f9565b5050565b634e487b7160e01b5f52604160045260245ffd5b600181811c908216806200028457607f821691505b602082108103620002a357634e487b7160e01b5f52602260045260245ffd5b50919050565b601f821115620002f457805f5260205f20601f840160051c81016020851015620002d05750805b601f840160051c820191505b81811015620002f1575f8155600101620002dc565b50505b505050565b81516001600160401b038111156200031557620003156200025b565b6200032d816200032684546200026f565b84620002a9565b602080601f83116001811462000363575f84156200034b5750858301515b5f19600386901b1c1916600185901b178555620003bd565b5f85815260208120601f198616915b82811015620003935788860151825594840194600190910190840162000372565b5085821015620003b157878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156200041957815f1904821115620003fd57620003fd620003c5565b808516156200040b57918102915b93841c9390800290620003de565b509250929050565b5f826200043157506001620004ce565b816200043f57505f620004ce565b8160018114620004585760028114620004635762000483565b6001915050620004ce565b60ff841115620004775762000477620003c5565b50506001821b620004ce565b5060208310610133831016604e8410600b8410161715620004a8575081810a620004ce565b620004b48383620003d9565b805f1904821115620004ca57620004ca620003c5565b0290505b92915050565b5f620004e460ff84168362000421565b9392505050565b8082028115828204841417620004ce57620004ce620003c5565b5f826200052057634e487b7160e01b5f52601260045260245ffd5b500490565b60805160a05160c05160e051613b83620005985f395f818161041401528181610ce5015281816115bc0152818161198f015281816128620152818161289a0152818161295a015261298101525f61044e01525f818161032d01528181610dde0152610e3801525f6103a00152613b835ff3fe608060405234801561000f575f80fd5b506004361061023e575f3560e01c806370a0823111610135578063c5b8f772116100b4578063e985e9c511610079578063e985e9c5146105a8578063f242432a146105e3578063f28ca1dd146105f6578063f2fde38b146105fe578063f8b45b0514610611575f80fd5b8063c5b8f7721461052f578063c87b56dd14610542578063d547cfb714610555578063dd62ed3e1461055d578063e0df5b6f14610595575f80fd5b806399a2557a116100fa57806399a2557a146104cb5780639b19251a146104de578063a014e6e214610500578063a22cb46514610509578063a9059cbb1461051c575f80fd5b806370a0823114610470578063715018a6146104985780638462151c146104a05780638da5cb5b146104b357806395d89b41146104c3575f80fd5b806323b872dd116101c15780634eabf2c6116101865780634eabf2c6146103f457806353d6fd59146103fc5780635afcc2f51461040f5780635d0044ca146104365780636d6a6a4d14610449575f80fd5b806323b872dd146103625780632d760d57146103755780632eb2c2d614610388578063313ce5671461039b5780634e1273f4146103d4575f80fd5b8063095ea7b311610207578063095ea7b3146102f55780630a702e8d146103085780630e89341c1461031557806318160ddd1461032857806318d217c31461034f575f80fd5b8062fdd58e1461024257806301ffc9a71461026857806302fe53051461028b57806306fdde03146102a0578063081812fc146102b5575b5f80fd5b610255610250366004612dd3565b61061a565b6040519081526020015b60405180910390f35b61027b610276366004612e10565b610686565b604051901515815260200161025f565b61029e610299366004612ec5565b610726565b005b6102a8610762565b60405161025f9190612f56565b6102dd6102c3366004612f68565b60056020525f90815260409020546001600160a01b031681565b6040516001600160a01b03909116815260200161025f565b61027b610303366004612dd3565b6107ee565b600f5461027b9060ff1681565b6102a8610323366004612f68565b6108be565b6102557f000000000000000000000000000000000000000000000000000000000000000081565b61029e61035d366004612ec5565b6108c9565b61027b610370366004612f7f565b610909565b610255610383366004612fb8565b610a45565b61029e61039636600461309b565b610a7a565b6103c27f000000000000000000000000000000000000000000000000000000000000000081565b60405160ff909116815260200161025f565b6103e76103e236600461313d565b610ac7565b60405161025f919061323b565b61029e610ba5565b61029e61040a36600461325a565b610bfa565b6102557f000000000000000000000000000000000000000000000000000000000000000081565b61029e610444366004612f68565b610d7f565b6102557f000000000000000000000000000000000000000000000000000000000000000081565b61025561047e36600461328f565b6001600160a01b03165f9081526006602052604090205490565b61029e610e7a565b6103e76104ae36600461328f565b610e8d565b5f546001600160a01b03166102dd565b6102a8610ebe565b6103e76104d9366004612fb8565b610ecb565b61027b6104ec36600461328f565b600a6020525f908152604090205460ff1681565b610255600b5481565b61029e61051736600461325a565b610ff7565b61027b61052a366004612dd3565b611006565b61027b61053d366004612dd3565b611015565b6102a8610550366004612f68565b61104a565b6102a86113e7565b61025561056b3660046132a8565b6001600160a01b039182165f90815260076020908152604080832093909416825291909152205490565b61029e6105a3366004612ec5565b6113f4565b61027b6105b63660046132a8565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205460ff1690565b61029e6105f13660046132d9565b611408565b6102a8611456565b61029e61060c36600461328f565b611463565b610255600e5481565b5f6001600160a01b038316610642576040516323d3ad8160e21b815260040160405180910390fd5b6001600160a01b0383165f908152600160208181526040808420600887901c85529091529091205460ff84161c161561067d57506001610680565b505f5b92915050565b5f6001600160e01b03198216636cdb3d1360e11b14806106b657506001600160e01b031982166303a24d0760e21b145b806106d157506001600160e01b031982166362dc7bb960e11b145b806106ec57506380ac58cd60e01b6001600160e01b03198316145b806107075750635b5e139f60e01b6001600160e01b03198316145b8061068057506301ffc9a760e01b6001600160e01b0319831614610680565b61072e6114a0565b610737816114cc565b6040517f21bb7eb2be3a3563f9f1a320ebf802250ef46d44df8d42f1596e09117f626489905f90a150565b6008805461076f90613338565b80601f016020809104026020016040519081016040528092919081815260200182805461079b90613338565b80156107e65780601f106107bd576101008083540402835291602001916107e6565b820191905f5260205f20905b8154815290600101906020018083116107c957829003601f168201915b505050505081565b5f336107f960045490565b8310801561080657505f83115b156108a9576108158184611015565b61084257604051634b637e8f60e11b81526001600160a01b03821660048201526024015b60405180910390fd5b5f8381526005602090815260409182902080546001600160a01b0319166001600160a01b038881169182179092559251868152908416917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a36108b4565b6108b48185856114d8565b5060019392505050565b60606106808261104a565b6108d16114a0565b600c6108dd82826133b4565b506040517f21bb7eb2be3a3563f9f1a320ebf802250ef46d44df8d42f1596e09117f626489905f90a150565b5f61091360045490565b821015610a2d576001600160a01b0384165f908152600160208181526040808420600887901c85529091529091205460ff84161c1661097057604051634a1406b160e11b81526001600160a01b0385166004820152602401610839565b336001600160a01b038516148015906109ac57506001600160a01b0384165f90815260026020908152604080832033845290915290205460ff16155b80156109ce57505f828152600560205260409020546001600160a01b03163314155b156109ee57604051634a1406b160e11b8152336004820152602401610839565b5f82815260056020908152604080832080546001600160a01b031916905580519182019052818152610a28918691869186916001916114ea565b6108b4565b610a388433846116e3565b6108b4848484600161175e565b5f610a7283610a548185613483565b6001600160a01b0387165f90815260016020526040902091906117bc565b949350505050565b6001600160a01b038516331480610a965750610a9685336105b6565b610ab357604051632ce44b5f60e11b815260040160405180910390fd5b610ac0858585858561185a565b5050505050565b60608151835114610aeb57604051637801f4e960e01b815260040160405180910390fd5b5f83516001600160401b03811115610b0557610b05612e2b565b604051908082528060200260200182016040528015610b2e578160200160208202803683370190505b5090505f5b8451811015610b9d57610b78858281518110610b5157610b51613496565b6020026020010151858381518110610b6b57610b6b613496565b602002602001015161061a565b828281518110610b8a57610b8a613496565b6020908102919091010152600101610b33565b509392505050565b610bad6114a0565b600f805460ff8082161560ff1990921682179092556040519116151581527fea63aac68e0a18e1731accb41e3c0c386ddcf31edaf96d7aebbaf1ac05cafab59060200160405180910390a1565b610c026114a0565b6001600160a01b0382165f908152600a602052604090205481151560ff909116151503610c675760405162461bcd60e51b81526020600482015260136024820152724e6f206368616e676520746f2073746174757360681b6044820152606401610839565b8015610cc7575f610c7c835f61038360045490565b90508015610c8e57610c8e8382611ad3565b6040516001600160a01b038416907f7f93a45f70dde0bd08c45d334f84774f8aaa04a8b7c8349cf2837646445984db905f90a250610d55565b6001600160a01b0382165f9081526006602052604081205490610d0a7f0000000000000000000000000000000000000000000000000000000000000000836134aa565b90508015610d1f57610d1c8482611dad565b50505b6040516001600160a01b038516907fc0e106cf568e50698fdbde1eff56f5a5c966cc7958e37e276918e9e4ccdf8cd4905f90a250505b6001600160a01b03919091165f908152600a60205260409020805460ff1916911515919091179055565b610d876114a0565b5f8111610dd65760405162461bcd60e51b815260206004820152601d60248201527f43616e6e6f742064697361626c65206e6f726d616c2074726164696e670000006044820152606401610839565b6064610e02827f00000000000000000000000000000000000000000000000000000000000000006134c9565b610e0c91906134aa565b600e557f12528a3c61e0f3b2d6fc707a9fc58b1af86e252cad0d7f4c154ebeabb162dace6064610e5c837f00000000000000000000000000000000000000000000000000000000000000006134c9565b610e6691906134aa565b60405190815260200160405180910390a150565b610e826114a0565b610e8b5f612028565b565b6060610e97612077565b5f03610eb0575050604080515f81526020810190915290565b610680826001600454610ecb565b6009805461076f90613338565b6060818310610eed57604051631960ccad60e11b815260040160405180910390fd5b6001831015610efb57600192505b5f610f0560045490565b905080831115610f13578092505b5f83851015610f2e57610f27868686610a45565b9050610f31565b505f5b5f816001600160401b03811115610f4a57610f4a612e2b565b604051908082528060200260200182016040528015610f73578160200160208202803683370190505b506001600160a01b0388165f90815260016020526040812091925087905b848114610fe957600882901c5f9081526020849052604090205460ff83161c60011615610fde5781848280600101935081518110610fd157610fd1613496565b6020026020010181815250505b816001019150610f91565b509198975050505050505050565b61100233838361208c565b5050565b5f336108b4818585600161175e565b6001600160a01b0382165f908152600160208181526040808420600886901c855290915282205460ff84161c165b9392505050565b606061105560045490565b821061107457604051637801f4e960e01b815260040160405180910390fd5b5f61107e8361216b565b51111561108e576106808261216b565b5f600d805461109c90613338565b905011156110d657600d6110af836121fd565b6040516020016110c092919061354f565b6040516020818303038152906040529050919050565b5f826040516020016110ea91815260200190565b60408051601f19818403018152828252805160209182012083820183525f808552835180840185528181528451938401909452825260f81c9350602b84101561118c576040518060600160405280603b8152602001613980603b91399250604051806040016040528060098152602001684e657468657269746560b81b8152509150604051806060016040528060298152602001613a1d602991399050611382565b60568460ff1610156111f5576040518060600160405280603b81526020016139e2603b9139925060405180604001604052806007815260200166111a585b5bdb9960ca1b81525091506040518060600160405280602a8152602001613aae602a91399050611382565b60818460ff16101561125d576040518060600160405280603b815260200161390a603b913992506040518060400160405280600681526020016523b7b63232b760d11b81525091506040518060600160405280602481526020016138e6602491399050611382565b60ac8460ff1610156112c3576040518060600160405280603b8152602001613b13603b913992506040518060400160405280600481526020016324b937b760e11b8152509150604051806060016040528060228152602001613a6c602291399050611382565b60d78460ff16101561132a576040518060600160405280603b8152602001613945603b913992506040518060400160405280600581526020016453746f6e6560d81b81525091506040518060600160405280602781526020016139bb602791399050611382565b6040518060600160405280603b8152602001613ad8603b91399250604051806040016040528060068152602001652bb7b7b232b760d11b8152509150604051806060016040528060268152602001613a466026913990505b5f61138c876121fd565b8285600c6040516020016113a39493929190613573565b604051602081830303815290604052905080836040516020016113c7929190613653565b60405160208183030381529060405295505050505050919050565b919050565b600d805461076f90613338565b6113fc6114a0565b600d6108dd82826133b4565b6001600160a01b038516331480611424575061142485336105b6565b1561143d57611438858585858560016114ea565b610ac0565b604051632ce44b5f60e11b815260040160405180910390fd5b600c805461076f90613338565b61146b6114a0565b6001600160a01b03811661149457604051631e4fbdf760e01b81525f6004820152602401610839565b61149d81612028565b50565b5f546001600160a01b03163314610e8b5760405163118cdaa760e01b8152336004820152602401610839565b600361100282826133b4565b6114e5838383600161228c565b505050565b6001600160a01b03851661151157604051633a954ecd60e21b815260040160405180910390fd5b335f61151c8661235e565b905084600114801561155857506001600160a01b0388165f90815260016020818152604080842060088b901c85529091529091205460ff88161c165b156115e6576001600160a01b038881165f90815260016020818152604080842060088c901c808652908352818520805460ff8e1686901b8019909116909155958d168552928252808420928452919052812080549092179091556115e190899089907f00000000000000000000000000000000000000000000000000000000000000009061175e565b6115ff565b6040516337dbad3d60e01b815260040160405180910390fd5b6001600160a01b038781169089168682825f80516020613a8e8339815191525f80a4886001600160a01b03168a6001600160a01b0316856001600160a01b03167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628b8b604051611679929190918252602082015260400190565b60405180910390a461168d848b8b866123a4565b84156116d7575f61169d60045490565b90506116ad858c8c8c8c8c612527565b806116b760045490565b146116d55760405163c07c7e1360e01b815260040160405180910390fd5b505b50505050505050505050565b6001600160a01b038381165f908152600760209081526040808320938616835292905220545f198114611758578181101561174a57604051637dc7a0d960e11b81526001600160a01b03841660048201526024810182905260448101839052606401610839565b61175884848484035f61228c565b50505050565b6001600160a01b03841661178757604051634b637e8f60e11b81525f6004820152602401610839565b6001600160a01b0383166117b05760405163ec442f0560e01b81525f6004820152602401610839565b6117588484848461279b565b5f600883901c60ff84166101018482011061182e575f828152602087905260409020546117ea90821c612a19565b930160ff811693925060018201915f9160081c015b80831461182c575f8381526020889052604090205461181d90612a19565b840193508260010192506117ff565b505b5f8281526020879052604090205461184e90821c6101008690031b612a19565b90920195945050505050565b815183511461187c57604051637801f4e960e01b815260040160405180910390fd5b6001600160a01b0384166118a357604051633a954ecd60e21b815260040160405180910390fd5b335f5b8451811015611985575f8582815181106118c2576118c2613496565b602002602001015190505f8583815181106118df576118df613496565b6020026020010151905080600114801561192357506001600160a01b0389165f908152600160208181526040808420600887901c85529091529091205460ff84161c165b156115e657506001600160a01b038881165f908152600160208181526040808420600887901c808652908352818520805460ff90981685901b80199098169055948c1684528282528084209484529390529190208054909217909155016118a6565b506119be868686517f00000000000000000000000000000000000000000000000000000000000000006119b891906134c9565b5f61175e565b5f805f865160016119cf91906136fd565b90506001600160a01b03891691506001600160a01b0388169250602087015183835f80516020613a8e8339815191525f80a460025b818114611a2d578060200288015184845f80516020613a8e8339815191525f80a4600101611a04565b50876001600160a01b0316896001600160a01b0316856001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8a8a604051611a7d929190613710565b60405180910390a4611a91848a8a8a6123a4565b5f611a9b60045490565b9050611aab858b8b8b8b8b612ac8565b80611ab560045490565b146116d75760405163c07c7e1360e01b815260040160405180910390fd5b6001600160a01b038216611afa5760405163b817eee760e01b815260040160405180910390fd5b60045433905f836001600160401b03811115611b1857611b18612e2b565b604051908082528060200260200182016040528015611b41578160200160208202803683370190505b5090505f846001600160401b03811115611b5d57611b5d612e2b565b604051908082528060200260200182016040528015611b86578160200160208202803683370190505b5090505f5b85811015611c57576001838281518110611ba757611ba7613496565b6020908102919091018101919091526001600160a01b0388165f908152600190915260408120611bd79086612b83565b90505f198103611bfa5760405163851f838b60e01b815260040160405180910390fd5b80838381518110611c0d57611c0d613496565b6020908102919091018101919091526001600160a01b0389165f90815260018083526040808320600886901c8452909352919020805460ff841683901b1916905590945001611b8b565b505f80611c658760016136fd565b90506001600160a01b038816915060208301515f835f80516020613a8e8339815191525f80a460025b818114611cb757806020028401515f845f80516020613a8e8339815191525f80a4600101611c8e565b5086600103611d3f575f6001600160a01b0316886001600160a01b0316876001600160a01b03167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62865f81518110611d1157611d11613496565b60200260200101516001604051611d32929190918252602082015260400190565b60405180910390a4611d97565b5f6001600160a01b0316886001600160a01b0316876001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8688604051611d8e929190613710565b60405180910390a45b611da386895f866123a4565b5050505050505050565b6060806001600160a01b038416611dd657604051622e076360e81b815260040160405180910390fd5b825f03611df65760405163b562e8dd60e01b815260040160405180910390fd5b33836001600160401b03811115611e0f57611e0f612e2b565b604051908082528060200260200182016040528015611e38578160200160208202803683370190505b509250836001600160401b03811115611e5357611e53612e2b565b604051908082528060200260200182016040528015611e7c578160200160208202803683370190505b5091505f611e8960045490565b905080855f19031015611ed75760405162461bcd60e51b8152602060048201526016602482015275135a5b9d1a5b99c81b1a5b5a5d1cc81c995858da195960521b6044820152606401610839565b5f5b85811015611f2957808201858281518110611ef657611ef6613496565b6020026020010181815250506001848281518110611f1657611f16613496565b6020908102919091010152600101611ed9565b506001600160a01b0386165f908152600160205260409020611f4c908287612c70565b8460045f828254611f5d91906136fd565b909155505f905080611f6f87846136fd565b90506001600160a01b038816915082825f5f80516020613a8e8339815191525f80a4600183015b818114611fb95780835f5f80516020613a8e8339815191525f80a4600101611f96565b50876001600160a01b03165f6001600160a01b0316856001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8989604051612009929190613710565b60405180910390a461201d845f8a896123a4565b505050509250929050565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f60016004546120879190613483565b905090565b816001600160a01b0316836001600160a01b0316036120ff5760405162461bcd60e51b815260206004820152602960248201527f455243313135353a2073657474696e6720617070726f76616c20737461747573604482015268103337b91039b2b63360b91b6064820152608401610839565b6001600160a01b038381165f81815260026020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b60606003805461217a90613338565b80601f01602080910402602001604051908101604052809291908181526020018280546121a690613338565b80156121f15780601f106121c8576101008083540402835291602001916121f1565b820191905f5260205f20905b8154815290600101906020018083116121d457829003601f168201915b50505050509050919050565b60605f61220983612ce6565b60010190505f816001600160401b0381111561222757612227612e2b565b6040519080825280601f01601f191660200182016040528015612251576020820181803683370190505b5090508181016020015b5f19016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a850494508461225b57509392505050565b6001600160a01b0384166122b55760405163e602df0560e01b81525f6004820152602401610839565b6001600160a01b0383166122de57604051634a1406b160e11b81525f6004820152602401610839565b6001600160a01b038085165f908152600760209081526040808320938716835292905220829055801561175857826001600160a01b0316846001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161235091815260200190565b60405180910390a350505050565b6040805160018082528183019092526060916020808301908036833701905050905081815f8151811061239357612393613496565b602002602001018181525050919050565b6001600160a01b0382165f908152600a602052604090205460ff1661252257600e546001600160a01b0383165f90815260066020526040902054111561242c5760405162461bcd60e51b815260206004820152601f60248201527f5472616e736665722065786365656473206d6178696d756d2077616c6c6574006044820152606401610839565b600f5460ff161561252257325f9081526010602052604090205443116124a05760405162461bcd60e51b8152602060048201526024808201527f4f6e6c79206f6e65207472616e736665722070657220626c6f636b20616c6c6f6044820152633bb2b21760e11b6064820152608401610839565b325f9081526010602052604090204390556001600160a01b0382163b1580156124c85750323b155b6125225760405162461bcd60e51b815260206004820152602560248201527f436f6e74726163742074726164696e672072657374726963746564206174206c6044820152640c2eadcc6d60db1b6064820152608401610839565b611758565b6001600160a01b0384163b15612793576040516301ffc9a760e01b8152636cdb3d1360e11b60048201526001600160a01b038516906301ffc9a790602401602060405180830381865afa158015612580573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906125a4919061373d565b156126ae5760405163f23a6e6160e01b81526001600160a01b0385169063f23a6e61906125dd9089908990889088908890600401613758565b6020604051808303815f875af1925050508015612617575060408051601f3d908101601f191682019092526126149181019061379c565b60015b612677576126236137b7565b806308c379a00361265c57506126376137d0565b80612642575061265e565b8060405162461bcd60e51b81526004016108399190612f56565b505b604051639c05499b60e01b815260040160405180910390fd5b6001600160e01b0319811663f23a6e6160e01b146126a857604051639c05499b60e01b815260040160405180910390fd5b50612793565b604051630a85bd0160e11b81526001600160a01b0385169063150b7a02906126e0908990899088908790600401613858565b6020604051808303815f875af192505050801561271a575060408051601f3d908101601f191682019092526127179181019061379c565b60015b612760576127266137b7565b806308c379a003612745575061273a6137d0565b806126425750612747565b505b6040516368d2bf6b60e11b815260040160405180910390fd5b6001600160e01b03198116630a85bd0160e11b14612791576040516368d2bf6b60e11b815260040160405180910390fd5b505b505050505050565b6001600160a01b038085165f90815260066020526040808220549286168252902054838210156127f75760405163391434e360e21b81526001600160a01b03871660048201526024810183905260448101859052606401610839565b846001600160a01b0316866001600160a01b0316146129d7576001600160a01b038087165f908152600660205260408082208786039055918716815220818501905582156129d7576001600160a01b0386165f908152600a602052604090205460ff16806128dd575f7f000000000000000000000000000000000000000000000000000000000000000061288b8786613483565b61289591906134aa565b6128bf7f0000000000000000000000000000000000000000000000000000000000000000866134aa565b6128c99190613483565b905080156128db576128db8882611ad3565b505b6001600160a01b0386165f908152600a602052604090205460ff166129d557600b54600114801561290b5750805b801561292357505f546001600160a01b038881169116145b15612954576001600160a01b0386165f908152600a60205260409020805460ff191660011790556002600b556129d5565b5f61297f7f0000000000000000000000000000000000000000000000000000000000000000846134aa565b7f00000000000000000000000000000000000000000000000000000000000000006129aa88866136fd565b6129b491906134aa565b6129be9190613483565b905080156129d3576129d08782611dad565b50505b505b505b846001600160a01b0316866001600160a01b03165f80516020613a8e83398151915286604051612a0991815260200190565b60405180910390a3505050505050565b7f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f7f5555555555555555555555555555555555555555555555555555555555555555600183901c168203600281901c7f3333333333333333333333333333333333333333333333333333333333333333908116911601600481901c01167f01010101010101010101010101010101010101010101010101010101010101010260f81c5f199190911460081b1790565b6001600160a01b0384163b156127935760405163bc197c8160e01b81526001600160a01b0385169063bc197c8190612b0c9089908990889088908890600401613894565b6020604051808303815f875af1925050508015612b46575060408051601f3d908101601f19168201909252612b439181019061379c565b60015b612b52576126236137b7565b6001600160e01b0319811663bc197c8160e01b1461279157604051639c05499b60e01b815260040160405180910390fd5b600881901c5f818152602084905260409020545f19919060ff84191690811b901c81158117612bc3575b5081015f81815260409020548115811715612bad575b8015612c6857612c59817f0706060506020504060203020504030106050205030304010505030400000000601f6f8421084210842108cc6318c6db6d54be831560081b6fffffffffffffffffffffffffffffffff851160071b1784811c6001600160401b031060061b1784811c63ffffffff1060051b1784811c61ffff1060041b1784811c60ff1060031b1793841c1c161a1790565b600883901b178481115f031792505b505092915050565b5f1960ff8316846020528360081c5f5261010183820110612ccc575f805160408220805485851b1790559390910160ff811693600181019160081c015b808214612cc857815f528360405f2055600182019150612cad565b505f525b60405f208284610100031c821b8154178155505050505050565b5f8072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b8310612d245772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef81000000008310612d50576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc100008310612d6e57662386f26fc10000830492506010015b6305f5e1008310612d86576305f5e100830492506008015b6127108310612d9a57612710830492506004015b60648310612dac576064830492506002015b600a83106106805760010192915050565b80356001600160a01b03811681146113e2575f80fd5b5f8060408385031215612de4575f80fd5b612ded83612dbd565b946020939093013593505050565b6001600160e01b03198116811461149d575f80fd5b5f60208284031215612e20575f80fd5b813561104381612dfb565b634e487b7160e01b5f52604160045260245ffd5b601f8201601f191681016001600160401b0381118282101715612e6457612e64612e2b565b6040525050565b5f6001600160401b03831115612e8357612e83612e2b565b604051612e9a601f8501601f191660200182612e3f565b809150838152848484011115612eae575f80fd5b838360208301375f60208583010152509392505050565b5f60208284031215612ed5575f80fd5b81356001600160401b03811115612eea575f80fd5b8201601f81018413612efa575f80fd5b610a7284823560208401612e6b565b5f5b83811015612f23578181015183820152602001612f0b565b50505f910152565b5f8151808452612f42816020860160208601612f09565b601f01601f19169290920160200192915050565b602081525f6110436020830184612f2b565b5f60208284031215612f78575f80fd5b5035919050565b5f805f60608486031215612f91575f80fd5b612f9a84612dbd565b9250612fa860208501612dbd565b9150604084013590509250925092565b5f805f60608486031215612fca575f80fd5b612fd384612dbd565b95602085013595506040909401359392505050565b5f6001600160401b0382111561300057613000612e2b565b5060051b60200190565b5f82601f830112613019575f80fd5b8135602061302682612fe8565b6040516130338282612e3f565b80915083815260208101915060208460051b870101935086841115613056575f80fd5b602086015b84811015613072578035835291830191830161305b565b509695505050505050565b5f82601f83011261308c575f80fd5b61104383833560208501612e6b565b5f805f805f60a086880312156130af575f80fd5b6130b886612dbd565b94506130c660208701612dbd565b935060408601356001600160401b03808211156130e1575f80fd5b6130ed89838a0161300a565b94506060880135915080821115613102575f80fd5b61310e89838a0161300a565b93506080880135915080821115613123575f80fd5b506131308882890161307d565b9150509295509295909350565b5f806040838503121561314e575f80fd5b82356001600160401b0380821115613164575f80fd5b818501915085601f830112613177575f80fd5b8135602061318482612fe8565b6040516131918282612e3f565b83815260059390931b85018201928281019150898411156131b0575f80fd5b948201945b838610156131d5576131c686612dbd565b825294820194908201906131b5565b965050860135925050808211156131ea575f80fd5b506131f78582860161300a565b9150509250929050565b5f815180845260208085019450602084015f5b8381101561323057815187529582019590820190600101613214565b509495945050505050565b602081525f6110436020830184613201565b801515811461149d575f80fd5b5f806040838503121561326b575f80fd5b61327483612dbd565b915060208301356132848161324d565b809150509250929050565b5f6020828403121561329f575f80fd5b61104382612dbd565b5f80604083850312156132b9575f80fd5b6132c283612dbd565b91506132d060208401612dbd565b90509250929050565b5f805f805f60a086880312156132ed575f80fd5b6132f686612dbd565b945061330460208701612dbd565b9350604086013592506060860135915060808601356001600160401b0381111561332c575f80fd5b6131308882890161307d565b600181811c9082168061334c57607f821691505b60208210810361336a57634e487b7160e01b5f52602260045260245ffd5b50919050565b601f8211156114e557805f5260205f20601f840160051c810160208510156133955750805b601f840160051c820191505b81811015610ac0575f81556001016133a1565b81516001600160401b038111156133cd576133cd612e2b565b6133e1816133db8454613338565b84613370565b602080601f831160018114613414575f84156133fd5750858301515b5f19600386901b1c1916600185901b178555612793565b5f85815260208120601f198616915b8281101561344257888601518255948401946001909101908401613423565b508582101561345f57878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b5f52601160045260245ffd5b818103818111156106805761068061346f565b634e487b7160e01b5f52603260045260245ffd5b5f826134c457634e487b7160e01b5f52601260045260245ffd5b500490565b80820281158282048414176106805761068061346f565b5f81546134ec81613338565b60018281168015613504576001811461351957613545565b60ff1984168752821515830287019450613545565b855f526020805f205f5b8581101561353c5781548a820152908401908201613523565b50505082870194505b5050505092915050565b5f61355a82856134e0565b835161356a818360208801612f09565b01949350505050565b747b226e616d65223a2022504158454352414654202360581b815284515f906135a3816015850160208a01612f09565b701116113232b9b1b934b83a34b7b7111d1160791b60159184019182015285516135d4816026840160208a01612f09565b7f222c2265787465726e616c5f75726c223a2268747470733a2f2f786372616674602692909101918201527f2e67616d6573222c22696d616765223a2268747470733a2f2f000000000000006046820152845161363881605f840160208901612f09565b613647605f82840101866134e0565b98975050505050505050565b7f646174613a6170706c69636174696f6e2f6a736f6e3b757466382c000000000081525f835161368a81601b850160208801612f09565b7f222c2261747472696275746573223a5b7b2274726169745f74797065223a2252601b918401918201526f30b934ba3c9116113b30b63ab2911d1160811b603b82015283516136e081604b840160208801612f09565b63227d5d7d60e01b604b9290910191820152604f01949350505050565b808201808211156106805761068061346f565b604081525f6137226040830185613201565b82810360208401526137348185613201565b95945050505050565b5f6020828403121561374d575f80fd5b81516110438161324d565b6001600160a01b03868116825285166020820152604081018490526060810183905260a0608082018190525f9061379190830184612f2b565b979650505050505050565b5f602082840312156137ac575f80fd5b815161104381612dfb565b5f60033d11156137cd5760045f803e505f5160e01c5b90565b5f60443d10156137dd5790565b6040516003193d81016004833e81513d6001600160401b03816024840111818411171561380c57505050505090565b82850191508151818111156138245750505050505090565b843d870101602082850101111561383e5750505050505090565b61384d60208286010187612e3f565b509095945050505050565b6001600160a01b03858116825284166020820152604081018390526080606082018190525f9061388a90830184612f2b565b9695505050505050565b6001600160a01b0386811682528516602082015260a0604082018190525f906138bf90830186613201565b82810360608401526138d18186613201565b905082810360808401526136478185612f2b56fe4570696320476f6c64656e204e46547320706f776572656420627920455243313135352e6261666b7265696532686871616561353335726565626a3575656a6f356a6679356d716a616a326c36713369686c76777476707a6568363772786d6261666b726569616834667533686e6f68726e7a656563337176356e327569626d746b363561706a637135646337617871656979626433377035346261666b72656965756d7962636f69616c6f7770366f34666a7a6567796c6261776c6a756d697577616e6335717872736e77677734636b70783561556e636f6d6d6f6e2053746f6e65204e46547320706f776572656420627920455243313135352e6261666b72656966326477677577706b746e6e79326c3777777a6c74716832376f6d68637275666b326e76636873656d7836766861627a687878714d7974686963204e6574686572697465204e46547320706f776572656420627920455243313135352e436f6d6d6f6e20576f6f64656e204e46547320706f776572656420627920455243313135352e526172652049726f6e204e46547320706f776572656420627920455243313135352eddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef4c6567656e64617279204469616d6f6e64204e46547320706f776572656420627920455243313135352e6261666b72656966627237706473676d6c6e63657672636667796972626271797a643535636c623779706d36636c3673636a6934763270666f69616261666b72656968326a6c6d646d6b7836726a6673726377636f71713763766c66686c66756635616d74646f6c357268756a737063763677346161a264697066735822122010f2d9b8008e7acf7918a81fc2f23bebdaf4ff3df3a172adfb6c4f3679ffe95164736f6c63430008180033