0x608060405234801561001057600080fd5b50615b0a80620000216000396000f3fe608060405234801561001057600080fd5b50600436106103985760003560e01c80638533378f116101e9578063c52218d11161010f578063e2fc0312116100ad578063f2fde38b1161007c578063f2fde38b146107e4578063f5ca8aef146107f7578063fa8589411461082c578063fefa83421461083f57600080fd5b8063e2fc03121461079d578063ee6e40d6146107b0578063eef316e7146107c3578063ef69aa24146107d157600080fd5b8063d9fd289c116100e9578063d9fd289c14610751578063dce9626414610764578063e1b30ab814610777578063e27b335c1461078a57600080fd5b8063c52218d114610718578063d1bebe211461072b578063d84bd9861461073e57600080fd5b8063a607a8d911610187578063b1055baf11610156578063b1055baf14610692578063ba8c714c146106a5578063bc35fe01146106b8578063bd492432146106cb57600080fd5b8063a607a8d9146103f6578063a7e3450e14610659578063abacdeab1461066c578063ae5933d41461067f57600080fd5b80638da5cb5b116101c35780638da5cb5b1461060f57806395e02c82146106205780639a4afbe5146106335780639be593071461064657600080fd5b80638533378f146105d657806388e32fc2146105e95780638c6ae341146105fc57600080fd5b80634511abc9116102ce5780635dfb04911161026c5780637179d3aa1161023b5780637179d3aa1461059657806376f2f3b7146105a95780637bba2db1146105bc5780637c990787146105c357600080fd5b80635dfb04911461053c5780635e2663a61461054f578063633dd14514610562578063715018a61461058c57600080fd5b80634f032bc1116102a85780634f032bc1146104f057806350f1bb3f14610503578063584f8a58146105165780635d4aa3af1461052957600080fd5b80634511abc9146104b7578063485fd2b4146104ca5780634d2cd671146104dd57600080fd5b80632d68efc91161033b57806334781056116103155780633478105614610470578063365a6ebd146104835780633ef8faad14610496578063449e815d146104a957600080fd5b80632d68efc9146104375780632dd31000146104625780632e0f26251461046957600080fd5b806317430c9e1161037757806317430c9e146103f6578063228cdc03146103fe578063296738e2146104115780632d131a4d1461042457600080fd5b806214f61c1461039d57806309e0da51146103c357806312354ac1146103e3575b600080fd5b6103b06103ab366004614b1b565b610852565b6040519081526020015b60405180910390f35b6103d66103d1366004614be0565b610ab9565b6040516103ba9190614c35565b6103b06103f1366004614c79565b610b79565b6103b0610f60565b6103b061040c366004614cd6565b610f71565b6103b061041f366004614d0f565b610f87565b6103b0610432366004614d50565b610f93565b60665461044a906001600160a01b031681565b6040516001600160a01b0390911681526020016103ba565b600061044a565b60126103b0565b6103b061047e366004614daa565b611541565b6103b0610491366004614c79565b611836565b6103b06104a4366004614dce565b6119a4565b6103b061040c366004614e03565b6103d66104c5366004614e2f565b6119d5565b6103b06104d8366004614edc565b611b76565b6103d66104eb366004614ef7565b611b9e565b6103b06104fe366004614d0f565b611bb8565b6103b0610511366004614daa565b611bd2565b6103b0610524366004614e03565b611beb565b6103b0610537366004614f39565b611bf6565b6103b061054a366004614daa565b611d5e565b6103b061055d366004614daa565b611d7e565b606c5461057890600160a01b900462ffffff1681565b60405162ffffff90911681526020016103ba565b610594611d97565b005b6103b06105a4366004614daa565b611dab565b6103d66105b7366004614f93565b611dc4565b60006103b0565b6103d66105d1366004615034565b611e80565b6103b06105e4366004615080565b611e8c565b6105946105f7366004614daa565b611e98565b6103b061060a366004614b1b565b611edf565b6033546001600160a01b031661044a565b6103d661062e366004614ef7565b61204f565b6103b0610641366004614d0f565b612069565b606b5461044a906001600160a01b031681565b6103b0610667366004614d0f565b612295565b61059461067a36600461509d565b6122a1565b6103d661068d3660046150e1565b6122b9565b6103b06106a0366004614daa565b6122ea565b6103d66106b3366004614be0565b6122f7565b6103b06106c6366004614daa565b6123af565b6107096106d9366004614daa565b60656020526000908152604090205460ff808216916001600160a01b0361010082041691600160a81b9091041683565b6040516103ba9392919061514b565b6103b061072636600461518d565b6123c8565b6103b0610739366004614c79565b6123e3565b606a5461044a906001600160a01b031681565b60695461044a906001600160a01b031681565b6105946107723660046152aa565b6123f2565b6103b0610785366004614d0f565b6126be565b606c5461044a906001600160a01b031681565b6103d66107ab366004615034565b612877565b6103d66107be366004614ef7565b612885565b6103d66107ab366004615386565b6103b06107df366004614d0f565b612893565b6105946107f2366004614daa565b61289f565b61081a610805366004614daa565b60686020526000908152604090205460ff1681565b60405160ff90911681526020016103ba565b6103d661083a3660046153d2565b61292f565b61044a61084d36600461546c565b612958565b6000600186600781111561086857610868615135565b036108ba5760405162461bcd60e51b815260206004820152601060248201527f4c502063616e277420626520626f74680000000000000000000000000000000060448201526064015b60405180910390fd5b60028660078111156108ce576108ce615135565b036108e85760006108df86896126be565b9150610aaf9050565b60038660078111156108fc576108fc615135565b0361096f5760405162461bcd60e51b815260206004820152602660248201527f4e6f20737570706f727420666f7220563320796574206f6e207468697320667560448201527f6e6374696f6e000000000000000000000000000000000000000000000000000060648201526084016108b1565b600486600781111561098357610983615135565b036109f65760405162461bcd60e51b815260206004820152602b60248201527f4e6f20737570706f727420666f7220416c676562726120796574206f6e20746860448201527f69732066756e6374696f6e00000000000000000000000000000000000000000060648201526084016108b1565b6005866007811115610a0a57610a0a615135565b03610a1c5760006108df84878a610b79565b6006866007811115610a3057610a30615135565b03610a425760006108df85878a611836565b6007866007811115610a5657610a56615135565b03610a675760006108df8389612069565b60405162461bcd60e51b815260206004820152601060248201527f496e76616c69642070726f746f636f6c0000000000000000000000000000000060448201526064016108b1565b9695505050505050565b60608167ffffffffffffffff811115610ad457610ad46151cb565b604051908082528060200260200182016040528015610afd578160200160208202803683370190505b50905060005b8151811015610b71576000848483818110610b2057610b20615485565b9050602002016020810190610b359190614daa565b9050610b418682612069565b838381518110610b5357610b53615485565b60209081029190910101525080610b69816154b1565b915050610b03565b509392505050565b60006001600160a01b038316610b98576069546001600160a01b031692505b6000806001600160a01b038616610c6357610c1485856001600160a01b0316630dfe16816040518163ffffffff1660e01b8152600401602060405180830381865afa158015610beb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c0f91906154ca565b612982565b5080915050610c5b85856001600160a01b0316630dfe16816040518163ffffffff1660e01b8152600401602060405180830381865afa158015610beb573d6000803e3d6000fd5b509150610d19565b610cce86856001600160a01b0316630dfe16816040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ca5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cc991906154ca565b612bd0565b5080925050610d1586856001600160a01b031663d21220a76040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ca5573d6000803e3d6000fd5b5090505b81600003610d6757610d6385856001600160a01b0316630dfe16816040518163ffffffff1660e01b8152600401602060405180830381865afa158015610beb573d6000803e3d6000fd5b5091505b80600003610db557610db185856001600160a01b0316630dfe16816040518163ffffffff1660e01b8152600401602060405180830381865afa158015610beb573d6000803e3d6000fd5b5090505b600080856001600160a01b031663c4a7761e6040518163ffffffff1660e01b81526004016040805180830381865afa158015610df5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e1991906154e7565b91509150856001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e5b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e7f919061550b565b610eea82886001600160a01b031663d21220a76040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ec1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ee591906154ca565b61303c565b610ef49085615524565b610f3684896001600160a01b0316630dfe16816040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ec1573d6000803e3d6000fd5b610f409087615524565b610f4a9190615543565b610f54919061556c565b98975050505050505050565b6000610f6c6001611b76565b905090565b6000610f7e8360016119a4565b90505b92915050565b6000610b718383612bd0565b6000808262ffffff1660000361101c5760405163d9a641e160e01b81526001600160a01b038681166004830152858116602483015287169063d9a641e190604401602060405180830381865afa158015610ff1573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061101591906154ca565b905061109c565b604051630b4c774160e11b81526001600160a01b038681166004830152858116602483015262ffffff85166044830152871690631698ee8290606401602060405180830381865afa158015611075573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061109991906154ca565b90505b803b60008190036110b257600092505050611539565b606c54600090600160a01b900462ffffff1681036111b4578462ffffff1660000361115257826001600160a01b031663e76c01e46040518163ffffffff1660e01b815260040160e060405180830381865afa158015611115573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061113991906155c5565b50506001600160a01b0390941694506113429350505050565b826001600160a01b0316633850c7bd6040518163ffffffff1660e01b815260040160e060405180830381865afa158015611190573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611139919061564d565b60408051600280825260608201835260009260208301908036833701905050606c548151919250600160a01b900462ffffff169082906000906111f9576111f9615485565b602002602001019063ffffffff16908163ffffffff168152505060008160018151811061122857611228615485565b63ffffffff909216602092830291909101909101526040517f883bdbfd0000000000000000000000000000000000000000000000000000000081526000906001600160a01b0386169063883bdbfd906112859085906004016156bb565b600060405180830381865afa1580156112a2573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526112ca919081019061575d565b509050611334606c60149054906101000a900462ffffff1660020b826000815181106112f8576112f8615485565b60200260200101518360018151811061131357611313615485565b60200260200101516113259190615829565b61132f9190615856565b613050565b6001600160a01b0316925050505b6000876001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa92505050801561139e575060408051601f3d908101601f1916820190925261139b91810190615894565b60015b6113aa575060126113b0565b60ff1690505b6000876001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa92505050801561140c575060408051601f3d908101601f1916820190925261140991810190615894565b60015b6114185750601261141e565b60ff1690505b60006fffffffffffffffffffffffffffffffff841061144a576114436103e88561556c565b9350600690505b6fffffffffffffffffffffffffffffffff84106114705760009650505050505050611539565b896001600160a01b0316896001600160a01b031610156114e0578082611497856012615543565b6114a191906158af565b6114ab91906158af565b6114b690600a6159a6565b6114c16002866159b2565b6114cb919061556c565b6114d990600160c01b61556c565b9650611532565b80826114ed856012615543565b6114f791906158af565b61150191906158af565b61150c90600a6159a6565b61151a90600160c01b61556c565b6115256002866159b2565b61152f919061556c565b96505b5050505050505b949350505050565b60008061159b606b60009054906101000a90046001600160a01b0316846001600160a01b0316630dfe16816040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ca5573d6000803e3d6000fd5b50905080600003611601576115fd606960009054906101000a90046001600160a01b0316846001600160a01b0316630dfe16816040518163ffffffff1660e01b8152600401602060405180830381865afa158015610beb573d6000803e3d6000fd5b5090505b600061165a606b60009054906101000a90046001600160a01b0316856001600160a01b031663d21220a76040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ca5573d6000803e3d6000fd5b509050806000036116c0576116bc606960009054906101000a90046001600160a01b0316856001600160a01b0316630dfe16816040518163ffffffff1660e01b8152600401602060405180830381865afa158015610beb573d6000803e3d6000fd5b5090505b600080856001600160a01b031663c4a7761e6040518163ffffffff1660e01b81526004016040805180830381865afa158015611700573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061172491906154e7565b91509150856001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611766573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061178a919061550b565b6117cc82886001600160a01b031663d21220a76040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ec1573d6000803e3d6000fd5b6117d69085615524565b61181884896001600160a01b0316630dfe16816040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ec1573d6000803e3d6000fd5b6118229087615524565b61182c9190615543565b610aaf919061556c565b60006001600160a01b038316611855576069546001600160a01b031692505b60006118c285846001600160a01b0316630dfe16816040518163ffffffff1660e01b8152600401602060405180830381865afa158015611899573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118bd91906154ca565b613399565b509050806000036119135761190f84846001600160a01b0316630dfe16816040518163ffffffff1660e01b8152600401602060405180830381865afa158015610beb573d6000803e3d6000fd5b5090505b600061195786856001600160a01b031663d21220a76040518163ffffffff1660e01b8152600401602060405180830381865afa158015611899573d6000803e3d6000fd5b50905080600003610db557610db185856001600160a01b0316630dfe16816040518163ffffffff1660e01b8152600401602060405180830381865afa158015610beb573d6000803e3d6000fd5b606954606a54606b54606c54600093610f7e93879387936001600160a01b0393841693928316929182169116611edf565b606085841480156119e557508582145b611a575760405162461bcd60e51b815260206004820152602960248201527f6765744c50507269636573563346726f6d466163746f72793a204c454e47544860448201527f5f4d49534d41544348000000000000000000000000000000000000000000000060648201526084016108b1565b858067ffffffffffffffff811115611a7157611a716151cb565b604051908082528060200260200182016040528015611a9a578160200160208202803683370190505b50915060005b81811015611b69576000898983818110611abc57611abc615485565b9050602002016020810190611ad19190614daa565b90506000888884818110611ae757611ae7615485565b9050602002016020810190611afc9190614daa565b90506000878785818110611b1257611b12615485565b9050602002016020810190611b2791906159c1565b9050611b358d848484610f93565b868581518110611b4757611b47615485565b6020026020010181815250505050508080611b61906154b1565b915050611aa0565b5050979650505050505050565b606954606a54606c54600092610f819285926001600160a01b03928316929182169116611bf6565b606c54606090610f7e906001600160a01b03168484610ab9565b606b54600090610f7e906001600160a01b031684846123e3565b606954600090610f81906001600160a01b0316836126be565b6000610f7e83611bd2565b6066546000908190611c10906001600160a01b0316613948565b90508015611c1f579050611539565b6001866007811115611c3357611c33615135565b03611cb657600080611c4486613a02565b91509150600080611c5489613d0d565b9092509050611c638184615543565b600003611c7857600095505050505050611539565b611c828184615543565b611c8c8284615524565b611c968587615524565b611ca09190615543565b611caa919061556c565b95505050505050611539565b6002866007811115611cca57611cca615135565b03611ce5576000611cda86613d0d565b509250611539915050565b6003866007811115611cf957611cf9615135565b03611d09576000611cda85613a02565b6004866007811115611d1d57611d1d615135565b03611d3a57606b54600090611cda906001600160a01b0316613e1b565b6007866007811115611d4e57611d4e615135565b03610a67576000611cda84613fec565b606b54600090611d77906001600160a01b031683612bd0565b5092915050565b606c54600090610f81906001600160a01b031683612069565b611d9f6140d4565b611da9600061412e565b565b606954600090611d77906001600160a01b031683612982565b6060868067ffffffffffffffff811115611de057611de06151cb565b604051908082528060200260200182016040528015611e09578160200160208202803683370190505b50915060005b81811015611b695760008a8a83818110611e2b57611e2b615485565b9050602002016020810190611e409190614daa565b9050611e50818a8a8a8a8a611edf565b848381518110611e6257611e62615485565b60209081029190910101525080611e78816154b1565b915050611e0f565b6060611539848461204f565b6000610f816001611b76565b611ea06140d4565b6001600160a01b0316600090815260656020526040902080547fffffffffffffffffffff00000000000000000000000000000000000000000000169055565b6066546000906001600160a01b0390811690881603611f1a57606c54611f13908790879087906001600160a01b0316611bf6565b9050610aaf565b6001866007811115611f2e57611f2e615135565b03611fb157600080611f40868a613399565b91509150600080611f51898c612982565b9092509050611f608184615543565b600003611f74576000945050505050610aaf565b611f7e8184615543565b611f888284615524565b611f928587615524565b611f9c9190615543565b611fa6919061556c565b945050505050610aaf565b6002866007811115611fc557611fc5615135565b03611fe0576000611fd68689612982565b509150610aaf9050565b6003866007811115611ff457611ff4615135565b03612005576000611fd68589613399565b600486600781111561201957612019615135565b0361202a576000611fd68489612bd0565b600786600781111561203e5761203e615135565b03610a67576000611fd6838961418d565b606954606090610f7e906001600160a01b031684846122f7565b6000816001600160a01b0316630902f1ac6040518163ffffffff1660e01b8152600401606060405180830381865afa9250505080156120c5575060408051601f3d908101601f191682019092526120c2918101906159f3565b60015b6120df5760006120d5848461418d565b509150610f819050565b6000856001600160a01b0316630dfe16816040518163ffffffff1660e01b8152600401602060405180830381865afa15801561211f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061214391906154ca565b90506000866001600160a01b031663d21220a76040518163ffffffff1660e01b8152600401602060405180830381865afa158015612185573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121a991906154ca565b90506000876001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156121eb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061220f919061550b565b9050600061221d8a8561418d565b509050600061222c8b8561418d565b509050612239888661438a565b9750612245878561438a565b9650600061225c6001600160701b03891683615524565b61226f6001600160701b038b1685615524565b6122799190615543565b9050612285848261556c565b9950505050505050505050610f81565b6000610b718383612982565b6122a96140d4565b6122b483838361439e565b505050565b606954606a54606b54606c54606093611539938893889388936001600160a01b039081169381169281169116611dc4565b6000610f818260026119a4565b60608167ffffffffffffffff811115612312576123126151cb565b60405190808252806020026020018201604052801561233b578160200160208202803683370190505b50905060005b8151811015610b7157600084848381811061235e5761235e615485565b90506020020160208101906123739190614daa565b905061237f86826126be565b83838151811061239157612391615485565b602090810291909101015250806123a7816154b1565b915050612341565b606a54600090611d77906001600160a01b031683613399565b606a54600090611539906001600160a01b0316858585610f93565b60006115398484846000610f93565b600054610100900460ff16158080156124125750600054600160ff909116105b8061242c5750303b15801561242c575060005460ff166001145b61249e5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084016108b1565b6000805460ff1916600117905580156124c1576000805461ff0019166101001790555b6124c96144f1565b606c80547fffffffffffffffffff000000ffffffffffffffffffffffffffffffffffffffff16905581518351146125425760405162461bcd60e51b815260206004820152601760248201527f4f7261636c6573206c656e677468206d69736d6174636800000000000000000060448201526064016108b1565b60005b835181101561259e5761258c84828151811061256357612563615485565b602002602001015184838151811061257d5761257d615485565b6020026020010151600161439e565b80612596816154b1565b915050612545565b506125a884614564565b6066805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b038b169081179091556125dc906146b3565b6066805460ff92909216600160a01b027fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff909216919091179055606980546001600160a01b03808b1673ffffffffffffffffffffffffffffffffffffffff1992831617909255606a80548a8416908316179055606b8054898416908316179055606c80549288169290911691909117905580156126b3576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050505050505050565b6000816001600160a01b0316630902f1ac6040518163ffffffff1660e01b8152600401606060405180830381865afa92505050801561271a575060408051601f3d908101601f19168201909252612717918101906159f3565b60015b61272a5760006120d58484612982565b6000856001600160a01b0316630dfe16816040518163ffffffff1660e01b8152600401602060405180830381865afa15801561276a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061278e91906154ca565b90506000866001600160a01b031663d21220a76040518163ffffffff1660e01b8152600401602060405180830381865afa1580156127d0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127f491906154ca565b90506000876001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612836573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061285a919061550b565b905060006128688a85612982565b509050600061222c8b85612982565b6060611539848460016122b9565b6060610f7e838360026122b9565b6000610b718383613399565b6128a76140d4565b6001600160a01b0381166129235760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016108b1565b61292c8161412e565b50565b606a5460609061294d906001600160a01b03168888888888886119d5565b979650505050505050565b6067818154811061296857600080fd5b6000918252602090912001546001600160a01b0316905081565b606954606c54600091829182916129aa916002916001600160a01b0390811691859116611bf6565b6066549091506001600160a01b03908116908516036129dc5791506ec097ce7bc90715b34b9f10000000009050612bc9565b612a0e6040518060a0016040528060008152602001600081526020016000815260200160008152602001600081525090565b606654612a3d90879087906001600160a01b0316612a2b826146b3565b606654600160a01b900460ff16614723565b602083018190526060830191909152670de0b6b3a764000090612a61908490615524565b612a6b919061556c565b60408201526060810151612a7f9084615543565b925060005b606754811015612b7f57600060678281548110612aa357612aa3615485565b6000918252602090912001546001600160a01b03169050612aea888883612ac9826146b3565b6001600160a01b03861660009081526068602052604090205460ff16614723565b608085015260608401526000612aff82613948565b90508015612b4157670de0b6b3a7640000818560800151612b209190615524565b612b2a919061556c565b84518590612b39908390615543565b905250612b59565b608084015184518590612b55908390615543565b9052505b6060840151612b689087615543565b955050508080612b77906154b1565b915050612a84565b5082600003612b9657600080935093505050612bc9565b604081015181518491612ba891615543565b612bba90670de0b6b3a7640000615524565b612bc4919061556c565b935050505b9250929050565b6000806000612bf86004600080606c60009054906101000a90046001600160a01b0316611bf6565b6066549091506001600160a01b0390811690851603612c2a5791506ec097ce7bc90715b34b9f10000000009050612bc9565b6066546000908190612c4890889088906001600160a01b03166123e3565b91508115612d7d5760665460405163d9a641e160e01b81526001600160a01b038881166004830152918216602482015260009189169063d9a641e190604401602060405180830381865afa158015612ca4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612cc891906154ca565b6040516370a0823160e01b81526001600160a01b0380831660048301529192506000918916906370a0823190602401602060405180830381865afa158015612d14573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d38919061550b565b905080670de0b6b3a7640000612d4e8787615524565b612d58919061556c565b612d629190615524565b612d6c9084615543565b9250612d788187615543565b955050505b60005b60675481101561300e57600060678281548110612d9f57612d9f615485565b6000918252602090912001546001600160a01b03169050612dc18989836123e3565b93508315612ffb5760405163d9a641e160e01b81526001600160a01b0389811660048301528281166024830152600091908b169063d9a641e190604401602060405180830381865afa158015612e1b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e3f91906154ca565b6040516370a0823160e01b81526001600160a01b0380831660048301529192506000918b16906370a0823190602401602060405180830381865afa158015612e8b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612eaf919061550b565b6040516370a0823160e01b81526001600160a01b0384811660048301529192506000918516906370a0823190602401602060405180830381865afa158015612efb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f1f919061550b565b9050836001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015612f5f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f839190615894565b612f8e90600a6159b2565b612f9990600a615524565b811115612ff7576000612fab85613948565b90508015612fd357670de0b6b3a7640000612fc6828a615524565b612fd0919061556c565b97505b612fdd8389615524565b612fe79088615543565b9650612ff3838b615543565b9950505b5050505b5080613006816154b1565b915050612d80565b50836000036130265760008094509450505050612bc9565b613030848261556c565b94505050509250929050565b6000610f7e8361304b846146b3565b6147f1565b60008060008360020b12613067578260020b61306f565b8260020b6000035b9050620d89e88111156130ae576040517f2bc80f3a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000816001166000036130d2577001000000000000000000000000000000006130e4565b6ffffcb933bd6fad37aa2d162d1a5940015b70ffffffffffffffffffffffffffffffffff1690506002821615613118576ffff97272373d413259a46990580e213a0260801c5b6004821615613137576ffff2e50f5f656932ef12357cf3c7fdcc0260801c5b6008821615613156576fffe5caca7e10e4e61c3624eaa0941cd00260801c5b6010821615613175576fffcb9843d60f6159c9db58835c9266440260801c5b6020821615613194576fff973b41fa98c081472e6896dfb254c00260801c5b60408216156131b3576fff2ea16466c96a3843ec78b326b528610260801c5b60808216156131d2576ffe5dee046a99a2a811c461f1969c30530260801c5b6101008216156131f2576ffcbe86c7900a88aedcffc83b479aa3a40260801c5b610200821615613212576ff987a7253ac413176f2b074cf7815e540260801c5b610400821615613232576ff3392b0822b70005940c7a398e4b70f30260801c5b610800821615613252576fe7159475a2c29b7443b29c7fa6e889d90260801c5b611000821615613272576fd097f3bdfd2022b8845ad8f792aa58250260801c5b612000821615613292576fa9f746462d870fdf8a65dc1f90e061e50260801c5b6140008216156132b2576f70d869a156d2a1b890bb3df62baf32f70260801c5b6180008216156132d2576f31be135f97d08fd981231505542fcfa60260801c5b620100008216156132f3576f09aa508b5b7a84e1c677de54f3e99bc90260801c5b62020000821615613313576e5d6af8dedb81196699c329225ee6040260801c5b62040000821615613332576d2216e584f5fa1ea926041bedfe980260801c5b6208000082161561334f576b048a170391f7dc42444e8fa20260801c5b60008460020b131561337057806000198161336c5761336c615556565b0490505b640100000000810615613384576001613387565b60005b60ff16602082901c0192505050919050565b60008060006133c16003600087606c60009054906101000a90046001600160a01b0316611bf6565b6066549091506001600160a01b03908116908516036133f35791506ec097ce7bc90715b34b9f10000000009050612bc9565b60408051600480825260a08201909252600091829182916020820160808036833701905050905060648160008151811061342f5761342f615485565b602002602001019062ffffff16908162ffffff16815250506101f48160018151811061345d5761345d615485565b602002602001019062ffffff16908162ffffff1681525050610bb88160028151811061348b5761348b615485565b602002602001019062ffffff16908162ffffff1681525050612710816003815181106134b9576134b9615485565b602002602001019062ffffff16908162ffffff168152505060005b60048162ffffff161015613918576000828262ffffff16815181106134fb576134fb615485565b602002602001015190506135268a8a606660009054906101000a90046001600160a01b031684610f93565b9450841561366657606654604051630b4c774160e11b81526001600160a01b038b81166004830152918216602482015262ffffff831660448201526000918c1690631698ee8290606401602060405180830381865afa15801561358d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906135b191906154ca565b6040516370a0823160e01b81526001600160a01b0380831660048301529192506000918c16906370a0823190602401602060405180830381865afa1580156135fd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613621919061550b565b905080670de0b6b3a76400006136378a8a615524565b613641919061556c565b61364b9190615524565b6136559087615543565b9550613661818a615543565b985050505b60005b6067548110156139035760006067828154811061368857613688615485565b6000918252602090912001546001600160a01b031690506136ab8c8c8386610f93565b965086156138f057604051630b4c774160e11b81526001600160a01b038c81166004830152828116602483015262ffffff85166044830152600091908e1690631698ee8290606401602060405180830381865afa158015613710573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061373491906154ca565b6040516370a0823160e01b81526001600160a01b0380831660048301529192506000918e16906370a0823190602401602060405180830381865afa158015613780573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906137a4919061550b565b6040516370a0823160e01b81526001600160a01b0384811660048301529192506000918516906370a0823190602401602060405180830381865afa1580156137f0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613814919061550b565b9050836001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015613854573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906138789190615894565b61388390600a6159b2565b61388e90600a615524565b8111156138ec5760006138a085613948565b905080156138c857670de0b6b3a76400006138bb828d615524565b6138c5919061556c565b9a505b6138d2838c615524565b6138dc908b615543565b99506138e8838e615543565b9c50505b5050505b50806138fb816154b1565b915050613669565b5050808061391090615a2f565b9150506134d4565b5084600003613931576000809550955050505050612bc9565b61393b858361556c565b9550505050509250929050565b6001600160a01b038116600090815260656020526040808220815160608101909252805483929190829060ff16600181111561398657613986615135565b600181111561399757613997615135565b8152905461010081046001600160a01b03166020830152600160a81b900460ff1660409091015290506001815160018111156139d5576139d5615135565b036139f95760006139e9826020015161482c565b90506115398183604001516147f1565b50600092915050565b60408051600480825260a082019092526000918291829182919060208201608080368337019050509050606481600081518110613a4157613a41615485565b602002602001019062ffffff16908162ffffff16815250506101f481600181518110613a6f57613a6f615485565b602002602001019062ffffff16908162ffffff1681525050610bb881600281518110613a9d57613a9d615485565b602002602001019062ffffff16908162ffffff168152505061271081600381518110613acb57613acb615485565b602002602001019062ffffff16908162ffffff168152505060005b60048162ffffff161015613ce6576000828262ffffff1681518110613b0d57613b0d615485565b6020026020010151905060005b606754811015613cd157600060678281548110613b3957613b39615485565b6000918252602090912001546066546001600160a01b039182169250613b63918b91168386610f93565b97506000613b7082613948565b90508015613b9857670de0b6b3a7640000613b8b828b615524565b613b95919061556c565b98505b8815613cbc57606654604051630b4c774160e11b81526001600160a01b039182166004820152838216602482015262ffffff861660448201526000918c1690631698ee8290606401602060405180830381865afa158015613bfd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613c2191906154ca565b6066546040516370a0823160e01b81526001600160a01b038084166004830152929350600092909116906370a0823190602401602060405180830381865afa158015613c71573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613c95919061550b565b9050613ca1818c615524565b613cab908a615543565b9850613cb7818b615543565b995050505b50508080613cc9906154b1565b915050613b1a565b50508080613cde90615a2f565b915050613ae6565b5082600003613cfa57600093505050915091565b613d04838361556c565b93505050915091565b6000806000805b606754811015613df557600060678281548110613d3357613d33615485565b60009182526020808320909101546066546001600160a01b03918216808552606890935260408420549294508392613d80928b9290811691879160ff600160a01b90910481169116614723565b915091506000613d8f84613948565b90508015613dc557670de0b6b3a7640000613daa8284615524565b613db4919061556c565b613dbe9087615543565b9550613dd2565b613dcf8287615543565b95505b613ddc8388615543565b9650505050508080613ded906154b1565b915050613d14565b5081613e0982670de0b6b3a7640000615524565b613e13919061556c565b925050915091565b60008080805b606754811015613fcf57600060678281548110613e4057613e40615485565b60009182526020822001546066546001600160a01b039182169350613e6c928992909116908490610f93565b94506000613e7982613948565b90508015613ea157670de0b6b3a7640000613e948288615524565b613e9e919061556c565b95505b8515613fba5760665460405163d9a641e160e01b81526001600160a01b039182166004820152838216602482015260009189169063d9a641e190604401602060405180830381865afa158015613efb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613f1f91906154ca565b6066546040516370a0823160e01b81526001600160a01b038084166004830152929350600092909116906370a0823190602401602060405180830381865afa158015613f6f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613f93919061550b565b9050613f9f8189615524565b613fa99087615543565b9550613fb58188615543565b965050505b50508080613fc7906154b1565b915050613e21565b5081600003613fe2576000925050915091565b613e13828261556c565b6000806000805b606754811015613df55760006067828154811061401257614012615485565b60009182526020808320909101546066546001600160a01b0391821680855260689093526040842054929450839261405f928b9290811691879160ff600160a01b909104811691166148a3565b91509150600061406e84613948565b905080156140a457670de0b6b3a76400006140898284615524565b614093919061556c565b61409d9087615543565b95506140b1565b6140ae8287615543565b95505b6140bb8388615543565b96505050505080806140cc906154b1565b915050613ff3565b6033546001600160a01b03163314611da95760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016108b1565b603380546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b606954606c54600091829182916141b5916007916001600160a01b0390811691859116611bf6565b6066549091506001600160a01b03908116908516036141e75791506ec097ce7bc90715b34b9f10000000009050612bc9565b6142196040518060a0016040528060008152602001600081526020016000815260200160008152602001600081525090565b60665461424890879087906001600160a01b0316614236826146b3565b606654600160a01b900460ff166148a3565b602083018190526060830191909152670de0b6b3a76400009061426c908490615524565b614276919061556c565b6040820152606081015161428a9084615543565b925060005b606754811015612b7f576000606782815481106142ae576142ae615485565b6000918252602090912001546001600160a01b031690506142f58888836142d4826146b3565b6001600160a01b03861660009081526068602052604090205460ff166148a3565b60808501526060840152600061430a82613948565b9050801561434c57670de0b6b3a764000081856080015161432b9190615524565b614335919061556c565b84518590614344908390615543565b905250614364565b608084015184518590614360908390615543565b9052505b60608401516143739087615543565b955050508080614382906154b1565b91505061428f565b6000610f7e83614399846146b3565b614901565b600060129050826001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa9250505080156143fe575060408051601f3d908101601f191682019092526143fb91810190615894565b60015b156144065790505b604051806060016040528083600181111561442357614423615135565b81526001600160a01b0380861660208084019190915260ff8516604093840152908716600090815260659091522081518154829060ff19166001838181111561446e5761446e615135565b02179055506020820151815460409093015160ff16600160a81b027fffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff6001600160a01b0390921661010002919091167fffffffffffffffffffff000000000000000000000000000000000000000000ff9093169290921791909117905550505050565b600054610100900460ff1661455c5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b60648201526084016108b1565b611da961497a565b60005b81518110156146af57600082828151811061458457614584615485565b6020026020010151905060678383815181106145a2576145a2615485565b6020908102919091018101518254600181018455600093845282842001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039283161790558316825260689052604090205460ff16156146695760405162461bcd60e51b815260206004820152602760248201527f50726963654765747465723a20537461626c6520746f6b656e20616c7265616460448201527f792061646465640000000000000000000000000000000000000000000000000060648201526084016108b1565b614672816146b3565b6001600160a01b03919091166000908152606860205260409020805460ff191660ff909216919091179055806146a7816154b1565b915050614567565b5050565b6000816001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa92505050801561470f575060408051601f3d908101601f1916820190925261470c91810190615894565b60015b61471b57506012919050565b90505b919050565b6040517fe6a439050000000000000000000000000000000000000000000000000000000081526001600160a01b0385811660048301528481166024830152600091829182919089169063e6a43905906044015b602060405180830381865afa158015614793573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906147b791906154ca565b90506001600160a01b0381166147d45760008092509250506147e7565b6147e181888888886149ee565b92509250505b9550959350505050565b60008160ff16601203614805575081610f81565b61481082600a6159b2565b61482284670de0b6b3a7640000615524565b610f7e919061556c565b6000808290506000816001600160a01b031663feaf968c6040518163ffffffff1660e01b815260040160a060405180830381865afa158015614872573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906148969190615a6b565b5091979650505050505050565b6040517f6801cc300000000000000000000000000000000000000000000000000000000081526001600160a01b0385811660048301528481166024830152600060448301819052918291829190891690636801cc3090606401614776565b60008160ff16601203614915575081610f81565b60128260ff1611156149515761492c601283615abb565b61493790600a6159b2565b61494a906001600160701b03851661556c565b9050610f81565b61495c826012615abb565b61496790600a6159b2565b61494a906001600160701b038516615524565b600054610100900460ff166149e55760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b60648201526084016108b1565b611da93361412e565b600080866001600160a01b0316630902f1ac6040518163ffffffff1660e01b8152600401606060405180830381865afa925050508015614a4b575060408051601f3d908101601f19168201909252614a48918101906159f3565b60015b614a5a575060009050806147e7565b614a648989614ac1565b15614a9b57614a7c836001600160701b0316886147f1565b614a8f836001600160701b0316886147f1565b945094505050506147e7565b614aae826001600160701b0316886147f1565b614a8f846001600160701b0316886147f1565b6000816001600160a01b0316836001600160a01b031610614ae3576000610f7e565b60019392505050565b6001600160a01b038116811461292c57600080fd5b803561471e81614aec565b80356008811061471e57600080fd5b60008060008060008060c08789031215614b3457600080fd5b8635614b3f81614aec565b9550614b4d60208801614b0c565b94506040870135614b5d81614aec565b93506060870135614b6d81614aec565b92506080870135614b7d81614aec565b915060a0870135614b8d81614aec565b809150509295509295509295565b60008083601f840112614bad57600080fd5b50813567ffffffffffffffff811115614bc557600080fd5b6020830191508360208260051b8501011115612bc957600080fd5b600080600060408486031215614bf557600080fd5b8335614c0081614aec565b9250602084013567ffffffffffffffff811115614c1c57600080fd5b614c2886828701614b9b565b9497909650939450505050565b6020808252825182820181905260009190848201906040850190845b81811015614c6d57835183529284019291840191600101614c51565b50909695505050505050565b600080600060608486031215614c8e57600080fd5b8335614c9981614aec565b92506020840135614ca981614aec565b91506040840135614cb981614aec565b809150509250925092565b63ffffffff8116811461292c57600080fd5b60008060408385031215614ce957600080fd5b8235614cf481614aec565b91506020830135614d0481614cc4565b809150509250929050565b60008060408385031215614d2257600080fd5b8235614d2d81614aec565b91506020830135614d0481614aec565b803562ffffff8116811461471e57600080fd5b60008060008060808587031215614d6657600080fd5b8435614d7181614aec565b93506020850135614d8181614aec565b92506040850135614d9181614aec565b9150614d9f60608601614d3d565b905092959194509250565b600060208284031215614dbc57600080fd5b8135614dc781614aec565b9392505050565b60008060408385031215614de157600080fd5b8235614dec81614aec565b9150614dfa60208401614b0c565b90509250929050565b60008060408385031215614e1657600080fd5b8235614e2181614aec565b946020939093013593505050565b60008060008060008060006080888a031215614e4a57600080fd5b8735614e5581614aec565b9650602088013567ffffffffffffffff80821115614e7257600080fd5b614e7e8b838c01614b9b565b909850965060408a0135915080821115614e9757600080fd5b614ea38b838c01614b9b565b909650945060608a0135915080821115614ebc57600080fd5b50614ec98a828b01614b9b565b989b979a50959850939692959293505050565b600060208284031215614eee57600080fd5b610f7e82614b0c565b60008060208385031215614f0a57600080fd5b823567ffffffffffffffff811115614f2157600080fd5b614f2d85828601614b9b565b90969095509350505050565b60008060008060808587031215614f4f57600080fd5b614f5885614b0c565b93506020850135614f6881614aec565b92506040850135614f7881614aec565b91506060850135614f8881614aec565b939692955090935050565b600080600080600080600060c0888a031215614fae57600080fd5b873567ffffffffffffffff811115614fc557600080fd5b614fd18a828b01614b9b565b9098509650614fe4905060208901614b0c565b94506040880135614ff481614aec565b9350606088013561500481614aec565b9250608088013561501481614aec565b915060a088013561502481614aec565b8091505092959891949750929550565b60008060006040848603121561504957600080fd5b833567ffffffffffffffff81111561506057600080fd5b61506c86828701614b9b565b909790965060209590950135949350505050565b60006020828403121561509257600080fd5b8135614dc781614cc4565b6000806000606084860312156150b257600080fd5b83356150bd81614aec565b925060208401356150cd81614aec565b9150604084013560028110614cb957600080fd5b6000806000604084860312156150f657600080fd5b833567ffffffffffffffff81111561510d57600080fd5b61511986828701614b9b565b909450925061512c905060208501614b0c565b90509250925092565b634e487b7160e01b600052602160045260246000fd5b606081016002851061516d57634e487b7160e01b600052602160045260246000fd5b9381526001600160a01b0392909216602083015260ff1660409091015290565b6000806000606084860312156151a257600080fd5b83356151ad81614aec565b925060208401356151bd81614aec565b915061512c60408501614d3d565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff8111828210171561520a5761520a6151cb565b604052919050565b600067ffffffffffffffff82111561522c5761522c6151cb565b5060051b60200190565b600082601f83011261524757600080fd5b8135602061525c61525783615212565b6151e1565b82815260059290921b8401810191818101908684111561527b57600080fd5b8286015b8481101561529f57803561529281614aec565b835291830191830161527f565b509695505050505050565b600080600080600080600080610100898b0312156152c757600080fd5b6152d089614b01565b97506152de60208a01614b01565b96506152ec60408a01614b01565b95506152fa60608a01614b01565b945061530860808a01614b01565b935060a089013567ffffffffffffffff8082111561532557600080fd5b6153318c838d01615236565b945060c08b013591508082111561534757600080fd5b6153538c838d01615236565b935060e08b013591508082111561536957600080fd5b506153768b828c01615236565b9150509295985092959890939650565b60008060006040848603121561539b57600080fd5b833567ffffffffffffffff8111156153b257600080fd5b6153be86828701614b9b565b9094509250506020840135614cb981614cc4565b600080600080600080606087890312156153eb57600080fd5b863567ffffffffffffffff8082111561540357600080fd5b61540f8a838b01614b9b565b9098509650602089013591508082111561542857600080fd5b6154348a838b01614b9b565b9096509450604089013591508082111561544d57600080fd5b5061545a89828a01614b9b565b979a9699509497509295939492505050565b60006020828403121561547e57600080fd5b5035919050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600182016154c3576154c361549b565b5060010190565b6000602082840312156154dc57600080fd5b8151614dc781614aec565b600080604083850312156154fa57600080fd5b505080516020909101519092909150565b60006020828403121561551d57600080fd5b5051919050565b600081600019048311821515161561553e5761553e61549b565b500290565b80820180821115610f8157610f8161549b565b634e487b7160e01b600052601260045260246000fd5b60008261557b5761557b615556565b500490565b8051600281900b811461471e57600080fd5b805161ffff8116811461471e57600080fd5b805160ff8116811461471e57600080fd5b8051801515811461471e57600080fd5b600080600080600080600060e0888a0312156155e057600080fd5b87516155eb81614aec565b96506155f960208901615580565b955061560760408901615580565b945061561560608901615592565b935061562360808901615592565b925061563160a089016155a4565b915061563f60c089016155b5565b905092959891949750929550565b600080600080600080600060e0888a03121561566857600080fd5b875161567381614aec565b965061568160208901615580565b955061568f60408901615592565b945061569d60608901615592565b93506156ab60808901615592565b925060a088015161563181614cc4565b6020808252825182820181905260009190848201906040850190845b81811015614c6d57835163ffffffff16835292840192918401916001016156d7565b600082601f83011261570a57600080fd5b8151602061571a61525783615212565b82815260059290921b8401810191818101908684111561573957600080fd5b8286015b8481101561529f57805161575081614aec565b835291830191830161573d565b6000806040838503121561577057600080fd5b825167ffffffffffffffff8082111561578857600080fd5b818501915085601f83011261579c57600080fd5b815160206157ac61525783615212565b82815260059290921b840181019181810190898411156157cb57600080fd5b948201945b838610156157f95785518060060b81146157ea5760008081fd5b825294820194908201906157d0565b9188015191965090935050508082111561581257600080fd5b5061581f858286016156f9565b9150509250929050565b600682810b9082900b03667fffffffffffff198112667fffffffffffff82131715610f8157610f8161549b565b60008160060b8360060b8061586d5761586d615556565b667fffffffffffff1982146000198214161561588b5761588b61549b565b90059392505050565b6000602082840312156158a657600080fd5b610f7e826155a4565b81810381811115610f8157610f8161549b565b600181815b808511156158fd5781600019048211156158e3576158e361549b565b808516156158f057918102915b93841c93908002906158c7565b509250929050565b60008261591457506001610f81565b8161592157506000610f81565b816001811461593757600281146159415761595d565b6001915050610f81565b60ff8411156159525761595261549b565b50506001821b610f81565b5060208310610133831016604e8410600b8410161715615980575081810a610f81565b61598a83836158c2565b806000190482111561599e5761599e61549b565b029392505050565b6000610f7e8383615905565b6000610f7e60ff841683615905565b6000602082840312156159d357600080fd5b610f7e82614d3d565b80516001600160701b038116811461471e57600080fd5b600080600060608486031215615a0857600080fd5b615a11846159dc565b9250615a1f602085016159dc565b91506040840151614cb981614cc4565b600062ffffff808316818103615a4757615a4761549b565b6001019392505050565b805169ffffffffffffffffffff8116811461471e57600080fd5b600080600080600060a08688031215615a8357600080fd5b615a8c86615a51565b9450602086015193506040860151925060608601519150615aaf60808701615a51565b90509295509295909350565b60ff8281168282160390811115610f8157610f8161549b56fea26469706673582212206e8639379132752b3555daf685f08dbaba8f2c03ae12ef9389b30686b4cd1b0064736f6c63430008100033