61010060405234801562000011575f80fd5b50620000323073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2620001c6565b6001600160a01b031660a0819052600260209081527fd1c69375fae4db1f9bc09d344dd4ca5ec7325a49ae090b3810917b7940a06d4b8054600160ff1991821681179092557fda4acfa3de973735c764cfbaff39d0713857968d5508c62047720cdf3757d5358054821683179055305f90815260408082208054841685179055948152600384528490208054909116909117905581516318160ddd60e01b81529151620001579273946ef43867225695e29241813a8f41519634b36b9273c75c635c1f5e21d23ec8592cb37503b82a7ef942926318160ddd9260048082019392918290030181865afa1580156200012b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001519190620002d0565b62000226565b60a05162000165906200027f565b6001600160a01b0390811660e0521660c0819052301462000187575f6200018a565b60015b1515608052305f908152600160209081526040808320737a250d5630b4cf539739df2c5dacb4c659f2488d845290915290205f199055620002e8565b5f6040516364e329cb60e11b81526001600160a01b03841660048201526001600160a01b038316602482015260205f6044835f735c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f5af19050806200021c575f80fd5b50505f5192915050565b6001600160a01b0382165f818152602081815260408083208054860190556004805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b5f80604051630dfe168160e01b815260205f600483875afa63d21220a760e01b60048301526020806004808501885afa9150811581151715620002c0575f80fd5b50505f5191506020519050915091565b5f60208284031215620002e1575f80fd5b5051919050565b60805160a05160c05160e051612ffc620003325f395f50505f50505f81816102ab0152818161143e01528181612a2b0152612b8201525f8181612a830152612bfa0152612ffc5ff3fe608060405260043610610164575f3560e01c806364c9ec6f116100cd578063bedd12a511610087578063d926de1c11610062578063d926de1c146104bb578063db006a75146104da578063dd62ed3e146104f9578063df8980b31461053d575f80fd5b8063bedd12a51461046d578063c5b748c014610493578063d7ccfb0b146104a7575f80fd5b806364c9ec6f146103b357806370a08231146103bb5780637b16c21e146103ef57806395d89b41146104035780639f7b45791461042f578063a9059cbb1461044e575f80fd5b806323b872dd1161011e57806323b872dd1461030157806326749e8714610320578063313ce5671461033457806342966c681461034f5780634febf53d1461036e5780635d03147a1461038d575f80fd5b806301339c211461016f578063031bee001461018557806306fdde0314610239578063095ea7b31461026e57806316f0115b1461029d57806318160ddd146102e3575f80fd5b3661016b57005b5f80fd5b34801561017a575f80fd5b5061018361055c565b005b348015610190575f80fd5b5061019961060c565b6040805184516001600160601b0390811682526020808701518216818401528684015182168385015260608088015183168185015260809788015190921687840152855165ffffffffffff90811660a08501529581015160c08401528451861660e0840152840151851661010083015291830151841661012082015290820151831661014082015292015116610160820152610180015b60405180910390f35b348015610244575f80fd5b506040805180820190915260048152634b6f746f60e01b60208201525b6040516102309190612c90565b348015610279575f80fd5b5061028d610288366004612cf2565b6106f5565b6040519015158152602001610230565b3480156102a8575f80fd5b507f00000000000000000000000000000000000000000000000000000000000000005b6040516001600160a01b039091168152602001610230565b3480156102ee575f80fd5b506004545b604051908152602001610230565b34801561030c575f80fd5b5061028d61031b366004612d1a565b610722565b34801561032b575f80fd5b506101996107f6565b34801561033f575f80fd5b5060405160128152602001610230565b34801561035a575f80fd5b5061028d610369366004612d53565b6108df565b348015610379575f80fd5b50610183610388366004612d6a565b610917565b348015610398575f80fd5b5073946ef43867225695e29241813a8f41519634b36b6102cb565b6102f3610996565b3480156103c6575f80fd5b506102f36103d5366004612d6a565b6001600160a01b03165f9081526020819052604090205490565b3480156103fa575f80fd5b506102f36110ee565b34801561040e575f80fd5b506040805180820190915260048152634b4f544f60e01b6020820152610261565b34801561043a575f80fd5b50610183610449366004612d83565b6110fd565b348015610459575f80fd5b5061028d610468366004612cf2565b61120d565b348015610478575f80fd5b5073e58b33c813ac4077bd2519de90fccb189a19fa716102cb565b34801561049e575f80fd5b506102f3611254565b3480156104b2575f80fd5b506102f3611275565b3480156104c6575f80fd5b506101836104d5366004612d6a565b611280565b3480156104e5575f80fd5b506102f36104f4366004612d53565b61130d565b348015610504575f80fd5b506102f3610513366004612da3565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b348015610548575f80fd5b506102f3610557366004612d53565b611398565b3373946ef43867225695e29241813a8f41519634b36b1461059057604051635fc483c560e01b815260040160405180910390fd5b601554610100900460ff16156105b9576040516319f4db0f60e31b815260040160405180910390fd5b6105c1611b8c565b6015805461ff0019166101001790556040517feca0dfbda743d141662328d4d48393e344b2c60df0430297221df823f2926dba906106029042815260200190565b60405180910390a1565b610614612c63565b604080518082019091525f808252602082015261062f612c63565b50506040805160a080820183526007546001600160601b038082168452600160601b91829004811660208086019190915260085480831686880152839004821660608087019190915260095490921660808087019190915286518088018852600a5465ffffffffffff9081168252600b5482850152885196870189526006548082168852600160301b8104821694880194909452948304851697860197909752600160901b8204841692850192909252600160c01b900490911690820152909391925090565b335f9081526001602081815260408084206001600160a01b03871685529091529091208290555b92915050565b5f6001600160a01b0383161580610737575081155b1561075557604051632f35253160e01b815260040160405180910390fd5b6001600160a01b03841633146107e0576001600160a01b0384165f9081526001602090815260408083203384529091529020548211156107a8576040516358d246fb60e11b815260040160405180910390fd5b6001600160a01b0384165f908152600160209081526040808320338452909152812080548492906107da908490612de8565b90915550505b6107eb848484611c2d565b5060015b9392505050565b6107fe612c63565b604080518082019091525f8082526020820152610819612c63565b50506040805160a08082018352600e546001600160601b038082168452600160601b918290048116602080860191909152600f548083168688015283900482166060808701919091526010549092166080808701919091528651808801885260115465ffffffffffff90811682526012548285015288519687018952600d548082168852600160301b8104821694880194909452948304851697860197909752600160901b8204841692850192909252600160c01b900490911690820152909391925090565b5f6108ea3383611e0e565b506040518181526001905f9033905f80516020612fa78339815191529060200160405180910390a3919050565b3373946ef43867225695e29241813a8f41519634b36b1461094b57604051635fc483c560e01b815260040160405180910390fd5b6001600160a01b0381165f81815260026020526040808220805460ff19166001179055517fec2dffa455deca3e695cce255e2b110b5ca334fb5b166f3159bbaad319ce0f1b9190a250565b6015545f9060ff166002036109be5760405163558a1e0360e11b815260040160405180910390fd5b6015805460ff19166002179055600a5465ffffffffffff164211156109f55760405162b5f6bf60e41b815260040160405180910390fd5b6007546001600160601b0316156110d4575f60076040518060a00160405290815f82015f9054906101000a90046001600160601b03166001600160601b03166001600160601b031681526020015f8201600c9054906101000a90046001600160601b03166001600160601b03166001600160601b03168152602001600182015f9054906101000a90046001600160601b03166001600160601b03166001600160601b0316815260200160018201600c9054906101000a90046001600160601b03166001600160601b03166001600160601b03168152602001600282015f9054906101000a90046001600160601b03166001600160601b03166001600160601b03168152505090505f600a6040518060400160405290815f82015f9054906101000a900465ffffffffffff1665ffffffffffff1665ffffffffffff16815260200160018201548152505090505f60066040518060a00160405290815f82015f9054906101000a900465ffffffffffff1665ffffffffffff1665ffffffffffff1681526020015f820160069054906101000a900465ffffffffffff1665ffffffffffff1665ffffffffffff1681526020015f8201600c9054906101000a900465ffffffffffff1665ffffffffffff1665ffffffffffff1681526020015f820160129054906101000a900465ffffffffffff1665ffffffffffff1665ffffffffffff1681526020015f820160189054906101000a900465ffffffffffff1665ffffffffffff1665ffffffffffff168152505090505f60056040518060800160405290815f82015f9054906101000a90046001600160801b03166001600160801b03166001600160801b031681526020015f820160109054906101000a900465ffffffffffff1665ffffffffffff1665ffffffffffff1681526020015f820160169054906101000a900465ffffffffffff1665ffffffffffff1665ffffffffffff1681526020015f8201601c9054906101000a900460ff16151515158152505090505f60045490505f429050610dcb60066040518060a00160405290815f82015f9054906101000a900465ffffffffffff1665ffffffffffff1665ffffffffffff1681526020015f820160069054906101000a900465ffffffffffff1665ffffffffffff1665ffffffffffff1681526020015f8201600c9054906101000a900465ffffffffffff1665ffffffffffff1665ffffffffffff1681526020015f820160129054906101000a900465ffffffffffff1665ffffffffffff1665ffffffffffff1681526020015f820160189054906101000a900465ffffffffffff1665ffffffffffff1665ffffffffffff1681525050878786611e91565b809650819850829750839950505050505f610df8866020015188602001516001600160601b031685611fb7565b905080610e0d34670de0b6b3a7640000612dfb565b610e179190612e26565b6008549098506001600160601b0316881115610e46576040516305c250cf60e11b815260040160405180910390fd5b87875f01818151610e579190612e39565b6001600160601b0316905250608087018051349190610e77908390612e60565b6001600160601b0316905250606087018051899190610e97908390612e60565b6001600160601b0316905250602087018051899190610eb7908390612e60565b6001600160601b03169052505f610ece338a611fe7565b905080610eee5760405163dde1446d60e01b815260040160405180910390fd5b604080518a81526020810184905233917f3ae9ad26d7d47616d306d7757b947fe7b0f9a7c61a5f0dc784b0ddb6c7c40b5a910160405180910390a2610f3783898989898961206b565b8351600780546020808801516001600160601b039485166001600160c01b031993841617600160601b918616820217909355604080890151600880546060808d015193891691909616179187168602919091179055608098890151600980546001600160601b0319908116929097169190911790558751600a805465ffffffffffff191665ffffffffffff92831617905597820151600b55865160068054898501518a8501518b8801519b909d01516bffffffffffffffffffffffff60601b19948d169290991691909117600160301b918c1691909102179190911699891690940265ffffffffffff60901b191698909817600160901b968816969096029590951765ffffffffffff60c01b1916600160c01b93871693909302929092179055815160058054948401519684015193909201516001600160801b039091166001600160b01b031990941693909317600160801b958516959095029490941766ffffffffffffff60b01b1916600160b01b919093160260ff60e01b191691909117600160e01b91151591909102179055506110de9650505050505050565b6110de333461226e565b6015805460ff1916600117905590565b5f6110f85f6122c5565b905090565b3373946ef43867225695e29241813a8f41519634b36b1480159061113557503373e58b33c813ac4077bd2519de90fccb189a19fa7114155b1561115357604051636edaef2f60e11b815260040160405180910390fd5b600a544265ffffffffffff9091161115611180576040516301f2595960e01b815260040160405180910390fd5b305f9081526020819052604090205480156111d457305f8181526020818152604080832080548690039055600480548690039055518481529192915f80516020612fa7833981519152910160405180910390a35b5f6111df8385612e80565b90506111ec333083610722565b50601384905560148390556111ff6123df565b611207612620565b50505050565b5f6001600160a01b0383161580611222575081155b1561124057604051632f35253160e01b815260040160405180910390fd5b61124b338484611c2d565b50600192915050565b6004545f9061126b47670de0b6b3a7640000612dfb565b6110f89190612e26565b5f6110f860016122c5565b3373946ef43867225695e29241813a8f41519634b36b146112b457604051635fc483c560e01b815260040160405180910390fd5b6001600160a01b0381165f81815260036020908152604091829020805460ff1916600117905590519182527f10cdbb821aa416c854add806e1d7e8138afe2a538921cebe99b1351362ae38b2910160405180910390a150565b5f8061132447670de0b6b3a764000060045461286a565b90506113398184670de0b6b3a764000061286a565b91506113453384611e0e565b61134f338361226e565b604080518481526020810184905290810182905233907fbd5034ffbd47e4e72a94baa2cdb74c6fad73cb3bcdc13036b72ec8306f5a76469060600160405180910390a250919050565b6015545f9060ff166002036113c05760405163558a1e0360e11b815260040160405180910390fd5b6015805460ff1916600217905560115465ffffffffffff164211156113f75760405162b5f6bf60e41b815260040160405180910390fd5b600e546001600160601b031615611b7a576040516323b872dd60e01b815233600482015273e58b33c813ac4077bd2519de90fccb189a19fa716024820152604481018390527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906323b872dd906064016020604051808303815f875af115801561148c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906114b09190612e93565b505f600e6040518060a00160405290815f82015f9054906101000a90046001600160601b03166001600160601b03166001600160601b031681526020015f8201600c9054906101000a90046001600160601b03166001600160601b03166001600160601b03168152602001600182015f9054906101000a90046001600160601b03166001600160601b03166001600160601b0316815260200160018201600c9054906101000a90046001600160601b03166001600160601b03166001600160601b03168152602001600282015f9054906101000a90046001600160601b03166001600160601b03166001600160601b03168152505090505f60116040518060400160405290815f82015f9054906101000a900465ffffffffffff1665ffffffffffff1665ffffffffffff16815260200160018201548152505090505f600d6040518060a00160405290815f82015f9054906101000a900465ffffffffffff1665ffffffffffff1665ffffffffffff1681526020015f820160069054906101000a900465ffffffffffff1665ffffffffffff1665ffffffffffff1681526020015f8201600c9054906101000a900465ffffffffffff1665ffffffffffff1665ffffffffffff1681526020015f820160129054906101000a900465ffffffffffff1665ffffffffffff1665ffffffffffff1681526020015f820160189054906101000a900465ffffffffffff1665ffffffffffff1665ffffffffffff168152505090505f600c6040518060800160405290815f82015f9054906101000a90046001600160801b03166001600160801b03166001600160801b031681526020015f820160109054906101000a900465ffffffffffff1665ffffffffffff1665ffffffffffff1681526020015f820160169054906101000a900465ffffffffffff1665ffffffffffff1665ffffffffffff1681526020015f8201601c9054906101000a900460ff16151515158152505090505f60045490505f429050611876600d6040518060a00160405290815f82015f9054906101000a900465ffffffffffff1665ffffffffffff1665ffffffffffff1681526020015f820160069054906101000a900465ffffffffffff1665ffffffffffff1665ffffffffffff1681526020015f8201600c9054906101000a900465ffffffffffff1665ffffffffffff1665ffffffffffff1681526020015f820160129054906101000a900465ffffffffffff1665ffffffffffff1665ffffffffffff1681526020015f820160189054906101000a900465ffffffffffff1665ffffffffffff1665ffffffffffff1681525050878786611e91565b809650819850829750839950505050505f6118a3866020015188602001516001600160601b031685611fb7565b9050806118b88a670de0b6b3a7640000612dfb565b6118c29190612e26565b600f549098506001600160601b03168811156118f1576040516305c250cf60e11b815260040160405180910390fd5b87875f018181516119029190612e39565b6001600160601b03169052506080870180518a9190611922908390612e60565b6001600160601b0316905250606087018051899190611942908390612e60565b6001600160601b0316905250602087018051899190611962908390612e60565b6001600160601b03169052505f611979338a611fe7565b9050806119995760405163dde1446d60e01b815260040160405180910390fd5b604080518a81526020810184905233917f3ae9ad26d7d47616d306d7757b947fe7b0f9a7c61a5f0dc784b0ddb6c7c40b5a910160405180910390a26119e283898989898961206b565b8351600e80546020808801516001600160601b039485166001600160c01b031993841617600160601b918616820217909355604080890151600f80546060808d015193891691909616179187168602919091179055608098890151601080546001600160601b03199081169290971691909117905587516011805465ffffffffffff191665ffffffffffff928316179055978201516012558651600d8054898501518a8501518b8801519b909d01516bffffffffffffffffffffffff60601b19948d169290991691909117600160301b918c1691909102179190911699891690940265ffffffffffff60901b191698909817600160901b968816969096029590951765ffffffffffff60c01b1916600160c01b938716939093029290921790558151600c8054948401519684015193909201516001600160801b039091166001600160b01b031990941693909317600160801b958516959095029490941766ffffffffffffff60b01b1916600160b01b919093160260ff60e01b191691909117600160e01b9115159190910217905550505050505050505b6015805460ff19166001179055919050565b5f805f306001600160a01b03166001600160a01b031681526020019081526020015f2054905060405163f305d71960e01b81526001600160a01b03301660048201528160248201525f60448201525f606482015273e58b33c813ac4077bd2519de90fccb189a19fa7160848201524260a48201525f8060c4833031737a250d5630b4cf539739df2c5dacb4c659f2488d5af1905080611c29575f80fd5b5050565b6001600160a01b0383165f90815260208190526040902054811115611c655760405163064c392760e21b815260040160405180910390fd5b6001600160a01b0382165f9081526003602052604081205460ff1680611ca257506001600160a01b0384165f9081526003602052604090205460ff165b15611cf4576001600160a01b0383165f9081526002602052604090205460ff1680611ce457506001600160a01b0384165f9081526002602052604090205460ff165b15611cf057505f611cf4565b5060015b8015611da1575f6103e8611d09603285612dfb565b611d139190612e26565b6001600160a01b0386165f9081526020819052604081208054869003905573e58b33c813ac4077bd2519de90fccb189a19fa7190527f1338836141591a3221ceb363e91a05d18b16e6fa044cb293d015e6c316402dc78054820190559050611d7b8184612de8565b6001600160a01b0385165f9081526020819052604090208054820190559250611dce9050565b6001600160a01b038085165f90815260208190526040808220805486900390559185168152208054830190555b826001600160a01b0316846001600160a01b03165f80516020612fa783398151915284604051611e0091815260200190565b60405180910390a350505050565b6001600160a01b0382165f90815260208190526040902054811115611e465760405163064c392760e21b815260040160405180910390fd5b6001600160a01b0382165f8181526020818152604080832080548690039055600480548690039055518481529192915f80516020612fa7833981519152910160405180910390a35050565b611e99612c63565b611ea1612c63565b6040805180820182525f8082526020808301829052835160808101855282815290810182905292830181905260608301529042611ede8989612914565b67ffffffffffffffff1688602001818151611ef99190612e39565b6001600160601b031690525065ffffffffffff811660208a0152606086015115611fa9575f805f611f2989612956565b925092509250826001600160801b03168a602001818151611f4a9190612de8565b9052508015611f9e5782895f01818151611f649190612eb2565b6001600160801b0316905250604089018051839190611f84908390612ed2565b65ffffffffffff908116909152851660208b015250611fa5565b5f60608a01525b5050505b509597949550929392505050565b5f670de0b6b3a7640000611fcb84846129e7565b611fd59086612dfb565b611fdf9190612e26565b949350505050565b305f9081526020819052604081205482111561201657604051635e36b3df60e01b815260040160405180910390fd5b506001600160a01b0382165f818152602081815260408083208054860190553080845292819020805486900390555184815260019392915f80516020612fa7833981519152910160405180910390a392915050565b612073612c63565b604080518082019091525f808252602082015261208e612c63565b604080516080810182525f8082526020820181905291810182905260608101919091526120de6040518060a001604052805f81526020015f81526020015f81526020015f81526020015f81525090565b608088015188516120ef9190612ef1565b65ffffffffffff168b65ffffffffffff161061225c578851612112908c90612ed2565b65ffffffffffff1681526020808a0151908b015161213a91906001600160601b031688611fb7565b602082015289516001600160601b031660408201819052815160608a0151909161216c9165ffffffffffff1690612dfb565b6121769190612e26565b6001600160601b03166040808c01919091528151898201519183015190916121a89165ffffffffffff90911690612dfb565b6121b29190612e26565b6060820181905260208201516121c9908890612dfb565b6121d39190612e26565b6080820181905260208a01511115612245575f81608001518a602001516121fa9190612de8565b90506040518060800160405280826001600160801b031681526020018d65ffffffffffff1681526020018a6080015165ffffffffffff16815260200160011515815250975050612250565b608081015160208a01525b65ffffffffffff8b1688525b50979996985094965092949350505050565b5f805f805f85875af19050806122c05760405162461bcd60e51b815260206004820152601360248201527211551217d514905394d1915497d19052531151606a1b604482015260640160405180910390fd5b505050565b5f811561235a57600b54604080516080810182526005546001600160801b0381168252600160801b810465ffffffffffff9081166020840152600160b01b82041692820192909252600160e01b90910460ff161515606082015261071c9161232c91612a05565b60075460045461234c91600160601b90046001600160601b0316906129e7565b670de0b6b3a764000061286a565b60125460408051608081018252600c546001600160801b0381168252600160801b810465ffffffffffff9081166020840152600160b01b82041692820192909252600160e01b90910460ff161515606082015261071c916123ba91612a05565b600e5460045461234c91600160601b90046001600160601b0316906129e7565b919050565b6013548015612619575f6123f1612a27565b9050815f62093a806124068362015180612f10565b6001600160601b03166124199190612e26565b90505f846001600160601b0316600454856124349190612dfb565b61243e9190612e26565b90505f612454846001600160601b031686612b01565b90505f61246462093a8042612e80565b905081156125c3576040805160a080820183526001600160601b038881168084528b82166020808601829052928a168587018190525f6060808801829052608097880191909152600780546001600160c01b03199081168617600160601b90950294909417905560088054909316909117909155600980546001600160601b03199081169091558651808801885265ffffffffffff8981168083529186018c9052600a805465ffffffffffff191683179055600b8c9055885196870189524290811680885287870181905262093a80888b015262015180888601526107089790980196909652600680549092168717600160301b90970296909617600160601b600160f01b0319166c0e1000000002a300000000127560671b179055855191825291810192909252928101919091527f035d6743050a54c5c545b7f45bddbd082bf97e098d81e6eb10045ab6a10ab510910160405180910390a1612612565b6125d630866001600160601b0316611e0e565b6125e362093a8042612e80565b600a805465ffffffffffff191665ffffffffffff92909216919091179055600780546001600160601b03191690555b5050505050505b505f601355565b6014546001600160601b03811615612863575f61263b612b7e565b9050815f62093a806126508362015180612f10565b6001600160601b03166126639190612e26565b90505f846001600160601b03166004548561267e9190612dfb565b6126889190612e26565b90505f61269e846001600160601b031686612b01565b90505f6126ae62093a8042612e80565b9050811561280d576040805160a080820183526001600160601b038881168084528b82166020808601829052928a168587018190525f6060808801829052608097880191909152600e80546001600160c01b03199081168617600160601b909502949094179055600f8054909316909117909155601080546001600160601b03199081169091558651808801885265ffffffffffff8981168083529186018c90526011805465ffffffffffff19168317905560128c9055885196870189524290811680885287870181905262093a80888b015262015180888601526107089790980196909652600d80549092168717600160301b90970296909617600160601b600160f01b0319166c0e1000000002a300000000127560671b179055855191825291810192909252928101919091527f035d6743050a54c5c545b7f45bddbd082bf97e098d81e6eb10045ab6a10ab510910160405180910390a161285c565b61282030866001600160601b0316611e0e565b61282d62093a8042612e80565b6011805465ffffffffffff191665ffffffffffff92909216919091179055600e80546001600160601b03191690555b5050505050505b505f601455565b5f80805f19858709858702925082811083820303915050805f0361289e575f8411612893575f80fd5b5082900490506107ef565b8084116128a9575f80fd5b5f848688095f868103871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103029181900381900460010186841190950394909402919094039290920491909117919091029150509392505050565b5f80836020015165ffffffffffff164261292e9190612de8565b9050836040015165ffffffffffff168184602001516001600160601b0316611fd59190612dfb565b5f805f836060015161296f57505f9150819050806129e0565b5f8460200151426129809190612ed2565b90505f856040015165ffffffffffff168265ffffffffffff161090505f816129a95786516129d7565b866040015165ffffffffffff168365ffffffffffff16885f01516129cd9190612f3b565b6129d79190612f5e565b95509193509150505b9193909250565b5f816129fb84670de0b6b3a7640000612dfb565b6107ef9190612e26565b5f80612a1083612956565b50506001600160801b03169050611fdf8185612de8565b5f807f000000000000000000000000000000000000000000000000000000000000000090505f80604051630240bc6b60e21b81525f80600483875afa905080612a6e575f80fd5b5060205f803e60208060203e50505f516020517f000000000000000000000000000000000000000000000000000000000000000015612ad357612acc816001600160701b0316670de0b6b3a7640000846001600160701b031661286a565b9350612afb565b612af8826001600160701b0316670de0b6b3a7640000836001600160701b031661286a565b93505b50505090565b6004545f9081612b118583612de8565b612b2347670de0b6b3a7640000612dfb565b612b2d9190612e26565b90505f82612b3b8688612dfb565b612b4d47670de0b6b3a7640000612dfb565b612b579190612e80565b612b619190612e26565b905080821015612b72576001612b74565b5f5b9695505050505050565b5f807f000000000000000000000000000000000000000000000000000000000000000090505f805f604051630240bc6b60e21b81525f80600483885afa80612bc4575f80fd5b5060205f803e60208060203e5f51935060205192506318160ddd60e01b602082015260205f600460208401885afa50505f5190507f000000000000000000000000000000000000000000000000000000000000000015612c4b57612c44612c2c846002612f83565b6001600160701b0316670de0b6b3a76400008361286a565b9450612c5c565b612c59612c2c836002612f83565b94505b5050505090565b6040805160a0810182525f8082526020820181905291810182905260608101829052608081019190915290565b5f602080835283518060208501525f5b81811015612cbc57858101830151858201604001528201612ca0565b505f604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b03811681146123da575f80fd5b5f8060408385031215612d03575f80fd5b612d0c83612cdc565b946020939093013593505050565b5f805f60608486031215612d2c575f80fd5b612d3584612cdc565b9250612d4360208501612cdc565b9150604084013590509250925092565b5f60208284031215612d63575f80fd5b5035919050565b5f60208284031215612d7a575f80fd5b6107ef82612cdc565b5f8060408385031215612d94575f80fd5b50508035926020909101359150565b5f8060408385031215612db4575f80fd5b612dbd83612cdc565b9150612dcb60208401612cdc565b90509250929050565b634e487b7160e01b5f52601160045260245ffd5b8181038181111561071c5761071c612dd4565b808202811582820484141761071c5761071c612dd4565b634e487b7160e01b5f52601260045260245ffd5b5f82612e3457612e34612e12565b500490565b6001600160601b03828116828216039080821115612e5957612e59612dd4565b5092915050565b6001600160601b03818116838216019080821115612e5957612e59612dd4565b8082018082111561071c5761071c612dd4565b5f60208284031215612ea3575f80fd5b815180151581146107ef575f80fd5b6001600160801b03828116828216039080821115612e5957612e59612dd4565b65ffffffffffff828116828216039080821115612e5957612e59612dd4565b65ffffffffffff818116838216019080821115612e5957612e59612dd4565b6001600160601b03818116838216028082169190828114612f3357612f33612dd4565b505092915050565b6001600160801b03818116838216028082169190828114612f3357612f33612dd4565b5f6001600160801b0380841680612f7757612f77612e12565b92169190910492915050565b6001600160701b03818116838216028082169190828114612f3357612f33612dd456feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220caf4e3b4220f06c011dec8269de8b0005be17a0e02575fba2b57079b228073c064736f6c63430008170033