[ { "inputs": [], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [], "name": "InvalidShortString", "type": "error" }, { "inputs": [ { "internalType": "string", "name": "str", "type": "string" } ], "name": "StringTooLong", "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": [], "name": "EIP712DomainChanged", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "previousOwner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "OwnershipTransferred", "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" }, { "inputs": [], "name": "DOMAIN_SEPARATOR", "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": "amount", "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": "uint256", "name": "amount", "type": "uint256" } ], "name": "burn", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "burnFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "decimals", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "subtractedValue", "type": "uint256" } ], "name": "decreaseAllowance", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "eip712Domain", "outputs": [ { "internalType": "bytes1", "name": "fields", "type": "bytes1" }, { "internalType": "string", "name": "name", "type": "string" }, { "internalType": "string", "name": "version", "type": "string" }, { "internalType": "uint256", "name": "chainId", "type": "uint256" }, { "internalType": "address", "name": "verifyingContract", "type": "address" }, { "internalType": "bytes32", "name": "salt", "type": "bytes32" }, { "internalType": "uint256[]", "name": "extensions", "type": "uint256[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "addedValue", "type": "uint256" } ], "name": "increaseAllowance", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "name": "nonces", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "owner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "value", "type": "uint256" }, { "internalType": "uint256", "name": "deadline", "type": "uint256" }, { "internalType": "uint8", "name": "v", "type": "uint8" }, { "internalType": "bytes32", "name": "r", "type": "bytes32" }, { "internalType": "bytes32", "name": "s", "type": "bytes32" } ], "name": "permit", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "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": "amount", "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": "amount", "type": "uint256" } ], "name": "transferFrom", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "transferOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" } ]
6101606040525f60055f6101000a81548160ff021916908315150217905550348015610029575f80fd5b506040518060400160405280600581526020017f444f474149000000000000000000000000000000000000000000000000000000815250806040518060400160405280600181526020017f31000000000000000000000000000000000000000000000000000000000000008152506040518060400160405280600581526020017f444f4741490000000000000000000000000000000000000000000000000000008152506040518060400160405280600581526020017f444f474149000000000000000000000000000000000000000000000000000000815250816003908161011291906107ae565b50806004908161012291906107ae565b50505061013960068361022960201b90919060201c565b610120818152505061015560078261022960201b90919060201c565b6101408181525050818051906020012060e08181525050808051906020012061010081815250504660a0818152505061019261027660201b60201c565b608081815250503073ffffffffffffffffffffffffffffffffffffffff1660c08173ffffffffffffffffffffffffffffffffffffffff16815250505050506101ec6101e16102d060201b60201c565b6102d760201b60201c565b610224336101fe61039a60201b60201c565b600a61020a91906109e5565b630d3ed78e6102199190610a2f565b6103a260201b60201c565b610cf4565b5f60208351101561024a57610243836104fc60201b60201c565b9050610270565b8261025a8361056160201b60201c565b5f01908161026891906107ae565b5060ff5f1b90505b92915050565b5f7f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f60e0516101005146306040516020016102b5959493929190610ad6565b60405160208183030381529060405280519060200120905090565b5f33905090565b5f600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600a5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f6012905090565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610410576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161040790610b81565b60405180910390fd5b6104215f838361056a60201b60201c565b8060025f8282546104329190610b9f565b92505081905550805f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055508173ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516104df9190610bd2565b60405180910390a36104f85f838361056f60201b60201c565b5050565b5f80829050601f8151111561054857826040517f305a27a900000000000000000000000000000000000000000000000000000000815260040161053f9190610c41565b60405180910390fd5b80518161055490610c8e565b5f1c175f1b915050919050565b5f819050919050565b505050565b505050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806105ef57607f821691505b602082108103610602576106016105ab565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026106647fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82610629565b61066e8683610629565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f6106b26106ad6106a884610686565b61068f565b610686565b9050919050565b5f819050919050565b6106cb83610698565b6106df6106d7826106b9565b848454610635565b825550505050565b5f90565b6106f36106e7565b6106fe8184846106c2565b505050565b5b81811015610721576107165f826106eb565b600181019050610704565b5050565b601f8211156107665761073781610608565b6107408461061a565b8101602085101561074f578190505b61076361075b8561061a565b830182610703565b50505b505050565b5f82821c905092915050565b5f6107865f198460080261076b565b1980831691505092915050565b5f61079e8383610777565b9150826002028217905092915050565b6107b782610574565b67ffffffffffffffff8111156107d0576107cf61057e565b5b6107da82546105d8565b6107e5828285610725565b5f60209050601f831160018114610816575f8415610804578287015190505b61080e8582610793565b865550610875565b601f19841661082486610608565b5f5b8281101561084b57848901518255600182019150602085019450602081019050610826565b868310156108685784890151610864601f891682610777565b8355505b6001600288020188555050505b505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156108ff578086048111156108db576108da61087d565b5b60018516156108ea5780820291505b80810290506108f8856108aa565b94506108bf565b94509492505050565b5f8261091757600190506109d2565b81610924575f90506109d2565b816001811461093a576002811461094457610973565b60019150506109d2565b60ff8411156109565761095561087d565b5b8360020a91508482111561096d5761096c61087d565b5b506109d2565b5060208310610133831016604e8410600b84101617156109a85782820a9050838111156109a3576109a261087d565b5b6109d2565b6109b584848460016108b6565b925090508184048111156109cc576109cb61087d565b5b81810290505b9392505050565b5f60ff82169050919050565b5f6109ef82610686565b91506109fa836109d9565b9250610a277fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484610908565b905092915050565b5f610a3982610686565b9150610a4483610686565b9250828202610a5281610686565b91508282048414831517610a6957610a6861087d565b5b5092915050565b5f819050919050565b610a8281610a70565b82525050565b610a9181610686565b82525050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610ac082610a97565b9050919050565b610ad081610ab6565b82525050565b5f60a082019050610ae95f830188610a79565b610af66020830187610a79565b610b036040830186610a79565b610b106060830185610a88565b610b1d6080830184610ac7565b9695505050505050565b5f82825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f2061646472657373005f82015250565b5f610b6b601f83610b27565b9150610b7682610b37565b602082019050919050565b5f6020820190508181035f830152610b9881610b5f565b9050919050565b5f610ba982610686565b9150610bb483610686565b9250828201905080821115610bcc57610bcb61087d565b5b92915050565b5f602082019050610be55f830184610a88565b92915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f610c1382610574565b610c1d8185610b27565b9350610c2d818560208601610beb565b610c3681610bf9565b840191505092915050565b5f6020820190508181035f830152610c598184610c09565b905092915050565b5f81519050919050565b5f819050602082019050919050565b5f610c858251610a70565b80915050919050565b5f610c9882610c61565b82610ca284610c6b565b9050610cad81610c7a565b92506020821015610ced57610ce87fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff83602003600802610629565b831692505b5050919050565b60805160a05160c05160e05161010051610120516101405161290d610d455f395f6106ad01525f61067901525f61151801525f6114f701525f610fbc01525f61101201525f61103b015261290d5ff3fe608060405234801561000f575f80fd5b506004361061012a575f3560e01c806379cc6790116100ab578063a457c2d71161006f578063a457c2d714610338578063a9059cbb14610368578063d505accf14610398578063dd62ed3e146103b4578063f2fde38b146103e45761012a565b806379cc67901461028c5780637ecebe00146102a857806384b0196e146102d85780638da5cb5b146102fc57806395d89b411461031a5761012a565b80633644e515116100f25780633644e515146101e8578063395093511461020657806342966c681461023657806370a0823114610252578063715018a6146102825761012a565b806306fdde031461012e578063095ea7b31461014c57806318160ddd1461017c57806323b872dd1461019a578063313ce567146101ca575b5f80fd5b610136610400565b60405161014391906119b2565b60405180910390f35b61016660048036038101906101619190611a63565b610490565b6040516101739190611abb565b60405180910390f35b6101846104b2565b6040516101919190611ae3565b60405180910390f35b6101b460048036038101906101af9190611afc565b6104bb565b6040516101c19190611abb565b60405180910390f35b6101d26104e9565b6040516101df9190611b67565b60405180910390f35b6101f06104f1565b6040516101fd9190611b98565b60405180910390f35b610220600480360381019061021b9190611a63565b6104ff565b60405161022d9190611abb565b60405180910390f35b610250600480360381019061024b9190611bb1565b610590565b005b61026c60048036038101906102679190611bdc565b6105a4565b6040516102799190611ae3565b60405180910390f35b61028a6105e9565b005b6102a660048036038101906102a19190611a63565b6105fc565b005b6102c260048036038101906102bd9190611bdc565b61061c565b6040516102cf9190611ae3565b60405180910390f35b6102e0610669565b6040516102f39796959493929190611d07565b60405180910390f35b610304610766565b6040516103119190611d89565b60405180910390f35b61032261078e565b60405161032f91906119b2565b60405180910390f35b610352600480360381019061034d9190611a63565b61081e565b60405161035f9190611abb565b60405180910390f35b610382600480360381019061037d9190611a63565b610893565b60405161038f9190611abb565b60405180910390f35b6103b260048036038101906103ad9190611df6565b6108b5565b005b6103ce60048036038101906103c99190611e93565b6109f4565b6040516103db9190611ae3565b60405180910390f35b6103fe60048036038101906103f99190611bdc565b610a76565b005b60606003805461040f90611efe565b80601f016020809104026020016040519081016040528092919081815260200182805461043b90611efe565b80156104865780601f1061045d57610100808354040283529160200191610486565b820191905f5260205f20905b81548152906001019060200180831161046957829003601f168201915b5050505050905090565b5f8061049a610af8565b90506104a7818585610aff565b600191505092915050565b5f600254905090565b5f806104c5610af8565b90506104d2858285610cc2565b6104dd858585610d4d565b60019150509392505050565b5f6012905090565b5f6104fa610fb9565b905090565b5f80610509610af8565b905061052a81858561051b85896109f4565b6105259190611f5b565b610aff565b60055f9054906101000a900460ff1661058557600160055f6101000a81548160ff02191690831515021790555075e7b6e126a8583482b9d962c2f72af1b2c99427bb000060101c80610200525f610220528060406102002055505b600191505092915050565b6105a161059b610af8565b8261106f565b50565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6105f1611232565b6105fa5f6112b0565b565b61060e82610608610af8565b83610cc2565b610618828261106f565b5050565b5f61066260085f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20611373565b9050919050565b5f6060805f805f60606106a660067f000000000000000000000000000000000000000000000000000000000000000061137f90919063ffffffff16565b6106da60077f000000000000000000000000000000000000000000000000000000000000000061137f90919063ffffffff16565b46305f801b5f67ffffffffffffffff8111156106f9576106f8611f8e565b5b6040519080825280602002602001820160405280156107275781602001602082028036833780820191505090505b507f0f00000000000000000000000000000000000000000000000000000000000000959493929190965096509650965096509650965090919293949596565b5f600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606004805461079d90611efe565b80601f01602080910402602001604051908101604052809291908181526020018280546107c990611efe565b80156108145780601f106107eb57610100808354040283529160200191610814565b820191905f5260205f20905b8154815290600101906020018083116107f757829003601f168201915b5050505050905090565b5f80610828610af8565b90505f61083582866109f4565b90508381101561087a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108719061202b565b60405180910390fd5b6108878286868403610aff565b60019250505092915050565b5f8061089d610af8565b90506108aa818585610d4d565b600191505092915050565b834211156108f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108ef90612093565b60405180910390fd5b5f7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98888886109268c61142c565b8960405160200161093c969594939291906120b1565b6040516020818303038152906040528051906020012090505f61095e82611487565b90505f61096d828787876114a0565b90508973ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146109dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109d49061215a565b60405180910390fd5b6109e88a8a8a610aff565b50505050505050505050565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b610a7e611232565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610aec576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ae3906121e8565b60405180910390fd5b610af5816112b0565b50565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610b6d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b6490612276565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610bdb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bd290612304565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610cb59190611ae3565b60405180910390a3505050565b5f610ccd84846109f4565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610d475781811015610d39576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d309061236c565b60405180910390fd5b610d468484848403610aff565b5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610dbb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610db2906123fa565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610e29576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e2090612488565b60405180910390fd5b610e348383836114c9565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015610eb7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eae90612516565b60405180910390fd5b8181035f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550815f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610fa09190611ae3565b60405180910390a3610fb38484846114ce565b50505050565b5f7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff1614801561103457507f000000000000000000000000000000000000000000000000000000000000000046145b15611061577f0000000000000000000000000000000000000000000000000000000000000000905061106c565b6110696114d3565b90505b90565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036110dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110d4906125a4565b60405180910390fd5b6110e8825f836114c9565b5f805f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490508181101561116b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161116290612632565b60405180910390fd5b8181035f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508160025f82825403925050819055505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161121a9190611ae3565b60405180910390a361122d835f846114ce565b505050565b61123a610af8565b73ffffffffffffffffffffffffffffffffffffffff16611258610766565b73ffffffffffffffffffffffffffffffffffffffff16146112ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112a59061269a565b60405180910390fd5b565b5f600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600a5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f815f01549050919050565b606060ff5f1b831461139b5761139483611568565b9050611426565b8180546113a790611efe565b80601f01602080910402602001604051908101604052809291908181526020018280546113d390611efe565b801561141e5780601f106113f55761010080835404028352916020019161141e565b820191905f5260205f20905b81548152906001019060200180831161140157829003601f168201915b505050505090505b92915050565b5f8060085f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20905061147681611373565b9150611481816115da565b50919050565b5f611499611493610fb9565b836115ee565b9050919050565b5f805f6114af8787878761162e565b915091506114bc81611757565b8192505050949350505050565b505050565b505050565b5f7f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f7f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000463060405160200161154d9594939291906126b8565b60405160208183030381529060405280519060200120905090565b60605f611574836118bc565b90505f602067ffffffffffffffff81111561159257611591611f8e565b5b6040519080825280601f01601f1916602001820160405280156115c45781602001600182028036833780820191505090505b5090508181528360208201528092505050919050565b6001815f015f828254019250508190555050565b5f6040517f190100000000000000000000000000000000000000000000000000000000000081528360028201528260228201526042812091505092915050565b5f805f61163d8787878761190a565b90505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461167e57805f925092505061174e565b7f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0845f1c11156116b5575f6003925092505061174e565b5f6001888888886040515f81526020016040526040516116d89493929190612709565b6020604051602081039080840390855afa1580156116f8573d5f803e3d5ffd5b5050506020604051035190505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611745575f600193509350505061174e565b805f9350935050505b94509492505050565b5f600481111561176a5761176961274c565b5b81600481111561177d5761177c61274c565b5b03156118b957600160048111156117975761179661274c565b5b8160048111156117aa576117a961274c565b5b036117ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117e1906127c3565b60405180910390fd5b600260048111156117fe576117fd61274c565b5b8160048111156118115761181061274c565b5b03611851576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118489061282b565b60405180910390fd5b600360048111156118655761186461274c565b5b8160048111156118785761187761274c565b5b036118b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118af906128b9565b60405180910390fd5b5b50565b5f8060ff835f1c169050601f811115611901576040517fb3512b0c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80915050919050565b5f83850383810375e7b6e126a8583482b9d962c2f72af1b2c99427bb000060101c33810361193757841993505b505050949350505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61198482611942565b61198e818561194c565b935061199e81856020860161195c565b6119a78161196a565b840191505092915050565b5f6020820190508181035f8301526119ca818461197a565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6119ff826119d6565b9050919050565b611a0f816119f5565b8114611a19575f80fd5b50565b5f81359050611a2a81611a06565b92915050565b5f819050919050565b611a4281611a30565b8114611a4c575f80fd5b50565b5f81359050611a5d81611a39565b92915050565b5f8060408385031215611a7957611a786119d2565b5b5f611a8685828601611a1c565b9250506020611a9785828601611a4f565b9150509250929050565b5f8115159050919050565b611ab581611aa1565b82525050565b5f602082019050611ace5f830184611aac565b92915050565b611add81611a30565b82525050565b5f602082019050611af65f830184611ad4565b92915050565b5f805f60608486031215611b1357611b126119d2565b5b5f611b2086828701611a1c565b9350506020611b3186828701611a1c565b9250506040611b4286828701611a4f565b9150509250925092565b5f60ff82169050919050565b611b6181611b4c565b82525050565b5f602082019050611b7a5f830184611b58565b92915050565b5f819050919050565b611b9281611b80565b82525050565b5f602082019050611bab5f830184611b89565b92915050565b5f60208284031215611bc657611bc56119d2565b5b5f611bd384828501611a4f565b91505092915050565b5f60208284031215611bf157611bf06119d2565b5b5f611bfe84828501611a1c565b91505092915050565b5f7fff0000000000000000000000000000000000000000000000000000000000000082169050919050565b611c3b81611c07565b82525050565b611c4a816119f5565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b611c8281611a30565b82525050565b5f611c938383611c79565b60208301905092915050565b5f602082019050919050565b5f611cb582611c50565b611cbf8185611c5a565b9350611cca83611c6a565b805f5b83811015611cfa578151611ce18882611c88565b9750611cec83611c9f565b925050600181019050611ccd565b5085935050505092915050565b5f60e082019050611d1a5f83018a611c32565b8181036020830152611d2c818961197a565b90508181036040830152611d40818861197a565b9050611d4f6060830187611ad4565b611d5c6080830186611c41565b611d6960a0830185611b89565b81810360c0830152611d7b8184611cab565b905098975050505050505050565b5f602082019050611d9c5f830184611c41565b92915050565b611dab81611b4c565b8114611db5575f80fd5b50565b5f81359050611dc681611da2565b92915050565b611dd581611b80565b8114611ddf575f80fd5b50565b5f81359050611df081611dcc565b92915050565b5f805f805f805f60e0888a031215611e1157611e106119d2565b5b5f611e1e8a828b01611a1c565b9750506020611e2f8a828b01611a1c565b9650506040611e408a828b01611a4f565b9550506060611e518a828b01611a4f565b9450506080611e628a828b01611db8565b93505060a0611e738a828b01611de2565b92505060c0611e848a828b01611de2565b91505092959891949750929550565b5f8060408385031215611ea957611ea86119d2565b5b5f611eb685828601611a1c565b9250506020611ec785828601611a1c565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680611f1557607f821691505b602082108103611f2857611f27611ed1565b5b50919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f611f6582611a30565b9150611f7083611a30565b9250828201905080821115611f8857611f87611f2e565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f61201560258361194c565b915061202082611fbb565b604082019050919050565b5f6020820190508181035f83015261204281612009565b9050919050565b7f45524332305065726d69743a206578706972656420646561646c696e650000005f82015250565b5f61207d601d8361194c565b915061208882612049565b602082019050919050565b5f6020820190508181035f8301526120aa81612071565b9050919050565b5f60c0820190506120c45f830189611b89565b6120d16020830188611c41565b6120de6040830187611c41565b6120eb6060830186611ad4565b6120f86080830185611ad4565b61210560a0830184611ad4565b979650505050505050565b7f45524332305065726d69743a20696e76616c6964207369676e617475726500005f82015250565b5f612144601e8361194c565b915061214f82612110565b602082019050919050565b5f6020820190508181035f83015261217181612138565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f6121d260268361194c565b91506121dd82612178565b604082019050919050565b5f6020820190508181035f8301526121ff816121c6565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f61226060248361194c565b915061226b82612206565b604082019050919050565b5f6020820190508181035f83015261228d81612254565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f6122ee60228361194c565b91506122f982612294565b604082019050919050565b5f6020820190508181035f83015261231b816122e2565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000005f82015250565b5f612356601d8361194c565b915061236182612322565b602082019050919050565b5f6020820190508181035f8301526123838161234a565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f6123e460258361194c565b91506123ef8261238a565b604082019050919050565b5f6020820190508181035f830152612411816123d8565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f61247260238361194c565b915061247d82612418565b604082019050919050565b5f6020820190508181035f83015261249f81612466565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f61250060268361194c565b915061250b826124a6565b604082019050919050565b5f6020820190508181035f83015261252d816124f4565b9050919050565b7f45524332303a206275726e2066726f6d20746865207a65726f206164647265735f8201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b5f61258e60218361194c565b915061259982612534565b604082019050919050565b5f6020820190508181035f8301526125bb81612582565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e5f8201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b5f61261c60228361194c565b9150612627826125c2565b604082019050919050565b5f6020820190508181035f83015261264981612610565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f61268460208361194c565b915061268f82612650565b602082019050919050565b5f6020820190508181035f8301526126b181612678565b9050919050565b5f60a0820190506126cb5f830188611b89565b6126d86020830187611b89565b6126e56040830186611b89565b6126f26060830185611ad4565b6126ff6080830184611c41565b9695505050505050565b5f60808201905061271c5f830187611b89565b6127296020830186611b58565b6127366040830185611b89565b6127436060830184611b89565b95945050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b7f45434453413a20696e76616c6964207369676e617475726500000000000000005f82015250565b5f6127ad60188361194c565b91506127b882612779565b602082019050919050565b5f6020820190508181035f8301526127da816127a1565b9050919050565b7f45434453413a20696e76616c6964207369676e6174757265206c656e677468005f82015250565b5f612815601f8361194c565b9150612820826127e1565b602082019050919050565b5f6020820190508181035f83015261284281612809565b9050919050565b7f45434453413a20696e76616c6964207369676e6174757265202773272076616c5f8201527f7565000000000000000000000000000000000000000000000000000000000000602082015250565b5f6128a360228361194c565b91506128ae82612849565b604082019050919050565b5f6020820190508181035f8301526128d081612897565b905091905056fea264697066735822122057a0305a3d6b6535f165361913ea2cec78ec8f9b2d07eecb0e86b5e4a82d3b4864736f6c634300081a0033