[ { "inputs": [ { "internalType": "address", "name": "_vaultAddress", "type": "address" } ], "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": false, "internalType": "uint256", "name": "length", "type": "uint256" } ], "name": "HoldersArray", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "winner", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "lotteryAmount", "type": "uint256" } ], "name": "LotteryWinner", "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": "MIN_PARTICIPATION_BALANCE", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "TOTAL_SUPPLY", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "VAULT_THRESHOLD", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "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": [], "name": "decimals", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "excludeFromTax", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "holders", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "holdersLength", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "includeInTax", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "indexSender", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "isExcludedFromTax", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "lotteryRestriction", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "mint", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "minted", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "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": "ownerCntr", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_taxPercentage", "type": "uint256" } ], "name": "setTaxPercentage", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_vault", "type": "address" } ], "name": "setVault", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "bool", "name": "restricted", "type": "bool" } ], "name": "setlotteryRestriction", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "taxPercentage", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "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" }, { "inputs": [], "name": "vault", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "winner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" } ]
60806040526001600a555f600b5f6101000a81548160ff02191690831515021790555034801561002d575f80fd5b50604051613107380380613107833981810160405281019061004f91906104e5565b336040518060400160405280600781526020017f464f5254554e41000000000000000000000000000000000000000000000000008152506040518060400160405280600581526020017f4652544e3800000000000000000000000000000000000000000000000000000081525081600390816100cb919061074a565b5080600490816100db919061074a565b5050505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361014e575f6040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081526004016101459190610828565b60405180910390fd5b61015d816103c460201b60201c565b5060016006819055508060075f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503360095f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600d5f60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600d5f60095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600c5f60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600c5f60095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050610841565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6104b48261048b565b9050919050565b6104c4816104aa565b81146104ce575f80fd5b50565b5f815190506104df816104bb565b92915050565b5f602082840312156104fa576104f9610487565b5b5f610507848285016104d1565b91505092915050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061058b57607f821691505b60208210810361059e5761059d610547565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026106007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826105c5565b61060a86836105c5565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f61064e61064961064484610622565b61062b565b610622565b9050919050565b5f819050919050565b61066783610634565b61067b61067382610655565b8484546105d1565b825550505050565b5f90565b61068f610683565b61069a81848461065e565b505050565b5b818110156106bd576106b25f82610687565b6001810190506106a0565b5050565b601f821115610702576106d3816105a4565b6106dc846105b6565b810160208510156106eb578190505b6106ff6106f7856105b6565b83018261069f565b50505b505050565b5f82821c905092915050565b5f6107225f1984600802610707565b1980831691505092915050565b5f61073a8383610713565b9150826002028217905092915050565b61075382610510565b67ffffffffffffffff81111561076c5761076b61051a565b5b6107768254610574565b6107818282856106c1565b5f60209050601f8311600181146107b2575f84156107a0578287015190505b6107aa858261072f565b865550610811565b601f1984166107c0866105a4565b5f5b828110156107e7578489015182556001820191506020850194506020810190506107c2565b868310156108045784890151610800601f891682610713565b8355505b6001600288020188555050505b505050505050565b610822816104aa565b82525050565b5f60208201905061083b5f830184610819565b92915050565b6128b98061084e5f395ff3fe608060405234801561000f575f80fd5b50600436106101e3575f3560e01c80638da5cb5b1161010d578063cb4ca631116100a0578063e17c4c741161006f578063e17c4c7414610571578063f2fde38b1461058d578063f924eaf8146105a9578063fbfa77cf146105c7576101e3565b8063cb4ca631146104d5578063d725924414610505578063dd62ed3e14610523578063dfbf53ae14610553576101e3565b8063a6bb8650116100dc578063a6bb865014610439578063a9059cbb14610469578063ae7b6d1614610499578063c898e0b6146104b7576101e3565b80638da5cb5b146103c3578063902d55a5146103e157806395d89b41146103ff5780639da43ace1461041d576101e3565b8063313ce56711610185578063699abb3c11610154578063699abb3c1461034f57806370a082311461036b578063715018a61461039b578063771ca4e2146103a5576101e3565b8063313ce567146102db5780634f02c420146102f957806360d1259e146103175780636817031b14610333576101e3565b80631249c58b116101c15780631249c58b1461025357806318160ddd1461025d57806323b872dd1461027b5780632a11ced0146102ab576101e3565b806302bdfb5f146101e757806306fdde0314610205578063095ea7b314610223575b5f80fd5b6101ef6105e5565b6040516101fc9190611fe5565b60405180910390f35b61020d610635565b60405161021a919061206e565b60405180910390f35b61023d60048036038101906102389190612116565b6106c5565b60405161024a919061216e565b60405180910390f35b61025b6106e7565b005b61026561076f565b6040516102729190611fe5565b60405180910390f35b61029560048036038101906102909190612187565b610778565b6040516102a2919061216e565b60405180910390f35b6102c560048036038101906102c091906121d7565b6107a6565b6040516102d29190612211565b60405180910390f35b6102e36107e1565b6040516102f09190612245565b60405180910390f35b6103016107e9565b60405161030e919061216e565b60405180910390f35b610331600480360381019061032c919061225e565b6107fb565b005b61034d6004803603810190610348919061225e565b61085b565b005b610369600480360381019061036491906121d7565b6108a6565b005b6103856004803603810190610380919061225e565b6108fc565b6040516103929190611fe5565b60405180910390f35b6103a3610941565b005b6103ad610954565b6040516103ba9190611fe5565b60405180910390f35b6103cb610962565b6040516103d89190612211565b60405180910390f35b6103e961098a565b6040516103f69190611fe5565b60405180910390f35b610407610999565b604051610414919061206e565b60405180910390f35b610437600480360381019061043291906122b3565b610a29565b005b610453600480360381019061044e919061225e565b610a89565b604051610460919061216e565b60405180910390f35b610483600480360381019061047e9190612116565b610aa6565b604051610490919061216e565b60405180910390f35b6104a1610ac8565b6040516104ae9190611fe5565b60405180910390f35b6104bf610ace565b6040516104cc9190611fe5565b60405180910390f35b6104ef60048036038101906104ea919061225e565b610ad4565b6040516104fc919061216e565b60405180910390f35b61050d610af1565b60405161051a9190612211565b60405180910390f35b61053d600480360381019061053891906122f1565b610b16565b60405161054a9190611fe5565b60405180910390f35b61055b610b98565b6040516105689190612211565b60405180910390f35b61058b6004803603810190610586919061225e565b610bbd565b005b6105a760048036038101906105a2919061225e565b610c1c565b005b6105b1610ca0565b6040516105be9190611fe5565b60405180910390f35b6105cf610cad565b6040516105dc9190612211565b60405180910390f35b5f6105ee610cd2565b7fe363f8c7d967be2b19c27abaa22b173143122aeb3b083c0b1bae0cb26e1a69926010805490506040516106229190611fe5565b60405180910390a1601080549050905090565b6060600380546106449061235c565b80601f01602080910402602001604051908101604052809291908181526020018280546106709061235c565b80156106bb5780601f10610692576101008083540402835291602001916106bb565b820191905f5260205f20905b81548152906001019060200180831161069e57829003601f168201915b5050505050905090565b5f806106cf610d59565b90506106dc818585610d60565b600191505092915050565b6106ef610cd2565b600b5f9054906101000a900460ff161561073e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610735906123fc565b60405180910390fd5b610753336a52b7d2dcc80cd2e4000000610d72565b6001600b5f6101000a81548160ff021916908315150217905550565b5f600254905090565b5f80610782610d59565b905061078f858285610df1565b61079a858585610e83565b60019150509392505050565b601081815481106107b5575f80fd5b905f5260205f20015f915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f6012905090565b600b5f9054906101000a900460ff1681565b610803610cd2565b6001600c5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b610863610cd2565b8060075f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6108ae610cd2565b600a8111156108f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108e990612464565b60405180910390fd5b80600a8190555050565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610949610cd2565b6109525f6116ae565b565b69021e19e0c9bab240000081565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6a52b7d2dcc80cd2e400000081565b6060600480546109a89061235c565b80601f01602080910402602001604051908101604052809291908181526020018280546109d49061235c565b8015610a1f5780601f106109f657610100808354040283529160200191610a1f565b820191905f5260205f20905b815481529060010190602001808311610a0257829003601f168201915b5050505050905090565b610a31610cd2565b80600d5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b600d602052805f5260405f205f915054906101000a900460ff1681565b5f80610ab0610d59565b9050610abd818585610e83565b600191505092915050565b600a5481565b60115481565b600c602052805f5260405f205f915054906101000a900460ff1681565b60095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610bc5610cd2565b5f600c5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b610c24610cd2565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610c94575f6040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600401610c8b9190612211565b60405180910390fd5b610c9d816116ae565b50565b681b1ae4d6e2ef50000081565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610cda610d59565b73ffffffffffffffffffffffffffffffffffffffff16610cf8610962565b73ffffffffffffffffffffffffffffffffffffffff1614610d5757610d1b610d59565b6040517f118cdaa7000000000000000000000000000000000000000000000000000000008152600401610d4e9190612211565b60405180910390fd5b565b5f33905090565b610d6d8383836001611771565b505050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610de2575f6040517fec442f05000000000000000000000000000000000000000000000000000000008152600401610dd99190612211565b60405180910390fd5b610ded5f8383611940565b5050565b5f610dfc8484610b16565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610e7d5781811015610e6e578281836040517ffb8f41b2000000000000000000000000000000000000000000000000000000008152600401610e6593929190612482565b60405180910390fd5b610e7c84848484035f611771565b5b50505050565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161480610f2a575060095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b15610f6a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f6190612501565b60405180910390fd5b5f600c5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1661101057610fe16064610fd3600a5485611b5990919063ffffffff16565b611b6e90919063ffffffff16565b905061100f8460075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683611b83565b5b61102d84846110288486611c7390919063ffffffff16565b611b83565b681b1ae4d6e2ef500000611040856108fc565b1080156110935750600e5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b156114ef57600f5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054601181905550601060016010805490506110f0919061254c565b815481106111015761110061257f565b5b905f5260205f20015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166010601154815481106111555761115461257f565b5b905f5260205f20015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16036112355760108054806111aa576111a96125ac565b5b600190038181905f5260205f20015f6101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905590555f600e5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506114ee565b5f6010600160108054905061124a919061254c565b8154811061125b5761125a61257f565b5b905f5260205f20015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905060106011548154811061129b5761129a61257f565b5b905f5260205f20015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601060016010805490506112d7919061254c565b815481106112e8576112e761257f565b5b905f5260205f20015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550806010601154815481106113445761134361257f565b5b905f5260205f20015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600f5f601060016010805490506113a0919061254c565b815481106113b1576113b061257f565b5b905f5260205f20015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054600f5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506010805480611466576114656125ac565b5b600190038181905f5260205f20015f6101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905590555f600e5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550505b5b681b1ae4d6e2ef500000611502846108fc565b101580156115575750600e5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561166557601083908060018154018082558091505060019003905f5260205f20015f9091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600e5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001601080549050611623919061254c565b600f5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b69021e19e0c9bab240000061169a60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166108fc565b106116a8576116a7611c88565b5b50505050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036117e1575f6040517fe602df050000000000000000000000000000000000000000000000000000000081526004016117d89190612211565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611851575f6040517f94280d620000000000000000000000000000000000000000000000000000000081526004016118489190612211565b60405180910390fd5b8160015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550801561193a578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516119319190611fe5565b60405180910390a35b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611990578060025f82825461198491906125d9565b92505081905550611a5e565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015611a19578381836040517fe450d38c000000000000000000000000000000000000000000000000000000008152600401611a1093929190612482565b60405180910390fd5b8181035f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611aa5578060025f8282540392505081905550611aef565b805f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611b4c9190611fe5565b60405180910390a3505050565b5f8183611b66919061260c565b905092915050565b5f8183611b7b919061267a565b905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611bf3575f6040517f96c6fd1e000000000000000000000000000000000000000000000000000000008152600401611bea9190612211565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611c63575f6040517fec442f05000000000000000000000000000000000000000000000000000000008152600401611c5a9190612211565b60405180910390fd5b611c6e838383611940565b505050565b5f8183611c80919061254c565b905092915050565b611c90611f74565b5f60108054905011611cd7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cce906126f4565b60405180910390fd5b5f6010805490504244604051602001611cf1929190612732565b604051602081830303815290604052805190602001205f1c611d13919061275d565b90505f611d4060075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166108fc565b905069021e19e0c9bab2400000811015611d8f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d86906127fd565b60405180910390fd5b5f81905060108381548110611da757611da661257f565b5b905f5260205f20015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660085f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f1515600d5f60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16151503611f5e57611eea60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660108581548110611ebc57611ebb61257f565b5b905f5260205f20015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683610e83565b60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f275eaacf9e506f9c68b251c2f97cf723c4fb9a3b94e42a1dfb581543c135f0c082604051611f519190611fe5565b60405180910390a2611f67565b611f66611c88565b5b505050611f72611fc3565b565b600260065403611fb9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fb090612865565b60405180910390fd5b6002600681905550565b6001600681905550565b5f819050919050565b611fdf81611fcd565b82525050565b5f602082019050611ff85f830184611fd6565b92915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61204082611ffe565b61204a8185612008565b935061205a818560208601612018565b61206381612026565b840191505092915050565b5f6020820190508181035f8301526120868184612036565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6120bb82612092565b9050919050565b6120cb816120b1565b81146120d5575f80fd5b50565b5f813590506120e6816120c2565b92915050565b6120f581611fcd565b81146120ff575f80fd5b50565b5f81359050612110816120ec565b92915050565b5f806040838503121561212c5761212b61208e565b5b5f612139858286016120d8565b925050602061214a85828601612102565b9150509250929050565b5f8115159050919050565b61216881612154565b82525050565b5f6020820190506121815f83018461215f565b92915050565b5f805f6060848603121561219e5761219d61208e565b5b5f6121ab868287016120d8565b93505060206121bc868287016120d8565b92505060406121cd86828701612102565b9150509250925092565b5f602082840312156121ec576121eb61208e565b5b5f6121f984828501612102565b91505092915050565b61220b816120b1565b82525050565b5f6020820190506122245f830184612202565b92915050565b5f60ff82169050919050565b61223f8161222a565b82525050565b5f6020820190506122585f830184612236565b92915050565b5f602082840312156122735761227261208e565b5b5f612280848285016120d8565b91505092915050565b61229281612154565b811461229c575f80fd5b50565b5f813590506122ad81612289565b92915050565b5f80604083850312156122c9576122c861208e565b5b5f6122d6858286016120d8565b92505060206122e78582860161229f565b9150509250929050565b5f80604083850312156123075761230661208e565b5b5f612314858286016120d8565b9250506020612325858286016120d8565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061237357607f821691505b6020821081036123865761238561232f565b5b50919050565b7f4d696e742066756e6374696f6e2063616e206f6e6c792062652063616c6c65645f8201527f206f6e6365000000000000000000000000000000000000000000000000000000602082015250565b5f6123e6602583612008565b91506123f18261238c565b604082019050919050565b5f6020820190508181035f830152612413816123da565b9050919050565b7f5461782070657263656e746167652065786365656473203130250000000000005f82015250565b5f61244e601a83612008565b91506124598261241a565b602082019050919050565b5f6020820190508181035f83015261247b81612442565b9050919050565b5f6060820190506124955f830186612202565b6124a26020830185611fd6565b6124af6040830184611fd6565b949350505050565b7f43616e6e6f742073656e6420746f207661756c74206f72206f776e65720000005f82015250565b5f6124eb601d83612008565b91506124f6826124b7565b602082019050919050565b5f6020820190508181035f830152612518816124df565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61255682611fcd565b915061256183611fcd565b92508282039050818111156125795761257861251f565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603160045260245ffd5b5f6125e382611fcd565b91506125ee83611fcd565b92508282019050808211156126065761260561251f565b5b92915050565b5f61261682611fcd565b915061262183611fcd565b925082820261262f81611fcd565b915082820484148315176126465761264561251f565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61268482611fcd565b915061268f83611fcd565b92508261269f5761269e61264d565b5b828204905092915050565b7f4e6f20686f6c64657273207769746820656e6f75676820746f6b656e730000005f82015250565b5f6126de601d83612008565b91506126e9826126aa565b602082019050919050565b5f6020820190508181035f83015261270b816126d2565b9050919050565b5f819050919050565b61272c61272782611fcd565b612712565b82525050565b5f61273d828561271b565b60208201915061274d828461271b565b6020820191508190509392505050565b5f61276782611fcd565b915061277283611fcd565b9250826127825761278161264d565b5b828206905092915050565b7f5661756c742062616c616e6365206973206e6f7420656e6f75676820666f72205f8201527f6c6f747465727900000000000000000000000000000000000000000000000000602082015250565b5f6127e7602783612008565b91506127f28261278d565b604082019050919050565b5f6020820190508181035f830152612814816127db565b9050919050565b7f5265656e7472616e637947756172643a207265656e7472616e742063616c6c005f82015250565b5f61284f601f83612008565b915061285a8261281b565b602082019050919050565b5f6020820190508181035f83015261287c81612843565b905091905056fea264697066735822122081ad0d9d6074226f9db8bd33d185f18cae6ea4d21f8d02ab7acb536e34588a9b64736f6c634300081900330000000000000000000000001efcd4ca52dfee56f28079d42118e8aa54004f4e