[ { "inputs": [ { "internalType": "string", "name": "name", "type": "string" }, { "internalType": "string", "name": "symbol", "type": "string" }, { "internalType": "uint256", "name": "initialSupply", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [], "name": "AccessControlBadConfirmation", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "bytes32", "name": "neededRole", "type": "bytes32" } ], "name": "AccessControlUnauthorizedAccount", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "allowance", "type": "uint256" }, { "internalType": "uint256", "name": "needed", "type": "uint256" } ], "name": "ERC20InsufficientAllowance", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "uint256", "name": "balance", "type": "uint256" }, { "internalType": "uint256", "name": "needed", "type": "uint256" } ], "name": "ERC20InsufficientBalance", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "approver", "type": "address" } ], "name": "ERC20InvalidApprover", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "receiver", "type": "address" } ], "name": "ERC20InvalidReceiver", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "sender", "type": "address" } ], "name": "ERC20InvalidSender", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" } ], "name": "ERC20InvalidSpender", "type": "error" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "spender", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "Approval", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "indexed": true, "internalType": "bytes32", "name": "previousAdminRole", "type": "bytes32" }, { "indexed": true, "internalType": "bytes32", "name": "newAdminRole", "type": "bytes32" } ], "name": "RoleAdminChanged", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "indexed": true, "internalType": "address", "name": "account", "type": "address" }, { "indexed": true, "internalType": "address", "name": "sender", "type": "address" } ], "name": "RoleGranted", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "indexed": true, "internalType": "address", "name": "account", "type": "address" }, { "indexed": true, "internalType": "address", "name": "sender", "type": "address" } ], "name": "RoleRevoked", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "Transfer", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "from", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "burnToken", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "to", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "mintToken", "type": "event" }, { "inputs": [], "name": "BURNER_ROLE", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "DEFAULT_ADMIN_ROLE", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "MINTER_ROLE", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "address", "name": "spender", "type": "address" } ], "name": "allowance", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "approve", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "burn", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "decimals", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" } ], "name": "getRoleAdmin", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "account", "type": "address" } ], "name": "grantRole", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "account", "type": "address" } ], "name": "hasRole", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "mint", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "callerConfirmation", "type": "address" } ], "name": "renounceRole", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "account", "type": "address" } ], "name": "revokeRole", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes4", "name": "interfaceId", "type": "bytes4" } ], "name": "supportsInterface", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "transfer", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "transferFrom", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" } ]
608060405234801562000010575f80fd5b506040516200258938038062002589833981810160405281019062000036919062000695565b828281600390816200004991906200095a565b5080600490816200005b91906200095a565b5050506200009d3362000073620000bb60201b60201c565b60ff16600a62000084919062000bbb565b8362000091919062000c0b565b620000c360201b60201c565b620000b15f801b336200014d60201b60201c565b5050505062000d54565b5f6008905090565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362000136575f6040517fec442f050000000000000000000000000000000000000000000000000000000081526004016200012d919062000c98565b60405180910390fd5b620001495f83836200024960201b60201c565b5050565b5f6200016083836200046d60201b60201c565b6200023f57600160055f8581526020019081526020015f205f015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550620001db620004d160201b60201c565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a46001905062000243565b5f90505b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036200029d578060025f82825462000290919062000cb3565b925050819055506200036e565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490508181101562000329578381836040517fe450d38c000000000000000000000000000000000000000000000000000000008152600401620003209392919062000cfe565b60405180910390fd5b8181035f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603620003b7578060025f828254039250508190555062000401565b805f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405162000460919062000d39565b60405180910390a3505050565b5f60055f8481526020019081526020015f205f015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16905092915050565b5f33905090565b5f604051905090565b5f80fd5b5f80fd5b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6200053982620004f1565b810181811067ffffffffffffffff821117156200055b576200055a62000501565b5b80604052505050565b5f6200056f620004d8565b90506200057d82826200052e565b919050565b5f67ffffffffffffffff8211156200059f576200059e62000501565b5b620005aa82620004f1565b9050602081019050919050565b5f5b83811015620005d6578082015181840152602081019050620005b9565b5f8484015250505050565b5f620005f7620005f18462000582565b62000564565b905082815260208101848484011115620006165762000615620004ed565b5b62000623848285620005b7565b509392505050565b5f82601f830112620006425762000641620004e9565b5b815162000654848260208601620005e1565b91505092915050565b5f819050919050565b62000671816200065d565b81146200067c575f80fd5b50565b5f815190506200068f8162000666565b92915050565b5f805f60608486031215620006af57620006ae620004e1565b5b5f84015167ffffffffffffffff811115620006cf57620006ce620004e5565b5b620006dd868287016200062b565b935050602084015167ffffffffffffffff811115620007015762000700620004e5565b5b6200070f868287016200062b565b925050604062000722868287016200067f565b9150509250925092565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806200077b57607f821691505b60208210810362000791576200079062000736565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302620007f57fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620007b8565b620008018683620007b8565b95508019841693508086168417925050509392505050565b5f819050919050565b5f620008426200083c62000836846200065d565b62000819565b6200065d565b9050919050565b5f819050919050565b6200085d8362000822565b620008756200086c8262000849565b848454620007c4565b825550505050565b5f90565b6200088b6200087d565b6200089881848462000852565b505050565b5b81811015620008bf57620008b35f8262000881565b6001810190506200089e565b5050565b601f8211156200090e57620008d88162000797565b620008e384620007a9565b81016020851015620008f3578190505b6200090b6200090285620007a9565b8301826200089d565b50505b505050565b5f82821c905092915050565b5f620009305f198460080262000913565b1980831691505092915050565b5f6200094a83836200091f565b9150826002028217905092915050565b62000965826200072c565b67ffffffffffffffff81111562000981576200098062000501565b5b6200098d825462000763565b6200099a828285620008c3565b5f60209050601f831160018114620009d0575f8415620009bb578287015190505b620009c785826200093d565b86555062000a36565b601f198416620009e08662000797565b5f5b8281101562000a0957848901518255600182019150602085019450602081019050620009e2565b8683101562000a29578489015162000a25601f8916826200091f565b8355505b6001600288020188555050505b505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b600185111562000ac85780860481111562000aa05762000a9f62000a3e565b5b600185161562000ab05780820291505b808102905062000ac08562000a6b565b945062000a80565b94509492505050565b5f8262000ae2576001905062000bb4565b8162000af1575f905062000bb4565b816001811462000b0a576002811462000b155762000b4b565b600191505062000bb4565b60ff84111562000b2a5762000b2962000a3e565b5b8360020a91508482111562000b445762000b4362000a3e565b5b5062000bb4565b5060208310610133831016604e8410600b841016171562000b855782820a90508381111562000b7f5762000b7e62000a3e565b5b62000bb4565b62000b94848484600162000a77565b9250905081840481111562000bae5762000bad62000a3e565b5b81810290505b9392505050565b5f62000bc7826200065d565b915062000bd4836200065d565b925062000c037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000ad1565b905092915050565b5f62000c17826200065d565b915062000c24836200065d565b925082820262000c34816200065d565b9150828204841483151762000c4e5762000c4d62000a3e565b5b5092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f62000c808262000c55565b9050919050565b62000c928162000c74565b82525050565b5f60208201905062000cad5f83018462000c87565b92915050565b5f62000cbf826200065d565b915062000ccc836200065d565b925082820190508082111562000ce75762000ce662000a3e565b5b92915050565b62000cf8816200065d565b82525050565b5f60608201905062000d135f83018662000c87565b62000d22602083018562000ced565b62000d31604083018462000ced565b949350505050565b5f60208201905062000d4e5f83018462000ced565b92915050565b6118278062000d625f395ff3fe608060405234801561000f575f80fd5b506004361061012a575f3560e01c806340c10f19116100ab578063a217fddf1161006f578063a217fddf14610354578063a9059cbb14610372578063d5391393146103a2578063d547741f146103c0578063dd62ed3e146103dc5761012a565b806340c10f191461029e57806370a08231146102ba57806391d14854146102ea57806395d89b411461031a5780639dc29fac146103385761012a565b8063248a9ca3116100f2578063248a9ca3146101fa578063282c51f31461022a5780632f2ff15d14610248578063313ce5671461026457806336568abe146102825761012a565b806301ffc9a71461012e57806306fdde031461015e578063095ea7b31461017c57806318160ddd146101ac57806323b872dd146101ca575b5f80fd5b610148600480360381019061014391906112dd565b61040c565b6040516101559190611322565b60405180910390f35b610166610485565b60405161017391906113c5565b60405180910390f35b61019660048036038101906101919190611472565b610515565b6040516101a39190611322565b60405180910390f35b6101b4610537565b6040516101c191906114bf565b60405180910390f35b6101e460048036038101906101df91906114d8565b610540565b6040516101f19190611322565b60405180910390f35b610214600480360381019061020f919061155b565b61056e565b6040516102219190611595565b60405180910390f35b61023261058b565b60405161023f9190611595565b60405180910390f35b610262600480360381019061025d91906115ae565b6105af565b005b61026c6105d1565b6040516102799190611607565b60405180910390f35b61029c600480360381019061029791906115ae565b6105d9565b005b6102b860048036038101906102b39190611472565b610654565b005b6102d460048036038101906102cf9190611620565b6106c6565b6040516102e191906114bf565b60405180910390f35b61030460048036038101906102ff91906115ae565b61070b565b6040516103119190611322565b60405180910390f35b61032261076f565b60405161032f91906113c5565b60405180910390f35b610352600480360381019061034d9190611472565b6107ff565b005b61035c610871565b6040516103699190611595565b60405180910390f35b61038c60048036038101906103879190611472565b610877565b6040516103999190611322565b60405180910390f35b6103aa610899565b6040516103b79190611595565b60405180910390f35b6103da60048036038101906103d591906115ae565b6108bd565b005b6103f660048036038101906103f1919061164b565b6108df565b60405161040391906114bf565b60405180910390f35b5f7f7965db0b000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061047e575061047d82610961565b5b9050919050565b606060038054610494906116b6565b80601f01602080910402602001604051908101604052809291908181526020018280546104c0906116b6565b801561050b5780601f106104e25761010080835404028352916020019161050b565b820191905f5260205f20905b8154815290600101906020018083116104ee57829003601f168201915b5050505050905090565b5f8061051f6109ca565b905061052c8185856109d1565b600191505092915050565b5f600254905090565b5f8061054a6109ca565b90506105578582856109e3565b610562858585610a75565b60019150509392505050565b5f60055f8381526020019081526020015f20600101549050919050565b7f3c11d16cbaffd01df69ce1c404f6340ee057498f5f00246190ea54220576a84881565b6105b88261056e565b6105c181610b65565b6105cb8383610b79565b50505050565b5f6008905090565b6105e16109ca565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610645576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61064f8282610c63565b505050565b7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a661067e81610b65565b6106888383610d4d565b7f79c65068f81072733b15ab3cba61b23110793f90ab099d228a414b186333a81e83836040516106b99291906116f5565b60405180910390a1505050565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b5f60055f8481526020019081526020015f205f015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16905092915050565b60606004805461077e906116b6565b80601f01602080910402602001604051908101604052809291908181526020018280546107aa906116b6565b80156107f55780601f106107cc576101008083540402835291602001916107f5565b820191905f5260205f20905b8154815290600101906020018083116107d857829003601f168201915b5050505050905090565b7f3c11d16cbaffd01df69ce1c404f6340ee057498f5f00246190ea54220576a84861082981610b65565b6108338383610dcc565b7fd1df306c742159c188c29d2c167874a39b84fd0f96f794ad7ea53295680ec1c583836040516108649291906116f5565b60405180910390a1505050565b5f801b81565b5f806108816109ca565b905061088e818585610a75565b600191505092915050565b7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a681565b6108c68261056e565b6108cf81610b65565b6108d98383610c63565b50505050565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b5f33905090565b6109de8383836001610e4b565b505050565b5f6109ee84846108df565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610a6f5781811015610a60578281836040517ffb8f41b2000000000000000000000000000000000000000000000000000000008152600401610a579392919061171c565b60405180910390fd5b610a6e84848484035f610e4b565b5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610ae5575f6040517f96c6fd1e000000000000000000000000000000000000000000000000000000008152600401610adc9190611751565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610b55575f6040517fec442f05000000000000000000000000000000000000000000000000000000008152600401610b4c9190611751565b60405180910390fd5b610b6083838361101a565b505050565b610b7681610b716109ca565b611233565b50565b5f610b84838361070b565b610c5957600160055f8581526020019081526020015f205f015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550610bf66109ca565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a460019050610c5d565b5f90505b92915050565b5f610c6e838361070b565b15610d43575f60055f8581526020019081526020015f205f015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550610ce06109ca565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a460019050610d47565b5f90505b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610dbd575f6040517fec442f05000000000000000000000000000000000000000000000000000000008152600401610db49190611751565b60405180910390fd5b610dc85f838361101a565b5050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610e3c575f6040517f96c6fd1e000000000000000000000000000000000000000000000000000000008152600401610e339190611751565b60405180910390fd5b610e47825f8361101a565b5050565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610ebb575f6040517fe602df05000000000000000000000000000000000000000000000000000000008152600401610eb29190611751565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610f2b575f6040517f94280d62000000000000000000000000000000000000000000000000000000008152600401610f229190611751565b60405180910390fd5b8160015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508015611014578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161100b91906114bf565b60405180910390a35b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361106a578060025f82825461105e9190611797565b92505081905550611138565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050818110156110f3578381836040517fe450d38c0000000000000000000000000000000000000000000000000000000081526004016110ea9392919061171c565b60405180910390fd5b8181035f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361117f578060025f82825403925050819055506111c9565b805f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161122691906114bf565b60405180910390a3505050565b61123d828261070b565b6112805780826040517fe2517d3f0000000000000000000000000000000000000000000000000000000081526004016112779291906117ca565b60405180910390fd5b5050565b5f80fd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6112bc81611288565b81146112c6575f80fd5b50565b5f813590506112d7816112b3565b92915050565b5f602082840312156112f2576112f1611284565b5b5f6112ff848285016112c9565b91505092915050565b5f8115159050919050565b61131c81611308565b82525050565b5f6020820190506113355f830184611313565b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015611372578082015181840152602081019050611357565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6113978261133b565b6113a18185611345565b93506113b1818560208601611355565b6113ba8161137d565b840191505092915050565b5f6020820190508181035f8301526113dd818461138d565b905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61140e826113e5565b9050919050565b61141e81611404565b8114611428575f80fd5b50565b5f8135905061143981611415565b92915050565b5f819050919050565b6114518161143f565b811461145b575f80fd5b50565b5f8135905061146c81611448565b92915050565b5f806040838503121561148857611487611284565b5b5f6114958582860161142b565b92505060206114a68582860161145e565b9150509250929050565b6114b98161143f565b82525050565b5f6020820190506114d25f8301846114b0565b92915050565b5f805f606084860312156114ef576114ee611284565b5b5f6114fc8682870161142b565b935050602061150d8682870161142b565b925050604061151e8682870161145e565b9150509250925092565b5f819050919050565b61153a81611528565b8114611544575f80fd5b50565b5f8135905061155581611531565b92915050565b5f602082840312156115705761156f611284565b5b5f61157d84828501611547565b91505092915050565b61158f81611528565b82525050565b5f6020820190506115a85f830184611586565b92915050565b5f80604083850312156115c4576115c3611284565b5b5f6115d185828601611547565b92505060206115e28582860161142b565b9150509250929050565b5f60ff82169050919050565b611601816115ec565b82525050565b5f60208201905061161a5f8301846115f8565b92915050565b5f6020828403121561163557611634611284565b5b5f6116428482850161142b565b91505092915050565b5f806040838503121561166157611660611284565b5b5f61166e8582860161142b565b925050602061167f8582860161142b565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806116cd57607f821691505b6020821081036116e0576116df611689565b5b50919050565b6116ef81611404565b82525050565b5f6040820190506117085f8301856116e6565b61171560208301846114b0565b9392505050565b5f60608201905061172f5f8301866116e6565b61173c60208301856114b0565b61174960408301846114b0565b949350505050565b5f6020820190506117645f8301846116e6565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6117a18261143f565b91506117ac8361143f565b92508282019050808211156117c4576117c361176a565b5b92915050565b5f6040820190506117dd5f8301856116e6565b6117ea6020830184611586565b939250505056fea2646970667358221220c1d9366c9d050687af0fc3226636c93466750195883b74bc593b0d0c619667dc64736f6c63430008180033000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e53796e7468657469632054534c4100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000057354534c41000000000000000000000000000000000000000000000000000000