[ { "inputs": [], "stateMutability": "nonpayable", "type": "constructor" }, { "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" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "name": "OwnableInvalidOwner", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "OwnableUnauthorizedAccount", "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": "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": [ { "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": [], "name": "decimals", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_init", "type": "address" } ], "name": "init", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "owner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "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": "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" }, { "inputs": [ { "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "transferOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" } ]
608060405234801562000010575f80fd5b50336040518060400160405280600981526020017f4d45474120444f474500000000000000000000000000000000000000000000008152506040518060400160405280600881526020017f4d454741444f474500000000000000000000000000000000000000000000000081525081600490816200008f91906200088b565b508060059081620000a191906200088b565b5050505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160362000117575f6040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081526004016200010e9190620009b2565b60405180910390fd5b62000128816200016f60201b60201c565b5062000169336200013e6200023260201b60201c565b600a6200014c919062000b56565b633b9aca006200015d919062000ba6565b6200023a60201b60201c565b62000cf5565b5f60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160075f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f6012905090565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603620002ad575f6040517fec442f05000000000000000000000000000000000000000000000000000000008152600401620002a49190620009b2565b60405180910390fd5b620002c05f8383620002c460201b60201c565b5050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160362000318578060035f8282546200030b919062000bf0565b92505081905550620003e9565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015620003a4578381836040517fe450d38c0000000000000000000000000000000000000000000000000000000081526004016200039b9392919062000c3b565b60405180910390fd5b8181035f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362000432578060035f828254039250508190555062000530565b610f2060025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205460025f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054620004bd919062000bf0565b10620004e657620bd2236109e382620004d7919062000ba6565b620004e3919062000ca3565b90505b805f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055505b60e460025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205403620005bb57610f2060025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516200061a919062000cda565b60405180910390a3505050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680620006a357607f821691505b602082108103620006b957620006b86200065e565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026200071d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620006e0565b620007298683620006e0565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f620007736200076d620007678462000741565b6200074a565b62000741565b9050919050565b5f819050919050565b6200078e8362000753565b620007a66200079d826200077a565b848454620006ec565b825550505050565b5f90565b620007bc620007ae565b620007c981848462000783565b505050565b5b81811015620007f057620007e45f82620007b2565b600181019050620007cf565b5050565b601f8211156200083f576200080981620006bf565b6200081484620006d1565b8101602085101562000824578190505b6200083c6200083385620006d1565b830182620007ce565b50505b505050565b5f82821c905092915050565b5f620008615f198460080262000844565b1980831691505092915050565b5f6200087b838362000850565b9150826002028217905092915050565b620008968262000627565b67ffffffffffffffff811115620008b257620008b162000631565b5b620008be82546200068b565b620008cb828285620007f4565b5f60209050601f83116001811462000901575f8415620008ec578287015190505b620008f885826200086e565b86555062000967565b601f1984166200091186620006bf565b5f5b828110156200093a5784890151825560018201915060208501945060208101905062000913565b868310156200095a578489015162000956601f89168262000850565b8355505b6001600288020188555050505b505050505050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6200099a826200096f565b9050919050565b620009ac816200098e565b82525050565b5f602082019050620009c75f830184620009a1565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b600185111562000a575780860481111562000a2f5762000a2e620009cd565b5b600185161562000a3f5780820291505b808102905062000a4f85620009fa565b945062000a0f565b94509492505050565b5f8262000a71576001905062000b43565b8162000a80575f905062000b43565b816001811462000a99576002811462000aa45762000ada565b600191505062000b43565b60ff84111562000ab95762000ab8620009cd565b5b8360020a91508482111562000ad35762000ad2620009cd565b5b5062000b43565b5060208310610133831016604e8410600b841016171562000b145782820a90508381111562000b0e5762000b0d620009cd565b5b62000b43565b62000b23848484600162000a06565b9250905081840481111562000b3d5762000b3c620009cd565b5b81810290505b9392505050565b5f60ff82169050919050565b5f62000b628262000741565b915062000b6f8362000b4a565b925062000b9e7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000a60565b905092915050565b5f62000bb28262000741565b915062000bbf8362000741565b925082820262000bcf8162000741565b9150828204841483151762000be95762000be8620009cd565b5b5092915050565b5f62000bfc8262000741565b915062000c098362000741565b925082820190508082111562000c245762000c23620009cd565b5b92915050565b62000c358162000741565b82525050565b5f60608201905062000c505f830186620009a1565b62000c5f602083018562000c2a565b62000c6e604083018462000c2a565b949350505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f62000caf8262000741565b915062000cbc8362000741565b92508262000ccf5762000cce62000c76565b5b828204905092915050565b5f60208201905062000cef5f83018462000c2a565b92915050565b6113578062000d035f395ff3fe608060405234801561000f575f80fd5b50600436106100cd575f3560e01c806370a082311161008a57806395d89b411161006457806395d89b41146101ff578063a9059cbb1461021d578063dd62ed3e1461024d578063f2fde38b1461027d576100cd565b806370a08231146101a7578063715018a6146101d75780638da5cb5b146101e1576100cd565b806306fdde03146100d1578063095ea7b3146100ef57806318160ddd1461011f57806319ab453c1461013d57806323b872dd14610159578063313ce56714610189575b5f80fd5b6100d9610299565b6040516100e69190610f32565b60405180910390f35b61010960048036038101906101049190610fe3565b610329565b604051610116919061103b565b60405180910390f35b6101276103e2565b6040516101349190611063565b60405180910390f35b6101576004803603810190610152919061107c565b6103eb565b005b610173600480360381019061016e91906110a7565b610436565b604051610180919061103b565b60405180910390f35b610191610464565b60405161019e9190611112565b60405180910390f35b6101c160048036038101906101bc919061107c565b61046c565b6040516101ce9190611063565b60405180910390f35b6101df6104b1565b005b6101e96104c4565b6040516101f6919061113a565b60405180910390f35b6102076104ec565b6040516102149190610f32565b60405180910390f35b61023760048036038101906102329190610fe3565b61057c565b604051610244919061103b565b60405180910390f35b61026760048036038101906102629190611153565b61059e565b6040516102749190611063565b60405180910390f35b6102976004803603810190610292919061107c565b610620565b005b6060600480546102a8906111be565b80601f01602080910402602001604051908101604052809291908181526020018280546102d4906111be565b801561031f5780601f106102f65761010080835404028352916020019161031f565b820191905f5260205f20905b81548152906001019060200180831161030257829003601f168201915b5050505050905090565b5f806103336106a4565b905060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036103cc578260025f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b6103d78185856106ab565b600191505092915050565b5f600354905090565b6103f36106bd565b8060065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f806104406106a4565b905061044d858285610744565b6104588585856107d6565b60019150509392505050565b5f6012905090565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6104b96106bd565b6104c25f6108c6565b565b5f60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600580546104fb906111be565b80601f0160208091040260200160405190810160405280929190818152602001828054610527906111be565b80156105725780601f1061054957610100808354040283529160200191610572565b820191905f5260205f20905b81548152906001019060200180831161055557829003601f168201915b5050505050905090565b5f806105866106a4565b90506105938185856107d6565b600191505092915050565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b6106286106bd565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610698575f6040517f1e4fbdf700000000000000000000000000000000000000000000000000000000815260040161068f919061113a565b60405180910390fd5b6106a1816108c6565b50565b5f33905090565b6106b88383836001610989565b505050565b6106c56106a4565b73ffffffffffffffffffffffffffffffffffffffff166106e36104c4565b73ffffffffffffffffffffffffffffffffffffffff1614610742576107066106a4565b6040517f118cdaa7000000000000000000000000000000000000000000000000000000008152600401610739919061113a565b60405180910390fd5b565b5f61074f848461059e565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146107d057818110156107c1578281836040517ffb8f41b20000000000000000000000000000000000000000000000000000000081526004016107b8939291906111ee565b60405180910390fd5b6107cf84848484035f610989565b5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610846575f6040517f96c6fd1e00000000000000000000000000000000000000000000000000000000815260040161083d919061113a565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036108b6575f6040517fec442f050000000000000000000000000000000000000000000000000000000081526004016108ad919061113a565b60405180910390fd5b6108c1838383610b58565b505050565b5f60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160075f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036109f9575f6040517fe602df050000000000000000000000000000000000000000000000000000000081526004016109f0919061113a565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610a69575f6040517f94280d62000000000000000000000000000000000000000000000000000000008152600401610a60919061113a565b60405180910390fd5b8160015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508015610b52578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610b499190611063565b60405180910390a35b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610ba8578060035f828254610b9c9190611250565b92505081905550610c76565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015610c31578381836040517fe450d38c000000000000000000000000000000000000000000000000000000008152600401610c28939291906111ee565b60405180910390fd5b8181035f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610cbd578060035f8282540392505081905550610db4565b610f2060025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205460025f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610d469190611250565b10610d6a57620bd2236109e382610d5d9190611283565b610d6791906112f1565b90505b805f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055505b60e460025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205403610e3e57610f2060025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610e9b9190611063565b60405180910390a3505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015610edf578082015181840152602081019050610ec4565b5f8484015250505050565b5f601f19601f8301169050919050565b5f610f0482610ea8565b610f0e8185610eb2565b9350610f1e818560208601610ec2565b610f2781610eea565b840191505092915050565b5f6020820190508181035f830152610f4a8184610efa565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610f7f82610f56565b9050919050565b610f8f81610f75565b8114610f99575f80fd5b50565b5f81359050610faa81610f86565b92915050565b5f819050919050565b610fc281610fb0565b8114610fcc575f80fd5b50565b5f81359050610fdd81610fb9565b92915050565b5f8060408385031215610ff957610ff8610f52565b5b5f61100685828601610f9c565b925050602061101785828601610fcf565b9150509250929050565b5f8115159050919050565b61103581611021565b82525050565b5f60208201905061104e5f83018461102c565b92915050565b61105d81610fb0565b82525050565b5f6020820190506110765f830184611054565b92915050565b5f6020828403121561109157611090610f52565b5b5f61109e84828501610f9c565b91505092915050565b5f805f606084860312156110be576110bd610f52565b5b5f6110cb86828701610f9c565b93505060206110dc86828701610f9c565b92505060406110ed86828701610fcf565b9150509250925092565b5f60ff82169050919050565b61110c816110f7565b82525050565b5f6020820190506111255f830184611103565b92915050565b61113481610f75565b82525050565b5f60208201905061114d5f83018461112b565b92915050565b5f806040838503121561116957611168610f52565b5b5f61117685828601610f9c565b925050602061118785828601610f9c565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806111d557607f821691505b6020821081036111e8576111e7611191565b5b50919050565b5f6060820190506112015f83018661112b565b61120e6020830185611054565b61121b6040830184611054565b949350505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61125a82610fb0565b915061126583610fb0565b925082820190508082111561127d5761127c611223565b5b92915050565b5f61128d82610fb0565b915061129883610fb0565b92508282026112a681610fb0565b915082820484148315176112bd576112bc611223565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6112fb82610fb0565b915061130683610fb0565b925082611316576113156112c4565b5b82820490509291505056fea26469706673582212200d38589d2d08be6f596ab5e2d777b2530a5bf376ce1f2072d96847d82dc1e95564736f6c63430008180033