[ { "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": [], "name": "liquidityPool", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "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": "renounceTokenOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "restrictedPeriod", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_liquidityPool", "type": "address" } ], "name": "setLiquidityPool", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_startTime", "type": "uint256" } ], "name": "setStartTime", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address[]", "name": "wallets", "type": "address[]" } ], "name": "setWhitelistedPhase", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "startTime", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "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": [], "name": "tradingActive", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "tradingPhase", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "tradingRestricted", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "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" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "wllist", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" } ]
60806040526103846008553480156200001757600080fd5b50336040518060400160405280600481526020017f4f74746f000000000000000000000000000000000000000000000000000000008152506040518060400160405280600481526020017f4f54544f00000000000000000000000000000000000000000000000000000000815250816003908162000096919062000bb9565b508060049081620000a8919062000bb9565b505050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603620001205760006040517f1e4fbdf700000000000000000000000000000000000000000000000000000000815260040162000117919062000ce5565b60405180910390fd5b62000131816200016560201b60201c565b506502ba7def30006007819055506200015f336d036c341e1f992f96840fe00000006200022b60201b60201c565b62001088565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603620002a05760006040517fec442f0500000000000000000000000000000000000000000000000000000000815260040162000297919062000ce5565b60405180910390fd5b620002b460008383620002b860201b60201c565b5050565b620002cb838383620005e560201b60201c565b600073ffffffffffffffffffffffffffffffffffffffff16600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603620003ee57620003326200081560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480620003a65750620003776200081560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b620003e8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620003df9062000d63565b60405180910390fd5b620005e0565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614620005df576000620004566200083f60201b60201c565b03620004a6576000620004a0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620004979062000dd5565b60405180910390fd5b620005de565b6001620004b86200083f60201b60201c565b03620005dd57600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166200054d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620005449062000e47565b60405180910390fd5b6064600a606462000563620008ab60201b60201c565b6200056f919062000ec7565b6200057b919062000eff565b62000587919062000ec7565b6200059883620008b560201b60201c565b1115620005dc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620005d39062000fc0565b60405180910390fd5b5b5b5b5b505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036200063b5780600260008282546200062e919062000fe2565b9250508190555062000711565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015620006ca578381836040517fe450d38c000000000000000000000000000000000000000000000000000000008152600401620006c1939291906200102e565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036200075c5780600260008282540392505081905550620007a9565b806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516200080891906200106b565b60405180910390a3505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600062000851620008fd60201b60201c565b620008605760009050620008a8565b620008706200090a60201b60201c565b15620008a35760085460075462000888919062000fe2565b4211620008995760019050620008a8565b60029050620008a8565b600290505b90565b6000600254905090565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000600754421015905090565b60006200091c620008fd60201b60201c565b80156200093a575060085460075462000936919062000fe2565b4211155b905090565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680620009c157607f821691505b602082108103620009d757620009d662000979565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b60006008830262000a417fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000a02565b62000a4d868362000a02565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600062000a9a62000a9462000a8e8462000a65565b62000a6f565b62000a65565b9050919050565b6000819050919050565b62000ab68362000a79565b62000ace62000ac58262000aa1565b84845462000a0f565b825550505050565b600090565b62000ae562000ad6565b62000af281848462000aab565b505050565b5b8181101562000b1a5762000b0e60008262000adb565b60018101905062000af8565b5050565b601f82111562000b695762000b3381620009dd565b62000b3e84620009f2565b8101602085101562000b4e578190505b62000b6662000b5d85620009f2565b83018262000af7565b50505b505050565b600082821c905092915050565b600062000b8e6000198460080262000b6e565b1980831691505092915050565b600062000ba9838362000b7b565b9150826002028217905092915050565b62000bc4826200093f565b67ffffffffffffffff81111562000be05762000bdf6200094a565b5b62000bec8254620009a8565b62000bf982828562000b1e565b600060209050601f83116001811462000c31576000841562000c1c578287015190505b62000c28858262000b9b565b86555062000c98565b601f19841662000c4186620009dd565b60005b8281101562000c6b5784890151825560018201915060208501945060208101905062000c44565b8683101562000c8b578489015162000c87601f89168262000b7b565b8355505b6001600288020188555050505b505050505050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000ccd8262000ca0565b9050919050565b62000cdf8162000cc0565b82525050565b600060208201905062000cfc600083018462000cd4565b92915050565b600082825260208201905092915050565b7f4e6f204c50207365740000000000000000000000000000000000000000000000600082015250565b600062000d4b60098362000d02565b915062000d588262000d13565b602082019050919050565b6000602082019050818103600083015262000d7e8162000d3c565b9050919050565b7f4e6f74206176616c6961626c65206e6f77000000000000000000000000000000600082015250565b600062000dbd60118362000d02565b915062000dca8262000d85565b602082019050919050565b6000602082019050818103600083015262000df08162000dae565b9050919050565b7f4f6e6c7920574c20506861736500000000000000000000000000000000000000600082015250565b600062000e2f600d8362000d02565b915062000e3c8262000df7565b602082019050919050565b6000602082019050818103600083015262000e628162000e20565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600062000ed48262000a65565b915062000ee18362000a65565b92508262000ef45762000ef362000e69565b5b828204905092915050565b600062000f0c8262000a65565b915062000f198362000a65565b925082820262000f298162000a65565b9150828204841483151762000f435762000f4262000e98565b5b5092915050565b7f416e74692077616c652070726f74656374696f6e20666f7220574c205068617360008201527f6500000000000000000000000000000000000000000000000000000000000000602082015250565b600062000fa860218362000d02565b915062000fb58262000f4a565b604082019050919050565b6000602082019050818103600083015262000fdb8162000f99565b9050919050565b600062000fef8262000a65565b915062000ffc8362000a65565b925082820190508082111562001017576200101662000e98565b5b92915050565b620010288162000a65565b82525050565b600060608201905062001045600083018662000cd4565b6200105460208301856200101d565b6200106360408301846200101d565b949350505050565b60006020820190506200108260008301846200101d565b92915050565b611c2880620010986000396000f3fe608060405234801561001057600080fd5b506004361061014d5760003560e01c80636acbd39b116100c3578063a9059cbb1161007c578063a9059cbb1461036c578063bbc0c7421461039c578063dd62ed3e146103ba578063e14f08d5146103ea578063f2fde38b146103f4578063f75d3305146104105761014d565b80636acbd39b146102ba57806370a08231146102d8578063715018a61461030857806378e97925146103125780638da5cb5b1461033057806395d89b411461034e5761014d565b806323b872dd1161011557806323b872dd146101f6578063282e06a31461022657806328d48afc14610244578063313ce567146102625780633e0a322d14610280578063665a11ca1461029c5761014d565b806301877020146101525780630691dd8a1461016e57806306fdde031461018a578063095ea7b3146101a857806318160ddd146101d8575b600080fd5b61016c600480360381019061016791906113a2565b610440565b005b61018860048036038101906101839190611528565b61048c565b005b610192610529565b60405161019f91906115f0565b60405180910390f35b6101c260048036038101906101bd9190611648565b6105bb565b6040516101cf91906116a3565b60405180910390f35b6101e06105de565b6040516101ed91906116cd565b60405180910390f35b610210600480360381019061020b91906116e8565b6105e8565b60405161021d91906116a3565b60405180910390f35b61022e610617565b60405161023b91906116cd565b60405180910390f35b61024c61061d565b60405161025991906116a3565b60405180910390f35b61026a610647565b6040516102779190611757565b60405180910390f35b61029a60048036038101906102959190611772565b610650565b005b6102a4610662565b6040516102b191906117ae565b60405180910390f35b6102c2610688565b6040516102cf91906116cd565b60405180910390f35b6102f260048036038101906102ed91906113a2565b6106dc565b6040516102ff91906116cd565b60405180910390f35b610310610724565b005b61031a610738565b60405161032791906116cd565b60405180910390f35b61033861073e565b60405161034591906117ae565b60405180910390f35b610356610768565b60405161036391906115f0565b60405180910390f35b61038660048036038101906103819190611648565b6107fa565b60405161039391906116a3565b60405180910390f35b6103a461081d565b6040516103b191906116a3565b60405180910390f35b6103d460048036038101906103cf91906117c9565b61082a565b6040516103e191906116cd565b60405180910390f35b6103f26108b1565b005b61040e600480360381019061040991906113a2565b6108c3565b005b61042a600480360381019061042591906113a2565b610949565b60405161043791906116a3565b60405180910390f35b610448610969565b80600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b610494610969565b60005b8151811015610525576001600960008484815181106104b9576104b8611809565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061051d90611867565b915050610497565b5050565b606060038054610538906118de565b80601f0160208091040260200160405190810160405280929190818152602001828054610564906118de565b80156105b15780601f10610586576101008083540402835291602001916105b1565b820191906000526020600020905b81548152906001019060200180831161059457829003601f168201915b5050505050905090565b6000806105c66109f0565b90506105d38185856109f8565b600191505092915050565b6000600254905090565b6000806105f36109f0565b9050610600858285610a0a565b61060b858585610a9e565b60019150509392505050565b60085481565b600061062761081d565b8015610642575060085460075461063e919061190f565b4211155b905090565b60006012905090565b610658610969565b8060078190555050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600061069261081d565b61069f57600090506106d9565b6106a761061d565b156106d4576008546007546106bc919061190f565b42116106cb57600190506106d9565b600290506106d9565b600290505b90565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61072c610969565b6107366000610b92565b565b60075481565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060048054610777906118de565b80601f01602080910402602001604051908101604052809291908181526020018280546107a3906118de565b80156107f05780601f106107c5576101008083540402835291602001916107f0565b820191906000526020600020905b8154815290600101906020018083116107d357829003601f168201915b5050505050905090565b6000806108056109f0565b9050610812818585610a9e565b600191505092915050565b6000600754421015905090565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6108b9610969565b6108c1610724565b565b6108cb610969565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361093d5760006040517f1e4fbdf700000000000000000000000000000000000000000000000000000000815260040161093491906117ae565b60405180910390fd5b61094681610b92565b50565b60096020528060005260406000206000915054906101000a900460ff1681565b6109716109f0565b73ffffffffffffffffffffffffffffffffffffffff1661098f61073e565b73ffffffffffffffffffffffffffffffffffffffff16146109ee576109b26109f0565b6040517f118cdaa70000000000000000000000000000000000000000000000000000000081526004016109e591906117ae565b60405180910390fd5b565b600033905090565b610a058383836001610c58565b505050565b6000610a16848461082a565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610a985781811015610a88578281836040517ffb8f41b2000000000000000000000000000000000000000000000000000000008152600401610a7f93929190611943565b60405180910390fd5b610a9784848484036000610c58565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610b105760006040517f96c6fd1e000000000000000000000000000000000000000000000000000000008152600401610b0791906117ae565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610b825760006040517fec442f05000000000000000000000000000000000000000000000000000000008152600401610b7991906117ae565b60405180910390fd5b610b8d838383610e2f565b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610cca5760006040517fe602df05000000000000000000000000000000000000000000000000000000008152600401610cc191906117ae565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610d3c5760006040517f94280d62000000000000000000000000000000000000000000000000000000008152600401610d3391906117ae565b60405180910390fd5b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508015610e29578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610e2091906116cd565b60405180910390a35b50505050565b610e3a83838361110b565b600073ffffffffffffffffffffffffffffffffffffffff16600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603610f4757610e9861073e565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480610f035750610ed461073e565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b610f42576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f39906119c6565b60405180910390fd5b611106565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611105576000610fa6610688565b03610ff1576000610fec576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fe390611a32565b60405180910390fd5b611104565b6001610ffb610688565b0361110357600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661108c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161108390611a9e565b60405180910390fd5b6064600a606461109a6105de565b6110a49190611aed565b6110ae9190611b1e565b6110b89190611aed565b6110c1836106dc565b1115611102576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110f990611bd2565b60405180910390fd5b5b5b5b5b505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361115d578060026000828254611151919061190f565b92505081905550611230565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156111e9578381836040517fe450d38c0000000000000000000000000000000000000000000000000000000081526004016111e093929190611943565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361127957806002600082825403925050819055506112c6565b806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161132391906116cd565b60405180910390a3505050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061136f82611344565b9050919050565b61137f81611364565b811461138a57600080fd5b50565b60008135905061139c81611376565b92915050565b6000602082840312156113b8576113b761133a565b5b60006113c68482850161138d565b91505092915050565b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61141d826113d4565b810181811067ffffffffffffffff8211171561143c5761143b6113e5565b5b80604052505050565b600061144f611330565b905061145b8282611414565b919050565b600067ffffffffffffffff82111561147b5761147a6113e5565b5b602082029050602081019050919050565b600080fd5b60006114a461149f84611460565b611445565b905080838252602082019050602084028301858111156114c7576114c661148c565b5b835b818110156114f057806114dc888261138d565b8452602084019350506020810190506114c9565b5050509392505050565b600082601f83011261150f5761150e6113cf565b5b813561151f848260208601611491565b91505092915050565b60006020828403121561153e5761153d61133a565b5b600082013567ffffffffffffffff81111561155c5761155b61133f565b5b611568848285016114fa565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156115ab578082015181840152602081019050611590565b60008484015250505050565b60006115c282611571565b6115cc818561157c565b93506115dc81856020860161158d565b6115e5816113d4565b840191505092915050565b6000602082019050818103600083015261160a81846115b7565b905092915050565b6000819050919050565b61162581611612565b811461163057600080fd5b50565b6000813590506116428161161c565b92915050565b6000806040838503121561165f5761165e61133a565b5b600061166d8582860161138d565b925050602061167e85828601611633565b9150509250929050565b60008115159050919050565b61169d81611688565b82525050565b60006020820190506116b86000830184611694565b92915050565b6116c781611612565b82525050565b60006020820190506116e260008301846116be565b92915050565b6000806000606084860312156117015761170061133a565b5b600061170f8682870161138d565b93505060206117208682870161138d565b925050604061173186828701611633565b9150509250925092565b600060ff82169050919050565b6117518161173b565b82525050565b600060208201905061176c6000830184611748565b92915050565b6000602082840312156117885761178761133a565b5b600061179684828501611633565b91505092915050565b6117a881611364565b82525050565b60006020820190506117c3600083018461179f565b92915050565b600080604083850312156117e0576117df61133a565b5b60006117ee8582860161138d565b92505060206117ff8582860161138d565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061187282611612565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036118a4576118a3611838565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806118f657607f821691505b602082108103611909576119086118af565b5b50919050565b600061191a82611612565b915061192583611612565b925082820190508082111561193d5761193c611838565b5b92915050565b6000606082019050611958600083018661179f565b61196560208301856116be565b61197260408301846116be565b949350505050565b7f4e6f204c50207365740000000000000000000000000000000000000000000000600082015250565b60006119b060098361157c565b91506119bb8261197a565b602082019050919050565b600060208201905081810360008301526119df816119a3565b9050919050565b7f4e6f74206176616c6961626c65206e6f77000000000000000000000000000000600082015250565b6000611a1c60118361157c565b9150611a27826119e6565b602082019050919050565b60006020820190508181036000830152611a4b81611a0f565b9050919050565b7f4f6e6c7920574c20506861736500000000000000000000000000000000000000600082015250565b6000611a88600d8361157c565b9150611a9382611a52565b602082019050919050565b60006020820190508181036000830152611ab781611a7b565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000611af882611612565b9150611b0383611612565b925082611b1357611b12611abe565b5b828204905092915050565b6000611b2982611612565b9150611b3483611612565b9250828202611b4281611612565b91508282048414831517611b5957611b58611838565b5b5092915050565b7f416e74692077616c652070726f74656374696f6e20666f7220574c205068617360008201527f6500000000000000000000000000000000000000000000000000000000000000602082015250565b6000611bbc60218361157c565b9150611bc782611b60565b604082019050919050565b60006020820190508181036000830152611beb81611baf565b905091905056fea26469706673582212200a5e93fbf8dc18f119fae990dd4d37271d65b713d4b353b4112c0208aab7425964736f6c63430008140033