Mainnet
Testnet
hapciu (hpc)

hapciu (hpc)

Overview

Max Total supply:
175,025
hpc
Holders:
1 addresses
Total transfers:
1

Token info

Contract:
Name:
hapciu
Symbol:
hpc
Decimals:
18
Token type:
wrc20
Are you the contract creator? Verify and Publish your contract source code.

Creation bytecode

0x6101606040523480156200001257600080fd5b506040518060400160405280600681526020017f6861706369750000000000000000000000000000000000000000000000000000815250806040518060400160405280600181526020017f31000000000000000000000000000000000000000000000000000000000000008152506040518060400160405280600681526020017f68617063697500000000000000000000000000000000000000000000000000008152506040518060400160405280600381526020017f68706300000000000000000000000000000000000000000000000000000000008152508160039081620000fd9190620008df565b5080600490816200010f9190620008df565b5050506000600560006101000a81548160ff0219169083151502179055506200014d620001416200024d60201b60201c565b6200025560201b60201c565b620001686006836200031b60201b62000eb41790919060201c565b61012081815250506200018b6007826200031b60201b62000eb41790919060201c565b6101408181525050818051906020012060e08181525050808051906020012061010081815250504660a08181525050620001ca6200037860201b60201c565b608081815250503073ffffffffffffffffffffffffffffffffffffffff1660c08173ffffffffffffffffffffffffffffffffffffffff168152505050505062000247336200021d620003d560201b60201c565b600a6200022b919062000b56565b6202abb16200023b919062000ba7565b620003de60201b60201c565b62000f51565b600033905090565b6000600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000602083511015620003415762000339836200054b60201b60201c565b905062000372565b826200035883620005b860201b62000ef81760201c565b6000019081620003699190620008df565b5060ff60001b90505b92915050565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f60e051610100514630604051602001620003ba95949392919062000c63565b60405160208183030381529060405280519060200120905090565b60006012905090565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362000450576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620004479062000d21565b60405180910390fd5b6200046460008383620005c260201b60201c565b806002600082825462000478919062000d43565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516200052b919062000d7e565b60405180910390a36200054760008383620005ef60201b60201c565b5050565b600080829050601f815111156200059b57826040517f305a27a900000000000000000000000000000000000000000000000000000000815260040162000592919062000e19565b60405180910390fd5b805181620005a99062000e6f565b60001c1760001b915050919050565b6000819050919050565b620005d2620005f460201b60201c565b620005ea8383836200064960201b62000f021760201c565b505050565b505050565b620006046200064e60201b60201c565b1562000647576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200063e9062000f2f565b60405180910390fd5b565b505050565b6000600560009054906101000a900460ff16905090565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680620006e757607f821691505b602082108103620006fd57620006fc6200069f565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620007677fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000728565b62000773868362000728565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b6000620007c0620007ba620007b4846200078b565b62000795565b6200078b565b9050919050565b6000819050919050565b620007dc836200079f565b620007f4620007eb82620007c7565b84845462000735565b825550505050565b600090565b6200080b620007fc565b62000818818484620007d1565b505050565b5b8181101562000840576200083460008262000801565b6001810190506200081e565b5050565b601f8211156200088f57620008598162000703565b620008648462000718565b8101602085101562000874578190505b6200088c620008838562000718565b8301826200081d565b50505b505050565b600082821c905092915050565b6000620008b46000198460080262000894565b1980831691505092915050565b6000620008cf8383620008a1565b9150826002028217905092915050565b620008ea8262000665565b67ffffffffffffffff81111562000906576200090562000670565b5b620009128254620006ce565b6200091f82828562000844565b600060209050601f83116001811462000957576000841562000942578287015190505b6200094e8582620008c1565b865550620009be565b601f198416620009678662000703565b60005b8281101562000991578489015182556001820191506020850194506020810190506200096a565b86831015620009b15784890151620009ad601f891682620008a1565b8355505b6001600288020188555050505b505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111562000a545780860481111562000a2c5762000a2b620009c6565b5b600185161562000a3c5780820291505b808102905062000a4c85620009f5565b945062000a0c565b94509492505050565b60008262000a6f576001905062000b42565b8162000a7f576000905062000b42565b816001811462000a98576002811462000aa35762000ad9565b600191505062000b42565b60ff84111562000ab85762000ab7620009c6565b5b8360020a91508482111562000ad25762000ad1620009c6565b5b5062000b42565b5060208310610133831016604e8410600b841016171562000b135782820a90508381111562000b0d5762000b0c620009c6565b5b62000b42565b62000b22848484600162000a02565b9250905081840481111562000b3c5762000b3b620009c6565b5b81810290505b9392505050565b600060ff82169050919050565b600062000b63826200078b565b915062000b708362000b49565b925062000b9f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000a5d565b905092915050565b600062000bb4826200078b565b915062000bc1836200078b565b925082820262000bd1816200078b565b9150828204841483151762000beb5762000bea620009c6565b5b5092915050565b6000819050919050565b62000c078162000bf2565b82525050565b62000c18816200078b565b82525050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000c4b8262000c1e565b9050919050565b62000c5d8162000c3e565b82525050565b600060a08201905062000c7a600083018862000bfc565b62000c89602083018762000bfc565b62000c98604083018662000bfc565b62000ca7606083018562000c0d565b62000cb6608083018462000c52565b9695505050505050565b600082825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b600062000d09601f8362000cc0565b915062000d168262000cd1565b602082019050919050565b6000602082019050818103600083015262000d3c8162000cfa565b9050919050565b600062000d50826200078b565b915062000d5d836200078b565b925082820190508082111562000d785762000d77620009c6565b5b92915050565b600060208201905062000d95600083018462000c0d565b92915050565b60005b8381101562000dbb57808201518184015260208101905062000d9e565b60008484015250505050565b6000601f19601f8301169050919050565b600062000de58262000665565b62000df1818562000cc0565b935062000e0381856020860162000d9b565b62000e0e8162000dc7565b840191505092915050565b6000602082019050818103600083015262000e35818462000dd8565b905092915050565b600081519050919050565b6000819050602082019050919050565b600062000e66825162000bf2565b80915050919050565b600062000e7c8262000e3d565b8262000e888462000e48565b905062000e958162000e58565b9250602082101562000ed85762000ed37fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8360200360080262000728565b831692505b5050919050565b7f5061757361626c653a2070617573656400000000000000000000000000000000600082015250565b600062000f1760108362000cc0565b915062000f248262000edf565b602082019050919050565b6000602082019050818103600083015262000f4a8162000f08565b9050919050565b60805160a05160c05160e0516101005161012051610140516138b862000fac60003960006109d5015260006109a101526000611bf701526000611bd6015260006113de015260006114340152600061145d01526138b86000f3fe608060405234801561001057600080fd5b50600436106101735760003560e01c806370a08231116100de57806395d89b4111610097578063d505accf11610071578063d505accf14610458578063d9d98ce414610474578063dd62ed3e146104a4578063f2fde38b146104d457610173565b806395d89b41146103da578063a457c2d7146103f8578063a9059cbb1461042857610173565b806370a0823114610324578063715018a6146103545780637ecebe001461035e5780638456cb591461038e57806384b0196e146103985780638da5cb5b146103bc57610173565b8063395093511161013057806339509351146102505780633f4ba83a1461028057806340c10f191461028a5780635c975abb146102a65780635cffe9de146102c4578063613255ab146102f457610173565b806306fdde0314610178578063095ea7b31461019657806318160ddd146101c657806323b872dd146101e4578063313ce567146102145780633644e51514610232575b600080fd5b6101806104f0565b60405161018d91906120cd565b60405180910390f35b6101b060048036038101906101ab919061218d565b610582565b6040516101bd91906121e8565b60405180910390f35b6101ce6105a5565b6040516101db9190612212565b60405180910390f35b6101fe60048036038101906101f9919061222d565b6105af565b60405161020b91906121e8565b60405180910390f35b61021c6105de565b604051610229919061229c565b60405180910390f35b61023a6105e7565b60405161024791906122d0565b60405180910390f35b61026a6004803603810190610265919061218d565b6105f6565b60405161027791906121e8565b60405180910390f35b61028861062d565b005b6102a4600480360381019061029f919061218d565b61063f565b005b6102ae610655565b6040516102bb91906121e8565b60405180910390f35b6102de60048036038101906102d9919061238e565b61066c565b6040516102eb91906121e8565b60405180910390f35b61030e60048036038101906103099190612416565b610859565b60405161031b9190612212565b60405180910390f35b61033e60048036038101906103399190612416565b6108d0565b60405161034b9190612212565b60405180910390f35b61035c610918565b005b61037860048036038101906103739190612416565b61092c565b6040516103859190612212565b60405180910390f35b61039661097c565b005b6103a061098e565b6040516103b3979695949392919061254b565b60405180910390f35b6103c4610a90565b6040516103d191906125cf565b60405180910390f35b6103e2610aba565b6040516103ef91906120cd565b60405180910390f35b610412600480360381019061040d919061218d565b610b4c565b60405161041f91906121e8565b60405180910390f35b610442600480360381019061043d919061218d565b610bc3565b60405161044f91906121e8565b60405180910390f35b610472600480360381019061046d9190612642565b610be6565b005b61048e6004803603810190610489919061218d565b610d28565b60405161049b9190612212565b60405180910390f35b6104be60048036038101906104b991906126e4565b610daa565b6040516104cb9190612212565b60405180910390f35b6104ee60048036038101906104e99190612416565b610e31565b005b6060600380546104ff90612753565b80601f016020809104026020016040519081016040528092919081815260200182805461052b90612753565b80156105785780601f1061054d57610100808354040283529160200191610578565b820191906000526020600020905b81548152906001019060200180831161055b57829003601f168201915b5050505050905090565b60008061058d610f07565b905061059a818585610f0f565b600191505092915050565b6000600254905090565b6000806105ba610f07565b90506105c78582856110d8565b6105d2858585611164565b60019150509392505050565b60006012905090565b60006105f16113da565b905090565b600080610601610f07565b90506106228185856106138589610daa565b61061d91906127b3565b610f0f565b600191505092915050565b610635611491565b61063d61150f565b565b610647611491565b6106518282611572565b5050565b6000600560009054906101000a900460ff16905090565b600061067785610859565b8411156106b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106b090612859565b60405180910390fd5b60006106c58686610d28565b90506106d18786611572565b7f439148f0bbc682ca079e46d6e2c2f0c1e3b820f1a291b069d8882abf8cf18dd98773ffffffffffffffffffffffffffffffffffffffff166323e30c8b338989868a8a6040518763ffffffff1660e01b8152600401610735969594939291906128c6565b6020604051808303816000875af1158015610754573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107789190612937565b146107b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107af906129d6565b60405180910390fd5b60006107c26116c8565b90506107da883084896107d591906127b3565b6110d8565b60008214806108155750600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b156108345761082f88838861082a91906127b3565b6116cd565b61084a565b61083e88876116cd565b610849888284611164565b5b60019250505095945050505050565b60003073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16146108955760006108c9565b61089d6105a5565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6108c891906129f6565b5b9050919050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610920611491565b61092a600061189a565b565b6000610975600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020611960565b9050919050565b610984611491565b61098c61196e565b565b6000606080600080600060606109ce60067f00000000000000000000000000000000000000000000000000000000000000006119d190919063ffffffff16565b610a0260077f00000000000000000000000000000000000000000000000000000000000000006119d190919063ffffffff16565b46306000801b600067ffffffffffffffff811115610a2357610a22612a2a565b5b604051908082528060200260200182016040528015610a515781602001602082028036833780820191505090505b507f0f00000000000000000000000000000000000000000000000000000000000000959493929190965096509650965096509650965090919293949596565b6000600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060048054610ac990612753565b80601f0160208091040260200160405190810160405280929190818152602001828054610af590612753565b8015610b425780601f10610b1757610100808354040283529160200191610b42565b820191906000526020600020905b815481529060010190602001808311610b2557829003601f168201915b5050505050905090565b600080610b57610f07565b90506000610b658286610daa565b905083811015610baa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ba190612acb565b60405180910390fd5b610bb78286868403610f0f565b60019250505092915050565b600080610bce610f07565b9050610bdb818585611164565b600191505092915050565b83421115610c29576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c2090612b37565b60405180910390fd5b60007f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9888888610c588c611a81565b89604051602001610c6e96959493929190612b57565b6040516020818303038152906040528051906020012090506000610c9182611adf565b90506000610ca182878787611af9565b90508973ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610d11576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d0890612c04565b60405180910390fd5b610d1c8a8a8a610f0f565b50505050505050505050565b60003073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614610d98576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d8f90612c70565b60405180910390fd5b610da28383611b24565b905092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610e39611491565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610ea8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e9f90612d02565b60405180910390fd5b610eb18161189a565b50565b6000602083511015610ed057610ec983611b2c565b9050610ef2565b82610eda83610ef8565b6000019081610ee99190612ece565b5060ff60001b90505b92915050565b6000819050919050565b505050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610f7e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f7590613012565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610fed576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fe4906130a4565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516110cb9190612212565b60405180910390a3505050565b60006110e48484610daa565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff811461115e5781811015611150576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161114790613110565b60405180910390fd5b61115d8484848403610f0f565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036111d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111ca906131a2565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611242576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161123990613234565b60405180910390fd5b61124d838383611b94565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156112d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112ca906132c6565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516113c19190612212565b60405180910390a36113d4848484611bac565b50505050565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff1614801561145657507f000000000000000000000000000000000000000000000000000000000000000046145b15611483577f0000000000000000000000000000000000000000000000000000000000000000905061148e565b61148b611bb1565b90505b90565b611499610f07565b73ffffffffffffffffffffffffffffffffffffffff166114b7610a90565b73ffffffffffffffffffffffffffffffffffffffff161461150d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161150490613332565b60405180910390fd5b565b611517611c47565b6000600560006101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa61155b610f07565b60405161156891906125cf565b60405180910390a1565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036115e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115d89061339e565b60405180910390fd5b6115ed60008383611b94565b80600260008282546115ff91906127b3565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516116b09190612212565b60405180910390a36116c460008383611bac565b5050565b600090565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361173c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161173390613430565b60405180910390fd5b61174882600083611b94565b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156117ce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117c5906134c2565b60405180910390fd5b8181036000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600260008282540392505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516118819190612212565b60405180910390a361189583600084611bac565b505050565b6000600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600081600001549050919050565b611976611c90565b6001600560006101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586119ba610f07565b6040516119c791906125cf565b60405180910390a1565b606060ff60001b83146119ee576119e783611cda565b9050611a7b565b8180546119fa90612753565b80601f0160208091040260200160405190810160405280929190818152602001828054611a2690612753565b8015611a735780601f10611a4857610100808354040283529160200191611a73565b820191906000526020600020905b815481529060010190602001808311611a5657829003601f168201915b505050505090505b92915050565b600080600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050611ace81611960565b9150611ad981611d4e565b50919050565b6000611af2611aec6113da565b83611d64565b9050919050565b6000806000611b0a87878787611da5565b91509150611b1781611e87565b8192505050949350505050565b600092915050565b600080829050601f81511115611b7957826040517f305a27a9000000000000000000000000000000000000000000000000000000008152600401611b7091906120cd565b60405180910390fd5b805181611b8590613512565b60001c1760001b915050919050565b611b9c611c90565b611ba7838383610f02565b505050565b505050565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000004630604051602001611c2c959493929190613579565b60405160208183030381529060405280519060200120905090565b611c4f610655565b611c8e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c8590613618565b60405180910390fd5b565b611c98610655565b15611cd8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ccf90613684565b60405180910390fd5b565b60606000611ce783611fed565b90506000602067ffffffffffffffff811115611d0657611d05612a2a565b5b6040519080825280601f01601f191660200182016040528015611d385781602001600182028036833780820191505090505b5090508181528360208201528092505050919050565b6001816000016000828254019250508190555050565b60006040517f190100000000000000000000000000000000000000000000000000000000000081528360028201528260228201526042812091505092915050565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08360001c1115611de0576000600391509150611e7e565b600060018787878760405160008152602001604052604051611e0594939291906136a4565b6020604051602081039080840390855afa158015611e27573d6000803e3d6000fd5b505050602060405103519050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611e7557600060019250925050611e7e565b80600092509250505b94509492505050565b60006004811115611e9b57611e9a6136e9565b5b816004811115611eae57611ead6136e9565b5b0315611fea5760016004811115611ec857611ec76136e9565b5b816004811115611edb57611eda6136e9565b5b03611f1b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f1290613764565b60405180910390fd5b60026004811115611f2f57611f2e6136e9565b5b816004811115611f4257611f416136e9565b5b03611f82576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f79906137d0565b60405180910390fd5b60036004811115611f9657611f956136e9565b5b816004811115611fa957611fa86136e9565b5b03611fe9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fe090613862565b60405180910390fd5b5b50565b60008060ff8360001c169050601f811115612034576040517fb3512b0c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80915050919050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561207757808201518184015260208101905061205c565b60008484015250505050565b6000601f19601f8301169050919050565b600061209f8261203d565b6120a98185612048565b93506120b9818560208601612059565b6120c281612083565b840191505092915050565b600060208201905081810360008301526120e78184612094565b905092915050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612124826120f9565b9050919050565b61213481612119565b811461213f57600080fd5b50565b6000813590506121518161212b565b92915050565b6000819050919050565b61216a81612157565b811461217557600080fd5b50565b60008135905061218781612161565b92915050565b600080604083850312156121a4576121a36120ef565b5b60006121b285828601612142565b92505060206121c385828601612178565b9150509250929050565b60008115159050919050565b6121e2816121cd565b82525050565b60006020820190506121fd60008301846121d9565b92915050565b61220c81612157565b82525050565b60006020820190506122276000830184612203565b92915050565b600080600060608486031215612246576122456120ef565b5b600061225486828701612142565b935050602061226586828701612142565b925050604061227686828701612178565b9150509250925092565b600060ff82169050919050565b61229681612280565b82525050565b60006020820190506122b1600083018461228d565b92915050565b6000819050919050565b6122ca816122b7565b82525050565b60006020820190506122e560008301846122c1565b92915050565b60006122f682612119565b9050919050565b612306816122eb565b811461231157600080fd5b50565b600081359050612323816122fd565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f84011261234e5761234d612329565b5b8235905067ffffffffffffffff81111561236b5761236a61232e565b5b60208301915083600182028301111561238757612386612333565b5b9250929050565b6000806000806000608086880312156123aa576123a96120ef565b5b60006123b888828901612314565b95505060206123c988828901612142565b94505060406123da88828901612178565b935050606086013567ffffffffffffffff8111156123fb576123fa6120f4565b5b61240788828901612338565b92509250509295509295909350565b60006020828403121561242c5761242b6120ef565b5b600061243a84828501612142565b91505092915050565b60007fff0000000000000000000000000000000000000000000000000000000000000082169050919050565b61247881612443565b82525050565b61248781612119565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6124c281612157565b82525050565b60006124d483836124b9565b60208301905092915050565b6000602082019050919050565b60006124f88261248d565b6125028185612498565b935061250d836124a9565b8060005b8381101561253e57815161252588826124c8565b9750612530836124e0565b925050600181019050612511565b5085935050505092915050565b600060e082019050612560600083018a61246f565b81810360208301526125728189612094565b905081810360408301526125868188612094565b90506125956060830187612203565b6125a2608083018661247e565b6125af60a08301856122c1565b81810360c08301526125c181846124ed565b905098975050505050505050565b60006020820190506125e4600083018461247e565b92915050565b6125f381612280565b81146125fe57600080fd5b50565b600081359050612610816125ea565b92915050565b61261f816122b7565b811461262a57600080fd5b50565b60008135905061263c81612616565b92915050565b600080600080600080600060e0888a031215612661576126606120ef565b5b600061266f8a828b01612142565b97505060206126808a828b01612142565b96505060406126918a828b01612178565b95505060606126a28a828b01612178565b94505060806126b38a828b01612601565b93505060a06126c48a828b0161262d565b92505060c06126d58a828b0161262d565b91505092959891949750929550565b600080604083850312156126fb576126fa6120ef565b5b600061270985828601612142565b925050602061271a85828601612142565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061276b57607f821691505b60208210810361277e5761277d612724565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006127be82612157565b91506127c983612157565b92508282019050808211156127e1576127e0612784565b5b92915050565b7f4552433230466c6173684d696e743a20616d6f756e742065786365656473206d60008201527f6178466c6173684c6f616e000000000000000000000000000000000000000000602082015250565b6000612843602b83612048565b915061284e826127e7565b604082019050919050565b6000602082019050818103600083015261287281612836565b9050919050565b600082825260208201905092915050565b82818337600083830152505050565b60006128a58385612879565b93506128b283858461288a565b6128bb83612083565b840190509392505050565b600060a0820190506128db600083018961247e565b6128e8602083018861247e565b6128f56040830187612203565b6129026060830186612203565b8181036080830152612915818486612899565b9050979650505050505050565b60008151905061293181612616565b92915050565b60006020828403121561294d5761294c6120ef565b5b600061295b84828501612922565b91505092915050565b7f4552433230466c6173684d696e743a20696e76616c69642072657475726e207660008201527f616c756500000000000000000000000000000000000000000000000000000000602082015250565b60006129c0602483612048565b91506129cb82612964565b604082019050919050565b600060208201905081810360008301526129ef816129b3565b9050919050565b6000612a0182612157565b9150612a0c83612157565b9250828203905081811115612a2457612a23612784565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000612ab5602583612048565b9150612ac082612a59565b604082019050919050565b60006020820190508181036000830152612ae481612aa8565b9050919050565b7f45524332305065726d69743a206578706972656420646561646c696e65000000600082015250565b6000612b21601d83612048565b9150612b2c82612aeb565b602082019050919050565b60006020820190508181036000830152612b5081612b14565b9050919050565b600060c082019050612b6c60008301896122c1565b612b79602083018861247e565b612b86604083018761247e565b612b936060830186612203565b612ba06080830185612203565b612bad60a0830184612203565b979650505050505050565b7f45524332305065726d69743a20696e76616c6964207369676e61747572650000600082015250565b6000612bee601e83612048565b9150612bf982612bb8565b602082019050919050565b60006020820190508181036000830152612c1d81612be1565b9050919050565b7f4552433230466c6173684d696e743a2077726f6e6720746f6b656e0000000000600082015250565b6000612c5a601b83612048565b9150612c6582612c24565b602082019050919050565b60006020820190508181036000830152612c8981612c4d565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000612cec602683612048565b9150612cf782612c90565b604082019050919050565b60006020820190508181036000830152612d1b81612cdf565b9050919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302612d847fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82612d47565b612d8e8683612d47565b95508019841693508086168417925050509392505050565b6000819050919050565b6000612dcb612dc6612dc184612157565b612da6565b612157565b9050919050565b6000819050919050565b612de583612db0565b612df9612df182612dd2565b848454612d54565b825550505050565b600090565b612e0e612e01565b612e19818484612ddc565b505050565b5b81811015612e3d57612e32600082612e06565b600181019050612e1f565b5050565b601f821115612e8257612e5381612d22565b612e5c84612d37565b81016020851015612e6b578190505b612e7f612e7785612d37565b830182612e1e565b50505b505050565b600082821c905092915050565b6000612ea560001984600802612e87565b1980831691505092915050565b6000612ebe8383612e94565b9150826002028217905092915050565b612ed78261203d565b67ffffffffffffffff811115612ef057612eef612a2a565b5b612efa8254612753565b612f05828285612e41565b600060209050601f831160018114612f385760008415612f26578287015190505b612f308582612eb2565b865550612f98565b601f198416612f4686612d22565b60005b82811015612f6e57848901518255600182019150602085019450602081019050612f49565b86831015612f8b5784890151612f87601f891682612e94565b8355505b6001600288020188555050505b505050505050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612ffc602483612048565b915061300782612fa0565b604082019050919050565b6000602082019050818103600083015261302b81612fef565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600061308e602283612048565b915061309982613032565b604082019050919050565b600060208201905081810360008301526130bd81613081565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b60006130fa601d83612048565b9150613105826130c4565b602082019050919050565b60006020820190508181036000830152613129816130ed565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061318c602583612048565b915061319782613130565b604082019050919050565b600060208201905081810360008301526131bb8161317f565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b600061321e602383612048565b9150613229826131c2565b604082019050919050565b6000602082019050818103600083015261324d81613211565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b60006132b0602683612048565b91506132bb82613254565b604082019050919050565b600060208201905081810360008301526132df816132a3565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061331c602083612048565b9150613327826132e6565b602082019050919050565b6000602082019050818103600083015261334b8161330f565b9050919050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b6000613388601f83612048565b915061339382613352565b602082019050919050565b600060208201905081810360008301526133b78161337b565b9050919050565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b600061341a602183612048565b9150613425826133be565b604082019050919050565b600060208201905081810360008301526134498161340d565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b60006134ac602283612048565b91506134b782613450565b604082019050919050565b600060208201905081810360008301526134db8161349f565b9050919050565b600081519050919050565b6000819050602082019050919050565b600061350982516122b7565b80915050919050565b600061351d826134e2565b82613527846134ed565b9050613532816134fd565b925060208210156135725761356d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff83602003600802612d47565b831692505b5050919050565b600060a08201905061358e60008301886122c1565b61359b60208301876122c1565b6135a860408301866122c1565b6135b56060830185612203565b6135c2608083018461247e565b9695505050505050565b7f5061757361626c653a206e6f7420706175736564000000000000000000000000600082015250565b6000613602601483612048565b915061360d826135cc565b602082019050919050565b60006020820190508181036000830152613631816135f5565b9050919050565b7f5061757361626c653a2070617573656400000000000000000000000000000000600082015250565b600061366e601083612048565b915061367982613638565b602082019050919050565b6000602082019050818103600083015261369d81613661565b9050919050565b60006080820190506136b960008301876122c1565b6136c6602083018661228d565b6136d360408301856122c1565b6136e060608301846122c1565b95945050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b7f45434453413a20696e76616c6964207369676e61747572650000000000000000600082015250565b600061374e601883612048565b915061375982613718565b602082019050919050565b6000602082019050818103600083015261377d81613741565b9050919050565b7f45434453413a20696e76616c6964207369676e6174757265206c656e67746800600082015250565b60006137ba601f83612048565b91506137c582613784565b602082019050919050565b600060208201905081810360008301526137e9816137ad565b9050919050565b7f45434453413a20696e76616c6964207369676e6174757265202773272076616c60008201527f7565000000000000000000000000000000000000000000000000000000000000602082015250565b600061384c602283612048565b9150613857826137f0565b604082019050919050565b6000602082019050818103600083015261387b8161383f565b905091905056fea2646970667358221220137244950aee7173d81d2d2f8f2d598beb4fc04eb7386618ae783ec254612bf664736f6c63430008120033

