[ { "inputs": [], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "name": "OwnableInvalidOwner", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "OwnableUnonlyOwnerAccount", "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": "amountETH", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "amountToken", "type": "uint256" } ], "name": "AutoLiquify", "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": "ManualSwap", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "_maxTxAmount", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "_walletMax", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "target", "type": "address" } ], "name": "addDapp", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "holder", "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": "spender", "type": "address" } ], "name": "approveMax", "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": "newinPeriod", "type": "uint256" }, { "internalType": "uint256", "name": "newMinDistribution", "type": "uint256" } ], "name": "changeDistributionCriteria", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "gas", "type": "uint256" } ], "name": "changeDistributorSettings", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newLiquidityReceiver", "type": "address" }, { "internalType": "address", "name": "newMarketingWallet", "type": "address" } ], "name": "changeFeeReceivers", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "newLiqFeeThou", "type": "uint256" }, { "internalType": "uint256", "name": "newRewardFeeThou", "type": "uint256" }, { "internalType": "uint256", "name": "newmktFee", "type": "uint256" }, { "internalType": "uint256", "name": "extraSellFee", "type": "uint256" } ], "name": "changeFees", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "holder", "type": "address" }, { "internalType": "bool", "name": "exempt", "type": "bool" } ], "name": "changeIsDividendExempt", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "holder", "type": "address" }, { "internalType": "bool", "name": "exempt", "type": "bool" } ], "name": "changeIsFeeExempt", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "holder", "type": "address" }, { "internalType": "bool", "name": "exempt", "type": "bool" } ], "name": "changeIsTxLimitExempt", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_address", "type": "address" }, { "internalType": "bool", "name": "status", "type": "bool" } ], "name": "changePair", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bool", "name": "enableSwapBack", "type": "bool" }, { "internalType": "uint256", "name": "newSwapBackLimit", "type": "uint256" }, { "internalType": "bool", "name": "swapByLimitOnly", "type": "bool" } ], "name": "changeSwapBackSettings", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bool", "name": "status", "type": "bool" } ], "name": "changeTakeFeeOnBuy", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bool", "name": "status", "type": "bool" } ], "name": "changeTakeFeeOnSell", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bool", "name": "status", "type": "bool" } ], "name": "changeTakeFeeOnTransfer", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "checkPendingDividends", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "claimDividend", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "decimals", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "stateMutability": "pure", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "devidendWL", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "dividendDistributor", "outputs": [ { "internalType": "contract DividendDistributor", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "feeOnBuys", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "feeOnSells", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "feeWL", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getCirculatingSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "isPair", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "lpFee", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "lpFeeReceiver", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "mktFee", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "mktFeeReceiver", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "pure", "type": "function" }, { "inputs": [], "name": "openTrading", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "owner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "pair", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "gas", "type": "uint256" } ], "name": "processDividends", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "tokenAddress", "type": "address" }, { "internalType": "uint256", "name": "tokens", "type": "uint256" } ], "name": "removeERC20", "outputs": [ { "internalType": "bool", "name": "success", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "amountPercentage", "type": "uint256" } ], "name": "removeEther", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "restrictWhales", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "router", "outputs": [ { "internalType": "contract IDEXRouter", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "rwdsFee", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "setMinBalanceForDividends", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newRouter", "type": "address" } ], "name": "setRouterAddress", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "newLimit", "type": "uint256" } ], "name": "setTxLimit", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "newLimit", "type": "uint256" } ], "name": "setWalletLimit", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "swapAndLiquifyByLimitOnly", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "swapAndLiquifyEnabled", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "swapThreshold", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "pure", "type": "function" }, { "inputs": [], "name": "takeFeeOnBuy", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "takeFeeOnSell", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "takeFeeOnTransfer", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "tradingAllowed", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "recipient", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "transfer", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "address", "name": "recipient", "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" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "txLmtWL", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "stateMutability": "payable", "type": "receive" } ]
6080604052600180546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d179055620000386012600a620006f5565b6200004b9066017e9d8602b40062000706565b6004556103e8600454600a62000062919062000706565b6200006e919062000720565b6005556103e8600454600a62000085919062000706565b62000091919062000720565b6006556007805461ffff19166001179055600d80546201010162ffffff199091161790556000600e819055610122600f55600a601055601181905560128190556017556018805462ffff0019166101001790556004546107d090620000f890600362000706565b62000104919062000720565b6019553480156200011457600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506002805473774d7425a8f866d5d6056f8c555f0524fa8ef59c6001600160a01b03199182168117909255600380548216909217909155600154601380546001600160a01b039092169190921681179091556040805163c45a015560e01b815290516000929163c45a01559160048083019260209291908290030181865afa158015620001e6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200020c919062000743565b6001600160a01b031663c9c65396601360009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200026e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000294919062000743565b6040516001600160e01b031960e084901b1681526001600160a01b0390911660048201523060248201526044016020604051808303816000875af1158015620002e1573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000307919062000743565b601480546001600160a01b0319166001600160a01b038381169182179092556000908152601560209081526040808320805460ff191660011790553083526009825280832060135490941683529290528190206000199055519091506200036e90620005d4565b604051809103906000f0801580156200038b573d6000803e3d6000fd5b50601680546001600160a01b0319166001600160a01b03929092169190911790556004546000906103e890620003c390600562000706565b620003cf919062000720565b601654604051639d7ceafb60e01b8152600481018390529192506001600160a01b031690639d7ceafb90602401600060405180830381600087803b1580156200041757600080fd5b505af11580156200042c573d6000803e3d6000fd5b5050336000818152600a602090815260408083208054600160ff199182168117909255308086528386208054831684179055868652600b85528386208054831684179055601480546001600160a01b03908116885285882080548516861790558c811680895286892080548616871790559154168752600c909552838620805483168417905593855282852080548216831790559484528184208054861682179055918352822080548416821790557f45117a726ea4f344045dc210793664a28d2d320b7e03f6bffdae553d24c3586c80548416821790559080527f13649b2456f1b42fef0f0040b3aaeabcd21a76a0f3f5defd4f583839455116e880549092161790555050601054600f54600e546200055492916200054d9190620005bd565b90620005bd565b6011819055620005679061015462000775565b60125560045433600081815260086020908152604080832085905551938452919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a350506200078b565b6000620005cb828462000775565b90505b92915050565b610c6f8062002e5c83390190565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620006395781600019048211156200061d576200061d620005e2565b808516156200062b57918102915b93841c9390800290620005fd565b509250929050565b6000826200065257506001620005ce565b816200066157506000620005ce565b81600181146200067a57600281146200068557620006a5565b6001915050620005ce565b60ff841115620006995762000699620005e2565b50506001821b620005ce565b5060208310610133831016604e8410600b8410161715620006ca575081810a620005ce565b620006d68383620005f8565b8060001904821115620006ed57620006ed620005e2565b029392505050565b6000620005cb60ff84168362000641565b8082028115828204841417620005ce57620005ce620005e2565b6000826200073e57634e487b7160e01b600052601260045260246000fd5b500490565b6000602082840312156200075657600080fd5b81516001600160a01b03811681146200076e57600080fd5b9392505050565b80820180821115620005ce57620005ce620005e2565b6126c1806200079b6000396000f3fe6080604052600436106103b15760003560e01c80637d1db4a5116101e7578063a9f7864b1161010d578063e510983d116100a0578063f1d5f5171161006f578063f1d5f51714610b35578063f2fde38b14610b55578063f887ea4014610b75578063fabe628314610b9557600080fd5b8063e510983d14610aba578063e5e31b1314610ada578063ed9442f614610b0a578063f0fc6bca14610b2057600080fd5b8063c9567bf9116100dc578063c9567bf914610a0f578063da00097d14610a24578063dd62ed3e14610a44578063dedf9f4f14610a8a57600080fd5b8063a9f7864b14610995578063af6727ed146109b5578063bad3ea6a146109d5578063c065ae68146109f557600080fd5b806395d89b4111610185578063a1780c1811610154578063a1780c1814610920578063a3a2e89e14610935578063a8aa1b3114610955578063a9059cbb1461097557600080fd5b806395d89b411461088457806399b9bfc5146108b05780639d7ceafb146108e05780639fe9f4691461090057600080fd5b806382115626116101c157806382115626146107f65780638637b069146108265780638da5cb5b146108465780638fe0a6221461086457600080fd5b80637d1db4a5146107aa5780637f3b89bc146107c0578063807c2d9c146107e057600080fd5b8063449bb27d116102d7578063650c42261161026a578063715018a611610239578063715018a61461073557806371bb96e71461074a578063773fcb5c1461076a578063787a051b1461078a57600080fd5b8063650c4226146106aa5780636a75d06b146106ca578063704ce43e146106e957806370a08231146106ff57600080fd5b806353371be0116102a657806353371be014610635578063571ac8b014610654578063590b5f5f146106745780635c85974f1461068a57600080fd5b8063449bb27d146105c657806344de2e4c146105dc578063479f66d8146105f65780634a74bb021461061657600080fd5b806327b7ca5f1161034f578063399c79761161031e578063399c79761461055057806341cb87fc1461057057806342409b4c1461059057806342626899146105a657600080fd5b806327b7ca5f146104df5780632b112e49146104ff578063313ce5671461051457806334c708891461053057600080fd5b806309d2d0bc1161038b57806309d2d0bc1461045057806318160ddd146104885780631f2c80f11461049d57806323b872dd146104bf57600080fd5b80630445b667146103bd57806306fdde03146103e6578063095ea7b31461042057600080fd5b366103b857005b600080fd5b3480156103c957600080fd5b506103d360195481565b6040519081526020015b60405180910390f35b3480156103f257600080fd5b506040805180820190915260088152672832b8329022aa2360c11b60208201525b6040516103dd919061229a565b34801561042c57600080fd5b5061044061043b3660046122fd565b610bb5565b60405190151581526020016103dd565b34801561045c57600080fd5b50600254610470906001600160a01b031681565b6040516001600160a01b0390911681526020016103dd565b34801561049457600080fd5b506004546103d3565b3480156104a957600080fd5b506104bd6104b8366004612329565b610c22565b005b3480156104cb57600080fd5b506104406104da366004612362565b610c58565b3480156104eb57600080fd5b506104bd6104fa3660046123a3565b610d1a565b34801561050b57600080fd5b506103d3610d46565b34801561052057600080fd5b50604051601281526020016103dd565b34801561053c57600080fd5b506104bd61054b3660046123ce565b610db7565b34801561055c57600080fd5b506104bd61056b366004612410565b610df5565b34801561057c57600080fd5b506104bd61058b3660046123a3565b610e28565b34801561059c57600080fd5b506103d360105481565b3480156105b257600080fd5b50600d546104409062010000900460ff1681565b3480156105d257600080fd5b506103d360125481565b3480156105e857600080fd5b506007546104409060ff1681565b34801561060257600080fd5b506104bd61061136600461243e565b6110dc565b34801561062257600080fd5b5060185461044090610100900460ff1681565b34801561064157600080fd5b5060075461044090610100900460ff1681565b34801561066057600080fd5b5061044061066f3660046123a3565b6110f8565b34801561068057600080fd5b506103d360115481565b34801561069657600080fd5b506104bd6106a536600461243e565b611106565b3480156106b657600080fd5b506104bd6106c5366004612457565b611159565b3480156106d657600080fd5b50600d5461044090610100900460ff1681565b3480156106f557600080fd5b506103d3600e5481565b34801561070b57600080fd5b506103d361071a3660046123a3565b6001600160a01b031660009081526008602052604090205490565b34801561074157600080fd5b506104bd61119d565b34801561075657600080fd5b506104bd61076536600461243e565b6111b1565b34801561077657600080fd5b506104bd610785366004612410565b61121e565b34801561079657600080fd5b506104bd6107a536600461243e565b61132c565b3480156107b657600080fd5b506103d360055481565b3480156107cc57600080fd5b506104bd6107db366004612489565b61137c565b3480156107ec57600080fd5b506103d360065481565b34801561080257600080fd5b506104406108113660046123a3565b600c6020526000908152604090205460ff1681565b34801561083257600080fd5b506104406108413660046122fd565b61139e565b34801561085257600080fd5b506000546001600160a01b0316610470565b34801561087057600080fd5b506104bd61087f366004612489565b611471565b34801561089057600080fd5b50604080518082019091526003815262282a2360e91b6020820152610413565b3480156108bc57600080fd5b506104406108cb3660046123a3565b600a6020526000908152604090205460ff1681565b3480156108ec57600080fd5b506104bd6108fb36600461243e565b61148c565b34801561090c57600080fd5b506103d361091b3660046123a3565b6114c5565b34801561092c57600080fd5b506104bd611534565b34801561094157600080fd5b506104bd610950366004612410565b611544565b34801561096157600080fd5b50601454610470906001600160a01b031681565b34801561098157600080fd5b506104406109903660046122fd565b611577565b3480156109a157600080fd5b506104bd6109b03660046124a6565b611584565b3480156109c157600080fd5b50600354610470906001600160a01b031681565b3480156109e157600080fd5b50601654610470906001600160a01b031681565b348015610a0157600080fd5b50600d546104409060ff1681565b348015610a1b57600080fd5b506104bd6115c4565b348015610a3057600080fd5b506018546104409062010000900460ff1681565b348015610a5057600080fd5b506103d3610a5f366004612329565b6001600160a01b03918216600090815260096020908152604080832093909416825291909152205490565b348015610a9657600080fd5b50610440610aa53660046123a3565b600b6020526000908152604090205460ff1681565b348015610ac657600080fd5b506104bd610ad5366004612489565b6115dd565b348015610ae657600080fd5b50610440610af53660046123a3565b60156020526000908152604090205460ff1681565b348015610b1657600080fd5b506103d3600f5481565b348015610b2c57600080fd5b506104bd611601565b348015610b4157600080fd5b506104bd610b5036600461243e565b611660565b348015610b6157600080fd5b506104bd610b703660046123a3565b6116aa565b348015610b8157600080fd5b50601354610470906001600160a01b031681565b348015610ba157600080fd5b506104bd610bb0366004612410565b6116e5565b3360008181526009602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610c109086815260200190565b60405180910390a35060015b92915050565b610c2a611718565b600280546001600160a01b039384166001600160a01b03199182161790915560038054929093169116179055565b6001600160a01b038316600090815260096020908152604080832033845290915281205460001914610d05576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387166000908152600982528381203382529091529190912054610ce0918490611745565b6001600160a01b03851660009081526009602090815260408083203384529091529020555b610d10848484611771565b90505b9392505050565b610d22611718565b610d2d81600161121e565b610d388160016116e5565b610d43816001611544565b50565b60086020527f5eff886ea0ce6ca488a3d6e336d6c0f75f46d19b42c06ce5ee98e42c96d256c75461dead60009081527f046fee3d77c34a6c5e10c3be6dc4b132c30449dbf4f0bc07684896dd09334299546004549192610db2929091610dac9190611c05565b90611c05565b905090565b610dbf611718565b60188054601993909355901515620100000262ff000019931515610100029390931662ffff001990921691909117919091179055565b610dfd611718565b6001600160a01b03919091166000908152601560205260409020805460ff1916911515919091179055565b610e30611718565b60008190506000816001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e75573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e9991906124c8565b90506000816001600160a01b031663e6a4390530856001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610eeb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f0f91906124c8565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381865afa158015610f5a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f7e91906124c8565b90506001600160a01b03811661107457816001600160a01b031663c9c6539630856001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610fdc573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061100091906124c8565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af115801561104d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061107191906124c8565b90505b6001600160a01b0390811660009081526015602090815260408083208054600160ff199182168117909255600c84528285208054821683179055600b909352922080549091169091179055601380546001600160a01b03191693909116929092179091555050565b6110e4611718565b620b71b081106110f357600080fd5b601755565b6000610c1c82600019610bb5565b61110e611718565b60058110156111385760405162461bcd60e51b815260040161112f906124e5565b60405180910390fd5b6103e8816004546111499190612541565b6111539190612558565b60055550565b611161611718565b600e8490556010839055600f8290556111848361117e8685611c11565b90611c11565b601181905561119490829061257a565b60125550505050565b6111a5611718565b6111af6000611c1d565b565b6111b9611718565b6016546040516001624d3b8760e01b03198152600481018390526001600160a01b039091169063ffb2c479906024015b600060405180830381600087803b15801561120357600080fd5b505af1158015611217573d6000803e3d6000fd5b5050505050565b611226611718565b6001600160a01b03821660009081526015602052604090205460ff161561124b575060015b6001600160a01b0382166000908152600c60205260409020805460ff191682158015919091179091556112e357601654604051630a5b654b60e11b81526001600160a01b03848116600483015260006024830152909116906314b6ca96906044015b600060405180830381600087803b1580156112c757600080fd5b505af11580156112db573d6000803e3d6000fd5b505050505050565b6016546001600160a01b0383811660008181526008602052604090819020549051630a5b654b60e11b8152600481019290925260248201529116906314b6ca96906044016112ad565b611334611718565b47336108fc60646113458585612541565b61134f9190612558565b6040518115909202916000818181858888f19350505050158015611377573d6000803e3d6000fd5b505050565b611384611718565b600d80549115156101000261ff0019909216919091179055565b60006113a8611718565b306001600160a01b038416036114005760405162461bcd60e51b815260206004820152601c60248201527f43616e742072656d6f766520746865206e617469766520746f6b656e00000000604482015260640161112f565b60405163a9059cbb60e01b8152336004820152602481018390526001600160a01b0384169063a9059cbb906044016020604051808303816000875af115801561144d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d13919061258d565b611479611718565b600d805460ff1916911515919091179055565b611494611718565b601654604051639d7ceafb60e01b8152600481018390526001600160a01b0390911690639d7ceafb906024016111e9565b60165460405163051fa63360e31b81526001600160a01b03838116600483015260009216906328fd319890602401602060405180830381865afa158015611510573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c1c91906125aa565b61153c611718565b6111af611c6d565b61154c611718565b6001600160a01b03919091166000908152600a60205260409020805460ff1916911515919091179055565b6000610d13338484611771565b61158c611718565b6016546040516316a4744b60e11b815260048101849052602481018390526001600160a01b0390911690632d48e896906044016112ad565b6115cc611718565b6007805461ff001916610100179055565b6115e5611718565b600d8054911515620100000262ff000019909216919091179055565b601654604051630afbf02f60e11b81523360048201526001600160a01b03909116906315f7e05e90602401600060405180830381600087803b15801561164657600080fd5b505af115801561165a573d6000803e3d6000fd5b50505050565b611668611718565b60058110156116895760405162461bcd60e51b815260040161112f906124e5565b6103e88160045461169a9190612541565b6116a49190612558565b60065550565b6116b2611718565b6001600160a01b0381166116dc57604051631e4fbdf760e01b81526000600482015260240161112f565b610d4381611c1d565b6116ed611718565b6001600160a01b03919091166000908152600b60205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146111af57604051634426e76960e11b815233600482015260240161112f565b600081848411156117695760405162461bcd60e51b815260040161112f919061229a565b505050900390565b60185460009060ff16156117915761178a84848461202c565b9050610d13565b6001600160a01b0384166000908152600a602052604090205460ff166117ff57600754610100900460ff166117ff5760405162461bcd60e51b8152602060048201526014602482015273151c98591a5b99c81b9bdd081bdc195b881e595d60621b604482015260640161112f565b6005548211158061182857506001600160a01b0384166000908152600b602052604090205460ff165b6118685760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b604482015260640161112f565b6001600160a01b03841660009081526015602052604090205460ff16158015611894575060185460ff16155b80156118a75750601854610100900460ff165b80156118c457506019543060009081526008602052604090205410155b156118d1576118d1611c6d565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038716600090815260089091529190912054611923918490611745565b6001600160a01b038086166000908152600860209081526040808320949094559186168152600b909152205460ff16158015611961575060075460ff165b15611997576006546001600160a01b03841660009081526008602052604090205461198c9084611c11565b111561199757600080fd5b6001600160a01b0384166000908152600a602052604081205460ff161580156119d957506001600160a01b0384166000908152600a602052604090205460ff16155b6119e357826119ee565b6119ee858585612112565b6001600160a01b038516600090815260086020526040902054909150611a149082611c11565b6001600160a01b038086166000908152600860209081526040808320949094559188168152600c909152205460ff16611ab8576016546001600160a01b0386811660008181526008602052604090819020549051630a5b654b60e11b8152600481019290925260248201529116906314b6ca9690604401600060405180830381600087803b158015611aa557600080fd5b505af1925050508015611ab6575060015b505b6001600160a01b0384166000908152600c602052604090205460ff16611b49576016546001600160a01b0385811660008181526008602052604090819020549051630a5b654b60e11b8152600481019290925260248201529116906314b6ca9690604401600060405180830381600087803b158015611b3657600080fd5b505af1925050508015611b47575060015b505b6016546017546040516001624d3b8760e01b031981526001600160a01b039092169163ffb2c47991611b819160040190815260200190565b600060405180830381600087803b158015611b9b57600080fd5b505af1925050508015611bac575060015b50836001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611bf291815260200190565b60405180910390a3506001949350505050565b6000610d1382846125c3565b6000610d13828461257a565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6018805460ff1916600117905530600090815260086020526040812054601154600e54919291611cae91600291611ca8919082908790612282565b9061228e565b90506000611cbc8383611c05565b60408051600280825260608201835292935060009290916020830190803683370190505090503081600081518110611cf657611cf66125d6565b6001600160a01b03928316602091820292909201810191909152601354604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611d4f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d7391906124c8565b81600181518110611d8657611d866125d6565b6001600160a01b03928316602091820292909201015260135460405163791ac94760e01b815291169063791ac94790611dcc9085906000908690309042906004016125ec565b600060405180830381600087803b158015611de657600080fd5b505af1158015611dfa573d6000803e3d6000fd5b5050600e5447925060009150611e1e90611e1590600261228e565b60115490611c05565b90506000611e406002611ca884611ca8600e548861228290919063ffffffff16565b90506000611e5d83611ca86010548761228290919063ffffffff16565b90506000611e7a84611ca8600f548861228290919063ffffffff16565b9050601660009054906101000a90046001600160a01b03166001600160a01b031663d0e30db0836040518263ffffffff1660e01b81526004016000604051808303818588803b158015611ecc57600080fd5b505af193505050508015611ede575060015b506003546040516000916001600160a01b03169061753090849084818181858888f193505050503d8060008114611f31576040519150601f19603f3d011682016040523d82523d6000602084013e611f36565b606091505b506000925050891590506120165760135460025460405163f305d71960e01b8152306004820152602481018c905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990869060c40160606040518083038185885af1158015611fb4573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611fd9919061265d565b505060408051868152602081018c90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b50506018805460ff191690555050505050505050565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038616600090815260089091529182205461207d918490611745565b6001600160a01b0380861660009081526008602052604080822093909355908516815220546120ac9083611c11565b6001600160a01b0380851660008181526008602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906121009086815260200190565b60405180910390a35060019392505050565b6001600160a01b038216600090815260156020526040812054819060ff1680156121435750600d54610100900460ff165b1561214d57506012545b6001600160a01b03851660009081526015602052604090205460ff1680156121775750600d5460ff165b1561218157506011545b6001600160a01b03851660009081526015602052604090205460ff161580156121c357506001600160a01b03841660009081526015602052604090205460ff16155b156121e657600d5462010000900460ff16156121e257506012546121e6565b5060005b60006121f86103e8611ca88685612282565b306000908152600860205260409020549091506122159082611c11565b30600081815260086020526040908190209290925590516001600160a01b038816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906122669085815260200190565b60405180910390a36122788482611c05565b9695505050505050565b6000610d138284612541565b6000610d138284612558565b600060208083528351808285015260005b818110156122c7578581018301518582016040015282016122ab565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610d4357600080fd5b6000806040838503121561231057600080fd5b823561231b816122e8565b946020939093013593505050565b6000806040838503121561233c57600080fd5b8235612347816122e8565b91506020830135612357816122e8565b809150509250929050565b60008060006060848603121561237757600080fd5b8335612382816122e8565b92506020840135612392816122e8565b929592945050506040919091013590565b6000602082840312156123b557600080fd5b8135610d13816122e8565b8015158114610d4357600080fd5b6000806000606084860312156123e357600080fd5b83356123ee816123c0565b9250602084013591506040840135612405816123c0565b809150509250925092565b6000806040838503121561242357600080fd5b823561242e816122e8565b91506020830135612357816123c0565b60006020828403121561245057600080fd5b5035919050565b6000806000806080858703121561246d57600080fd5b5050823594602084013594506040840135936060013592509050565b60006020828403121561249b57600080fd5b8135610d13816123c0565b600080604083850312156124b957600080fd5b50508035926020909101359150565b6000602082840312156124da57600080fd5b8151610d13816122e8565b60208082526026908201527f57616c6c6574204c696d6974206e6565647320746f206265206174206c6561736040820152657420302e352560d01b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b8082028115828204841417610c1c57610c1c61252b565b60008261257557634e487b7160e01b600052601260045260246000fd5b500490565b80820180821115610c1c57610c1c61252b565b60006020828403121561259f57600080fd5b8151610d13816123c0565b6000602082840312156125bc57600080fd5b5051919050565b81810381811115610c1c57610c1c61252b565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561263c5784516001600160a01b031683529383019391830191600101612617565b50506001600160a01b03969096166060850152505050608001529392505050565b60008060006060848603121561267257600080fd5b835192506020840151915060408401519050925092509256fea2646970667358221220789a2d0de00f511ca4f95f995a657505672bda44b6861b2cb9c7b96d4779da4564736f6c6343000813003360806040526ec097ce7bc90715b34b9f1000000000600a5562015180600b55678ac7230489e80000600c556000600d5534801561003b57600080fd5b5060008054336001600160a01b03199182168117835560018054909216179055610c0490819061006b90396000f3fe6080604052600436106100fe5760003560e01c8063997664d711610095578063d0e30db011610064578063d0e30db01461029d578063e2d2e219146102a5578063efca2eed146102bb578063ffb2c479146102d1578063ffd49c84146102f157600080fd5b8063997664d7146101f05780639d7ceafb14610206578063c9d6567e14610226578063ce7c2ac21461024657600080fd5b80632d48e896116100d15780632d48e8961461018e5780633a98ef39146101ae5780634fab0ae8146101c457806396e0eb95146101da57600080fd5b806311ce023d1461010357806314b6ca961461012c57806315f7e05e1461014e57806328fd31981461016e575b600080fd5b34801561010f57600080fd5b50610119600a5481565b6040519081526020015b60405180910390f35b34801561013857600080fd5b5061014c610147366004610a94565b610307565b005b34801561015a57600080fd5b5061014c610169366004610abe565b6104c6565b34801561017a57600080fd5b50610119610189366004610abe565b61056c565b34801561019a57600080fd5b5061014c6101a9366004610ad9565b6105f7565b3480156101ba57600080fd5b5061011960065481565b3480156101d057600080fd5b50610119600c5481565b3480156101e657600080fd5b50610119600d5481565b3480156101fc57600080fd5b5061011960075481565b34801561021257600080fd5b5061014c610221366004610afb565b610619565b34801561023257600080fd5b5061014c610241366004610afb565b610635565b34801561025257600080fd5b50610282610261366004610abe565b60056020526000908152604090208054600182015460029092015490919083565b60408051938452602084019290925290820152606001610123565b61014c610694565b3480156102b157600080fd5b5061011960095481565b3480156102c757600080fd5b5061011960085481565b3480156102dd57600080fd5b5061014c6102ec366004610afb565b6106e7565b3480156102fd57600080fd5b50610119600b5481565b6000546001600160a01b0316331461031e57600080fd5b6001600160a01b0382166000908152600560205260409020541561034557610345826107eb565b600d54811015801561036d57506001600160a01b038216600090815260056020526040902054155b156103d357600280546001600160a01b0384166000818152600360205260408120839055600183018455929092527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace0180546001600160a01b031916909117905561040a565b600d5481111580156103fc57506001600160a01b03821660009081526005602052604090205415155b1561040a5761040a826108c8565b6001600160a01b03821660009081526005602052604090205460065461043b918391610435916109dd565b906109f2565b600655600d548110610467576001600160a01b0382166000908152600560205260409020819055610481565b6001600160a01b0382166000908152600560205260408120555b6001600160a01b0382166000908152600560205260409020546104a3906109fe565b6001600160a01b0390921660009081526005602052604090206001019190915550565b6000546001600160a01b031633146104dd57600080fd5b600b546001600160a01b038216600090815260046020526040902054429161050491610b2a565b106105605760405162461bcd60e51b815260206004820152602260248201527f4d757374207761697420323420686f757273206265666f726520636c61696d696044820152616e6760f01b606482015260840160405180910390fd5b610569816107eb565b50565b6001600160a01b038116600090815260056020526040812054810361059357506000919050565b6001600160a01b0382166000908152600560205260408120546105b5906109fe565b6001600160a01b0384166000908152600560205260409020600101549091508082116105e5575060009392505050565b6105ef82826109dd565b949350505050565b6000546001600160a01b0316331461060e57600080fd5b600b91909155600c55565b6000546001600160a01b0316331461063057600080fd5b600d55565b6000546001600160a01b0316331461064c57600080fd5b47336108fc606461065d8585610b3d565b6106679190610b54565b6040518115909202916000818181858888f1935050505015801561068f573d6000803e3d6000fd5b505050565b6000546001600160a01b031633146106ab57600080fd5b6007546106b890346109f2565b600755600654600a546106e2916106d9916106d39034610a1b565b90610a27565b600954906109f2565b600955565b6000546001600160a01b031633146106fe57600080fd5b600254600081900361070e575050565b60008060005a90505b848210801561072557508383105b156107e45783600e5410610739576000600e555b61076b6002600e548154811061075157610751610b76565b6000918252602090912001546001600160a01b0316610a33565b156107a2576107a26002600e548154811061078857610788610b76565b6000918252602090912001546001600160a01b03166107eb565b6107b76107b05a83906109dd565b83906109f2565b91505a600e805491925060006107cc83610b8c565b919050555082806107dc90610b8c565b935050610717565b5050505050565b6001600160a01b038116600090815260056020526040812054900361080d5750565b60006108188261056c565b905080156108c45760085461082d90826109f2565b6008556040516001600160a01b0383169082156108fc029083906000818181858888f19350505050158015610866573d6000803e3d6000fd5b506001600160a01b0382166000908152600460209081526040808320429055600590915290206002015461089a90826109f2565b6001600160a01b03831660009081526005602052604090206002810191909155546104a3906109fe565b5050565b600280546108d890600190610ba5565b815481106108e8576108e8610b76565b60009182526020808320909101546001600160a01b038481168452600390925260409092205460028054929093169291811061092657610926610b76565b600091825260208083209190910180546001600160a01b0319166001600160a01b0394851617905591831681526003918290526040812054600280549193929161097290600190610ba5565b8154811061098257610982610b76565b60009182526020808320909101546001600160a01b0316835282019290925260400190205560028054806109b8576109b8610bb8565b600082815260209020810160001990810180546001600160a01b031916905501905550565b60006109e98284610ba5565b90505b92915050565b60006109e98284610b2a565b60006109ec600a546106d360095485610a1b90919063ffffffff16565b60006109e98284610b3d565b60006109e98284610b54565b600b546001600160a01b03821660009081526004602052604081205490914291610a5d9190610b2a565b1080156109ec5750600c54610a718361056c565b1192915050565b80356001600160a01b0381168114610a8f57600080fd5b919050565b60008060408385031215610aa757600080fd5b610ab083610a78565b946020939093013593505050565b600060208284031215610ad057600080fd5b6109e982610a78565b60008060408385031215610aec57600080fd5b50508035926020909101359150565b600060208284031215610b0d57600080fd5b5035919050565b634e487b7160e01b600052601160045260246000fd5b808201808211156109ec576109ec610b14565b80820281158282048414176109ec576109ec610b14565b600082610b7157634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b600060018201610b9e57610b9e610b14565b5060010190565b818103818111156109ec576109ec610b14565b634e487b7160e01b600052603160045260246000fdfea26469706673582212204394f57e4f7f0c8bb0113b1929816f0715bc8fca643cebf92ffee69857ed40aa64736f6c63430008130033