Deployed bytecode

0x608060405234801561001057600080fd5b50600436106101735760003560e01c806370a08231116100de57806395d89b4111610097578063d505accf11610071578063d505accf14610458578063d9d98ce414610474578063dd62ed3e146104a4578063f2fde38b146104d457610173565b806395d89b41146103da578063a457c2d7146103f8578063a9059cbb1461042857610173565b806370a0823114610324578063715018a6146103545780637ecebe001461035e5780638456cb591461038e57806384b0196e146103985780638da5cb5b146103bc57610173565b8063395093511161013057806339509351146102505780633f4ba83a1461028057806340c10f191461028a5780635c975abb146102a65780635cffe9de146102c4578063613255ab146102f457610173565b806306fdde0314610178578063095ea7b31461019657806318160ddd146101c657806323b872dd146101e4578063313ce567146102145780633644e51514610232575b600080fd5b6101806104f0565b60405161018d91906120cd565b60405180910390f35b6101b060048036038101906101ab919061218d565b610582565b6040516101bd91906121e8565b60405180910390f35b6101ce6105a5565b6040516101db9190612212565b60405180910390f35b6101fe60048036038101906101f9919061222d565b6105af565b60405161020b91906121e8565b60405180910390f35b61021c6105de565b604051610229919061229c565b60405180910390f35b61023a6105e7565b60405161024791906122d0565b60405180910390f35b61026a6004803603810190610265919061218d565b6105f6565b60405161027791906121e8565b60405180910390f35b61028861062d565b005b6102a4600480360381019061029f919061218d565b61063f565b005b6102ae610655565b6040516102bb91906121e8565b60405180910390f35b6102de60048036038101906102d9919061238e565b61066c565b6040516102eb91906121e8565b60405180910390f35b61030e60048036038101906103099190612416565b610859565b60405161031b9190612212565b60405180910390f35b61033e60048036038101906103399190612416565b6108d0565b60405161034b9190612212565b60405180910390f35b61035c610918565b005b61037860048036038101906103739190612416565b61092c565b6040516103859190612212565b60405180910390f35b61039661097c565b005b6103a061098e565b6040516103b3979695949392919061254b565b60405180910390f35b6103c4610a90565b6040516103d191906125cf565b60405180910390f35b6103e2610aba565b6040516103ef91906120cd565b60405180910390f35b610412600480360381019061040d919061218d565b610b4c565b60405161041f91906121e8565b60405180910390f35b610442600480360381019061043d919061218d565b610bc3565b60405161044f91906121e8565b60405180910390f35b610472600480360381019061046d9190612642565b610be6565b005b61048e6004803603810190610489919061218d565b610d28565b60405161049b9190612212565b60405180910390f35b6104be60048036038101906104b991906126e4565b610daa565b6040516104cb9190612212565b60405180910390f35b6104ee60048036038101906104e99190612416565b610e31565b005b6060600380546104ff90612753565b80601f016020809104026020016040519081016040528092919081815260200182805461052b90612753565b80156105785780601f1061054d57610100808354040283529160200191610578565b820191906000526020600020905b81548152906001019060200180831161055b57829003601f168201915b5050505050905090565b60008061058d610f07565b905061059a818585610f0f565b600191505092915050565b6000600254905090565b6000806105ba610f07565b90506105c78582856110d8565b6105d2858585611164565b60019150509392505050565b60006012905090565b60006105f16113da565b905090565b600080610601610f07565b90506106228185856106138589610daa565b61061d91906127b3565b610f0f565b600191505092915050565b610635611491565b61063d61150f565b565b610647611491565b6106518282611572565b5050565b6000600560009054906101000a900460ff16905090565b600061067785610859565b8411156106b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106b090612859565b60405180910390fd5b60006106c58686610d28565b90506106d18786611572565b7f439148f0bbc682ca079e46d6e2c2f0c1e3b820f1a291b069d8882abf8cf18dd98773ffffffffffffffffffffffffffffffffffffffff166323e30c8b338989868a8a6040518763ffffffff1660e01b8152600401610735969594939291906128c6565b6020604051808303816000875af1158015610754573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107789190612937565b146107b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107af906129d6565b60405180910390fd5b60006107c26116c8565b90506107da883084896107d591906127b3565b6110d8565b60008214806108155750600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b156108345761082f88838861082a91906127b3565b6116cd565b61084a565b61083e88876116cd565b610849888284611164565b5b60019250505095945050505050565b60003073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16146108955760006108c9565b61089d6105a5565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6108c891906129f6565b5b9050919050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610920611491565b61092a600061189a565b565b6000610975600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020611960565b9050919050565b610984611491565b61098c61196e565b565b6000606080600080600060606109ce60067f68617063697500000000000000000000000000000000000000000000000000066119d190919063ffffffff16565b610a0260077f31000000000000000000000000000000000000000000000000000000000000016119d190919063ffffffff16565b46306000801b600067ffffffffffffffff811115610a2357610a22612a2a565b5b604051908082528060200260200182016040528015610a515781602001602082028036833780820191505090505b507f0f00000000000000000000000000000000000000000000000000000000000000959493929190965096509650965096509650965090919293949596565b6000600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060048054610ac990612753565b80601f0160208091040260200160405190810160405280929190818152602001828054610af590612753565b8015610b425780601f10610b1757610100808354040283529160200191610b42565b820191906000526020600020905b815481529060010190602001808311610b2557829003601f168201915b5050505050905090565b600080610b57610f07565b90506000610b658286610daa565b905083811015610baa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ba190612acb565b60405180910390fd5b610bb78286868403610f0f565b60019250505092915050565b600080610bce610f07565b9050610bdb818585611164565b600191505092915050565b83421115610c29576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c2090612b37565b60405180910390fd5b60007f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9888888610c588c611a81565b89604051602001610c6e96959493929190612b57565b6040516020818303038152906040528051906020012090506000610c9182611adf565b90506000610ca182878787611af9565b90508973ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610d11576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d0890612c04565b60405180910390fd5b610d1c8a8a8a610f0f565b50505050505050505050565b60003073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614610d98576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d8f90612c70565b60405180910390fd5b610da28383611b24565b905092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610e39611491565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610ea8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e9f90612d02565b60405180910390fd5b610eb18161189a565b50565b6000602083511015610ed057610ec983611b2c565b9050610ef2565b82610eda83610ef8565b6000019081610ee99190612ece565b5060ff60001b90505b92915050565b6000819050919050565b505050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610f7e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f7590613012565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610fed576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fe4906130a4565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516110cb9190612212565b60405180910390a3505050565b60006110e48484610daa565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff811461115e5781811015611150576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161114790613110565b60405180910390fd5b61115d8484848403610f0f565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036111d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111ca906131a2565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611242576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161123990613234565b60405180910390fd5b61124d838383611b94565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156112d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112ca906132c6565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516113c19190612212565b60405180910390a36113d4848484611bac565b50505050565b60007f00000000000000000000000090991be10be74b88b0a106dcf13a4484e07abb3c73ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff1614801561145657507f0000000000000000000000000000000000000000000000000000000000000a4146145b15611483577f892d8aec8e2c1eab5d9b2ca2aa09c1923d76c3f63293d196f44d5aeda64b416f905061148e565b61148b611bb1565b90505b90565b611499610f07565b73ffffffffffffffffffffffffffffffffffffffff166114b7610a90565b73ffffffffffffffffffffffffffffffffffffffff161461150d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161150490613332565b60405180910390fd5b565b611517611c47565b6000600560006101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa61155b610f07565b60405161156891906125cf565b60405180910390a1565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036115e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115d89061339e565b60405180910390fd5b6115ed60008383611b94565b80600260008282546115ff91906127b3565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516116b09190612212565b60405180910390a36116c460008383611bac565b5050565b600090565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361173c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161173390613430565b60405180910390fd5b61174882600083611b94565b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156117ce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117c5906134c2565b60405180910390fd5b8181036000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600260008282540392505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516118819190612212565b60405180910390a361189583600084611bac565b505050565b6000600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600081600001549050919050565b611976611c90565b6001600560006101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586119ba610f07565b6040516119c791906125cf565b60405180910390a1565b606060ff60001b83146119ee576119e783611cda565b9050611a7b565b8180546119fa90612753565b80601f0160208091040260200160405190810160405280929190818152602001828054611a2690612753565b8015611a735780601f10611a4857610100808354040283529160200191611a73565b820191906000526020600020905b815481529060010190602001808311611a5657829003601f168201915b505050505090505b92915050565b600080600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050611ace81611960565b9150611ad981611d4e565b50919050565b6000611af2611aec6113da565b83611d64565b9050919050565b6000806000611b0a87878787611da5565b91509150611b1781611e87565b8192505050949350505050565b600092915050565b600080829050601f81511115611b7957826040517f305a27a9000000000000000000000000000000000000000000000000000000008152600401611b7091906120cd565b60405180910390fd5b805181611b8590613512565b60001c1760001b915050919050565b611b9c611c90565b611ba7838383610f02565b505050565b505050565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f7f26b6d975549fd5d1abe485a4e2336bd8109e04254e8362d31dc81416a35aa3b17fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc64630604051602001611c2c959493929190613579565b60405160208183030381529060405280519060200120905090565b611c4f610655565b611c8e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c8590613618565b60405180910390fd5b565b611c98610655565b15611cd8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ccf90613684565b60405180910390fd5b565b60606000611ce783611fed565b90506000602067ffffffffffffffff811115611d0657611d05612a2a565b5b6040519080825280601f01601f191660200182016040528015611d385781602001600182028036833780820191505090505b5090508181528360208201528092505050919050565b6001816000016000828254019250508190555050565b60006040517f190100000000000000000000000000000000000000000000000000000000000081528360028201528260228201526042812091505092915050565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08360001c1115611de0576000600391509150611e7e565b600060018787878760405160008152602001604052604051611e0594939291906136a4565b6020604051602081039080840390855afa158015611e27573d6000803e3d6000fd5b505050602060405103519050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611e7557600060019250925050611e7e565b80600092509250505b94509492505050565b60006004811115611e9b57611e9a6136e9565b5b816004811115611eae57611ead6136e9565b5b0315611fea5760016004811115611ec857611ec76136e9565b5b816004811115611edb57611eda6136e9565b5b03611f1b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f1290613764565b60405180910390fd5b60026004811115611f2f57611f2e6136e9565b5b816004811115611f4257611f416136e9565b5b03611f82576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f79906137d0565b60405180910390fd5b60036004811115611f9657611f956136e9565b5b816004811115611fa957611fa86136e9565b5b03611fe9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fe090613862565b60405180910390fd5b5b50565b60008060ff8360001c169050601f811115612034576040517fb3512b0c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80915050919050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561207757808201518184015260208101905061205c565b60008484015250505050565b6000601f19601f8301169050919050565b600061209f8261203d565b6120a98185612048565b93506120b9818560208601612059565b6120c281612083565b840191505092915050565b600060208201905081810360008301526120e78184612094565b905092915050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612124826120f9565b9050919050565b61213481612119565b811461213f57600080fd5b50565b6000813590506121518161212b565b92915050565b6000819050919050565b61216a81612157565b811461217557600080fd5b50565b60008135905061218781612161565b92915050565b600080604083850312156121a4576121a36120ef565b5b60006121b285828601612142565b92505060206121c385828601612178565b9150509250929050565b60008115159050919050565b6121e2816121cd565b82525050565b60006020820190506121fd60008301846121d9565b92915050565b61220c81612157565b82525050565b60006020820190506122276000830184612203565b92915050565b600080600060608486031215612246576122456120ef565b5b600061225486828701612142565b935050602061226586828701612142565b925050604061227686828701612178565b9150509250925092565b600060ff82169050919050565b61229681612280565b82525050565b60006020820190506122b1600083018461228d565b92915050565b6000819050919050565b6122ca816122b7565b82525050565b60006020820190506122e560008301846122c1565b92915050565b60006122f682612119565b9050919050565b612306816122eb565b811461231157600080fd5b50565b600081359050612323816122fd565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f84011261234e5761234d612329565b5b8235905067ffffffffffffffff81111561236b5761236a61232e565b5b60208301915083600182028301111561238757612386612333565b5b9250929050565b6000806000806000608086880312156123aa576123a96120ef565b5b60006123b888828901612314565b95505060206123c988828901612142565b94505060406123da88828901612178565b935050606086013567ffffffffffffffff8111156123fb576123fa6120f4565b5b61240788828901612338565b92509250509295509295909350565b60006020828403121561242c5761242b6120ef565b5b600061243a84828501612142565b91505092915050565b60007fff0000000000000000000000000000000000000000000000000000000000000082169050919050565b61247881612443565b82525050565b61248781612119565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6124c281612157565b82525050565b60006124d483836124b9565b60208301905092915050565b6000602082019050919050565b60006124f88261248d565b6125028185612498565b935061250d836124a9565b8060005b8381101561253e57815161252588826124c8565b9750612530836124e0565b925050600181019050612511565b5085935050505092915050565b600060e082019050612560600083018a61246f565b81810360208301526125728189612094565b905081810360408301526125868188612094565b90506125956060830187612203565b6125a2608083018661247e565b6125af60a08301856122c1565b81810360c08301526125c181846124ed565b905098975050505050505050565b60006020820190506125e4600083018461247e565b92915050565b6125f381612280565b81146125fe57600080fd5b50565b600081359050612610816125ea565b92915050565b61261f816122b7565b811461262a57600080fd5b50565b60008135905061263c81612616565b92915050565b600080600080600080600060e0888a031215612661576126606120ef565b5b600061266f8a828b01612142565b97505060206126808a828b01612142565b96505060406126918a828b01612178565b95505060606126a28a828b01612178565b94505060806126b38a828b01612601565b93505060a06126c48a828b0161262d565b92505060c06126d58a828b0161262d565b91505092959891949750929550565b600080604083850312156126fb576126fa6120ef565b5b600061270985828601612142565b925050602061271a85828601612142565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061276b57607f821691505b60208210810361277e5761277d612724565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006127be82612157565b91506127c983612157565b92508282019050808211156127e1576127e0612784565b5b92915050565b7f4552433230466c6173684d696e743a20616d6f756e742065786365656473206d60008201527f6178466c6173684c6f616e000000000000000000000000000000000000000000602082015250565b6000612843602b83612048565b915061284e826127e7565b604082019050919050565b6000602082019050818103600083015261287281612836565b9050919050565b600082825260208201905092915050565b82818337600083830152505050565b60006128a58385612879565b93506128b283858461288a565b6128bb83612083565b840190509392505050565b600060a0820190506128db600083018961247e565b6128e8602083018861247e565b6128f56040830187612203565b6129026060830186612203565b8181036080830152612915818486612899565b9050979650505050505050565b60008151905061293181612616565b92915050565b60006020828403121561294d5761294c6120ef565b5b600061295b84828501612922565b91505092915050565b7f4552433230466c6173684d696e743a20696e76616c69642072657475726e207660008201527f616c756500000000000000000000000000000000000000000000000000000000602082015250565b60006129c0602483612048565b91506129cb82612964565b604082019050919050565b600060208201905081810360008301526129ef816129b3565b9050919050565b6000612a0182612157565b9150612a0c83612157565b9250828203905081811115612a2457612a23612784565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000612ab5602583612048565b9150612ac082612a59565b604082019050919050565b60006020820190508181036000830152612ae481612aa8565b9050919050565b7f45524332305065726d69743a206578706972656420646561646c696e65000000600082015250565b6000612b21601d83612048565b9150612b2c82612aeb565b602082019050919050565b60006020820190508181036000830152612b5081612b14565b9050919050565b600060c082019050612b6c60008301896122c1565b612b79602083018861247e565b612b86604083018761247e565b612b936060830186612203565b612ba06080830185612203565b612bad60a0830184612203565b979650505050505050565b7f45524332305065726d69743a20696e76616c6964207369676e61747572650000600082015250565b6000612bee601e83612048565b9150612bf982612bb8565b602082019050919050565b60006020820190508181036000830152612c1d81612be1565b9050919050565b7f4552433230466c6173684d696e743a2077726f6e6720746f6b656e0000000000600082015250565b6000612c5a601b83612048565b9150612c6582612c24565b602082019050919050565b60006020820190508181036000830152612c8981612c4d565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000612cec602683612048565b9150612cf782612c90565b604082019050919050565b60006020820190508181036000830152612d1b81612cdf565b9050919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302612d847fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82612d47565b612d8e8683612d47565b95508019841693508086168417925050509392505050565b6000819050919050565b6000612dcb612dc6612dc184612157565b612da6565b612157565b9050919050565b6000819050919050565b612de583612db0565b612df9612df182612dd2565b848454612d54565b825550505050565b600090565b612e0e612e01565b612e19818484612ddc565b505050565b5b81811015612e3d57612e32600082612e06565b600181019050612e1f565b5050565b601f821115612e8257612e5381612d22565b612e5c84612d37565b81016020851015612e6b578190505b612e7f612e7785612d37565b830182612e1e565b50505b505050565b600082821c905092915050565b6000612ea560001984600802612e87565b1980831691505092915050565b6000612ebe8383612e94565b9150826002028217905092915050565b612ed78261203d565b67ffffffffffffffff811115612ef057612eef612a2a565b5b612efa8254612753565b612f05828285612e41565b600060209050601f831160018114612f385760008415612f26578287015190505b612f308582612eb2565b865550612f98565b601f198416612f4686612d22565b60005b82811015612f6e57848901518255600182019150602085019450602081019050612f49565b86831015612f8b5784890151612f87601f891682612e94565b8355505b6001600288020188555050505b505050505050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612ffc602483612048565b915061300782612fa0565b604082019050919050565b6000602082019050818103600083015261302b81612fef565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600061308e602283612048565b915061309982613032565b604082019050919050565b600060208201905081810360008301526130bd81613081565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b60006130fa601d83612048565b9150613105826130c4565b602082019050919050565b60006020820190508181036000830152613129816130ed565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061318c602583612048565b915061319782613130565b604082019050919050565b600060208201905081810360008301526131bb8161317f565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b600061321e602383612048565b9150613229826131c2565b604082019050919050565b6000602082019050818103600083015261324d81613211565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b60006132b0602683612048565b91506132bb82613254565b604082019050919050565b600060208201905081810360008301526132df816132a3565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061331c602083612048565b9150613327826132e6565b602082019050919050565b6000602082019050818103600083015261334b8161330f565b9050919050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b6000613388601f83612048565b915061339382613352565b602082019050919050565b600060208201905081810360008301526133b78161337b565b9050919050565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b600061341a602183612048565b9150613425826133be565b604082019050919050565b600060208201905081810360008301526134498161340d565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b60006134ac602283612048565b91506134b782613450565b604082019050919050565b600060208201905081810360008301526134db8161349f565b9050919050565b600081519050919050565b6000819050602082019050919050565b600061350982516122b7565b80915050919050565b600061351d826134e2565b82613527846134ed565b9050613532816134fd565b925060208210156135725761356d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff83602003600802612d47565b831692505b5050919050565b600060a08201905061358e60008301886122c1565b61359b60208301876122c1565b6135a860408301866122c1565b6135b56060830185612203565b6135c2608083018461247e565b9695505050505050565b7f5061757361626c653a206e6f7420706175736564000000000000000000000000600082015250565b6000613602601483612048565b915061360d826135cc565b602082019050919050565b60006020820190508181036000830152613631816135f5565b9050919050565b7f5061757361626c653a2070617573656400000000000000000000000000000000600082015250565b600061366e601083612048565b915061367982613638565b602082019050919050565b6000602082019050818103600083015261369d81613661565b9050919050565b60006080820190506136b960008301876122c1565b6136c6602083018661228d565b6136d360408301856122c1565b6136e060608301846122c1565b95945050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b7f45434453413a20696e76616c6964207369676e61747572650000000000000000600082015250565b600061374e601883612048565b915061375982613718565b602082019050919050565b6000602082019050818103600083015261377d81613741565b9050919050565b7f45434453413a20696e76616c6964207369676e6174757265206c656e67746800600082015250565b60006137ba601f83612048565b91506137c582613784565b602082019050919050565b600060208201905081810360008301526137e9816137ad565b9050919050565b7f45434453413a20696e76616c6964207369676e6174757265202773272076616c60008201527f7565000000000000000000000000000000000000000000000000000000000000602082015250565b600061384c602283612048565b9150613857826137f0565b604082019050919050565b6000602082019050818103600083015261387b8161383f565b905091905056fea2646970667358221220137244950aee7173d81d2d2f8f2d598beb4fc04eb7386618ae783ec254612bf664736f6c63430008120033