[ { "inputs": [], "stateMutability": "nonpayable", "type": "constructor" }, { "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": "address", "name": "_receiver", "type": "address" } ], "name": "ClearStuckBalance", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "uint256", "name": "epoch", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "totalSupply", "type": "uint256" } ], "name": "LogRebase", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "int256", "name": "supplyDelta", "type": "int256" } ], "name": "ManualRebase", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "account", "type": "address" } ], "name": "MinterAdded", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "account", "type": "address" } ], "name": "MinterRemoved", "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": false, "internalType": "bool", "name": "_autoRebase", "type": "bool" } ], "name": "SetAutoRebase", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "pair", "type": "address" }, { "indexed": true, "internalType": "bool", "name": "value", "type": "bool" } ], "name": "SetAutomatedMarketMakerPair", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "_addr", "type": "address" }, { "indexed": false, "internalType": "bool", "name": "_value", "type": "bool" } ], "name": "SetFeeExempted", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "_liquidityReceiver", "type": "address" }, { "indexed": false, "internalType": "address", "name": "_treasuryReceiver", "type": "address" }, { "indexed": false, "internalType": "address", "name": "_riskFreeValueReceiver", "type": "address" } ], "name": "SetFeeReceivers", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "_liquidityFee", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "_riskFreeValue", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "_treasuryFee", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "_sellFeeTreasuryAdded", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "_feeDenominator", "type": "uint256" } ], "name": "SetFees", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "bool", "name": "_value", "type": "bool" } ], "name": "SetInitialDistributionFinished", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "bool", "name": "_value", "type": "bool" } ], "name": "SetIsLiquidityInAvax", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "_nextRebase", "type": "uint256" } ], "name": "SetNextRebase", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "_rebaseFrequency", "type": "uint256" } ], "name": "SetRebaseFrequency", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "_rewardYield", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "_rewardYieldDenominator", "type": "uint256" } ], "name": "SetRewardYield", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "bool", "name": "_enabled", "type": "bool" }, { "indexed": false, "internalType": "uint256", "name": "_num", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "_denom", "type": "uint256" } ], "name": "SetSwapBackSettings", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "target", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "accuracy", "type": "uint256" } ], "name": "SetTargetLiquidity", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "tokensSwapped", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "avaxReceived", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "tokensIntoLiqudity", "type": "uint256" } ], "name": "SwapAndLiquify", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "tokensSwapped", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "daiReceived", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "tokensIntoLiqudity", "type": "uint256" } ], "name": "SwapAndLiquifyDai", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "contractTokenBalance", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "amountToLiquify", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "amountToRFV", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "amountToTreasury", "type": "uint256" } ], "name": "SwapBack", "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": "MAX_FEE_BUY", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "MAX_FEE_RATE", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "MAX_FEE_SELL", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "_markerPairs", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "addMinter", "outputs": [], "stateMutability": "nonpayable", "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": [], "name": "autoRebase", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "automatedMarketMakerPairs", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "who", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "burn", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "burnFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "buyFeeRFV", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_addr", "type": "address" } ], "name": "checkFeeExempt", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "checkSwapThreshold", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_receiver", "type": "address" } ], "name": "clearStuckBalance", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "decimals", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "subtractedValue", "type": "uint256" } ], "name": "decreaseAllowance", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "feeDenominator", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getCirculatingSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "accuracy", "type": "uint256" } ], "name": "getLiquidityBacking", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getRewardYield", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getRewardYieldDenominator", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "addedValue", "type": "uint256" } ], "name": "increaseAllowance", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "initialDistributionFinished", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "isLiquidityInAvax", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "isMinter", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "target", "type": "uint256" }, { "internalType": "uint256", "name": "accuracy", "type": "uint256" } ], "name": "isOverLiquified", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "liquidityFee", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "liquidityReceiver", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "manualRebase", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "manualSync", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "recipient", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "mint", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "nextRebase", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "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": [], "name": "pairContract", "outputs": [ { "internalType": "contract InterfaceLP", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "rebaseFrequency", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "removeMinter", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "renounceMinter", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "rewardYield", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "rewardYieldDenominator", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "riskFreeValueReceiver", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "router", "outputs": [ { "internalType": "contract IJoeRouter", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "sellFeeTreasuryAdded", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bool", "name": "_autoRebase", "type": "bool" } ], "name": "setAutoRebase", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_pair", "type": "address" }, { "internalType": "bool", "name": "_value", "type": "bool" } ], "name": "setAutomatedMarketMakerPair", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_addr", "type": "address" }, { "internalType": "bool", "name": "_value", "type": "bool" } ], "name": "setFeeExempt", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_liquidityReceiver", "type": "address" }, { "internalType": "address", "name": "_treasuryReceiver", "type": "address" }, { "internalType": "address", "name": "_riskFreeValueReceiver", "type": "address" } ], "name": "setFeeReceivers", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_liquidityFee", "type": "uint256" }, { "internalType": "uint256", "name": "_riskFreeValue", "type": "uint256" }, { "internalType": "uint256", "name": "_treasuryFee", "type": "uint256" }, { "internalType": "uint256", "name": "_sellFeeTreasuryAdded", "type": "uint256" }, { "internalType": "uint256", "name": "_feeDenominator", "type": "uint256" } ], "name": "setFees", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bool", "name": "_value", "type": "bool" } ], "name": "setInitialDistributionFinished", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bool", "name": "_value", "type": "bool" } ], "name": "setIsLiquidityInAvax", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_nextRebase", "type": "uint256" } ], "name": "setNextRebase", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_rebaseFrequency", "type": "uint256" } ], "name": "setRebaseFrequency", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_rewardYield", "type": "uint256" }, { "internalType": "uint256", "name": "_rewardYieldDenominator", "type": "uint256" } ], "name": "setRewardYield", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bool", "name": "_enabled", "type": "bool" }, { "internalType": "uint256", "name": "_num", "type": "uint256" }, { "internalType": "uint256", "name": "_denom", "type": "uint256" } ], "name": "setSwapBackSettings", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "target", "type": "uint256" }, { "internalType": "uint256", "name": "accuracy", "type": "uint256" } ], "name": "setTargetLiquidity", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "swapEnabled", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalBuyFee", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalSellFee", "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": "treasuryFee", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "treasuryReceiver", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "usdtToken", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "stateMutability": "payable", "type": "receive" } ]
60806040526005805463ffffffff60a01b19166201000160a81b179055660114dbbe53a46760065567016345785d8a0000600755613840600881905562000047904262000cb0565b600955600d805461dead6001600160a01b031991821617909155600e805482169055600f8054730acd97149364f40ff70fd2ad744facb5286fe1019083168117909155601080548316821790556011805483169091179055601280547382dcec6aa3c8bfe2c96d40d8805ee0da1570864392169190911790556005601581905560168190556003601781905560188290556200010991620000f59080620006d5602090811b620021be17901c565b620006d560201b620021be1790919060201c565b6019556200012a601854601954620006d560201b620021be1790919060201c565b601a556064601b8190556032601c55601d556103e86200014d6012600a62000d2b565b6200015e9064174876e80062000de7565b6200016c9060001962000e7e565b6200017a9060001962000e09565b62000186919062000ccb565b6021553480156200019657600080fd5b50604080518082018252600681526552656261736560d01b60208083019182528351808501909452600384526226a22960e91b908401528151919291601291620001e4916000919062000bb4565b508151620001fa90600190602085019062000bb4565b506002805460ff191660ff92909216919091179055506200022490506200021e3390565b620006ec565b6001600355620002343362000746565b601380546001600160a01b031916732d99abd9008dc933ff5c0cd271b88309593ab9219081179091556040805163c45a015560e01b8152905163c45a015591600480820192602092909190829003018186803b1580156200029457600080fd5b505afa158015620002a9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002cf919062000c5a565b6001600160a01b031663c9c65396601360009054906101000a90046001600160a01b03166001600160a01b03166373b295c26040518163ffffffff1660e01b815260040160206040518083038186803b1580156200032c57600080fd5b505afa15801562000341573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000367919062000c5a565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152306024820152604401602060405180830381600087803b158015620003af57600080fd5b505af1158015620003c4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003ea919062000c5a565b601480546001600160a01b0319166001600160a01b039290921691821790556200041690600162000798565b60125460135460405163095ea7b360e01b81526001600160a01b039182166004820152600019602482015291169063095ea7b390604401602060405180830381600087803b1580156200046857600080fd5b505af11580156200047d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004a3919062000c8c565b5060125460405163095ea7b360e01b815230600482015260001960248201526001600160a01b039091169063095ea7b390604401602060405180830381600087803b158015620004f257600080fd5b505af115801562000507573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200052d919062000c8c565b503060008181526023602090815260408083206013546001600160a01b0390811685529252808320600019908190556014549092168352808320829055928252919020556200057f6012600a62000d2b565b620005909064174876e80062000de7565b601f55620005a16012600a62000d2b565b620005b29064174876e80062000de7565b620005c09060001962000e7e565b620005ce9060001962000e09565b33600090815260226020526040902055601f546200063590620005f46012600a62000d2b565b620006059064174876e80062000de7565b620006139060001962000e7e565b620006219060001962000e09565b62000a9360201b620021ca1790919060201c565b60209081556010546001600160a01b039081166000908152600a835260408082208054600160ff199182168117909255601154909416835281832080548516821790553083528183208054851682179055338084528284208054909516909117909355601f549051908152919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a362000eed565b6000620006e3828462000cb0565b90505b92915050565b600280546001600160a01b03838116610100818102610100600160a81b031985161790945560405193909204169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6200076181600462000aa160201b620021d61790919060201c565b6040516001600160a01b038216907f6ae172837ea30b801fbfcdd4108aa1d5bf8ff775444fd70256b44e6bf3dfc3f690600090a250565b6002546001600160a01b03610100909104163314620007fe5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b6001600160a01b0382166000908152600c602052604090205460ff1615158115151415620008635760405162461bcd60e51b815260206004820152601160248201527015985b1d5948185b1c9958591e481cd95d607a1b6044820152606401620007f5565b6001600160a01b0382166000908152600c60205260409020805460ff19168215801591909117909155620008e257600b80546001810182556000919091527f0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db90180546001600160a01b0319166001600160a01b03841617905562000a57565b600b54600110620009285760405162461bcd60e51b815260206004820152600f60248201526e2932b8bab4b932b21018903830b4b960891b6044820152606401620007f5565b60005b600b5481101562000a5557826001600160a01b0316600b828154811062000956576200095662000ed7565b6000918252602090912001546001600160a01b0316141562000a4057600b620009946001600b8054905062000b2160201b620022521790919060201c565b81548110620009a757620009a762000ed7565b600091825260209091200154600b80546001600160a01b039092169183908110620009d657620009d662000ed7565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550600b80548062000a185762000a1862000ec1565b600082815260209020810160001990810180546001600160a01b031916905501905562000a55565b8062000a4c8162000e60565b9150506200092b565b505b604051811515906001600160a01b038416907fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab90600090a35050565b6000620006e3828462000ccb565b62000aad828262000b2f565b1562000afc5760405162461bcd60e51b815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c65006044820152606401620007f5565b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b6000620006e3828462000e09565b60006001600160a01b03821662000b945760405162461bcd60e51b815260206004820152602260248201527f526f6c65733a206163636f756e7420697320746865207a65726f206164647265604482015261737360f01b6064820152608401620007f5565b506001600160a01b03166000908152602091909152604090205460ff1690565b82805462000bc29062000e23565b90600052602060002090601f01602090048101928262000be6576000855562000c31565b82601f1062000c0157805160ff191683800117855562000c31565b8280016001018555821562000c31579182015b8281111562000c3157825182559160200191906001019062000c14565b5062000c3f92915062000c43565b5090565b5b8082111562000c3f576000815560010162000c44565b60006020828403121562000c6d57600080fd5b81516001600160a01b038116811462000c8557600080fd5b9392505050565b60006020828403121562000c9f57600080fd5b8151801515811462000c8557600080fd5b6000821982111562000cc65762000cc662000e95565b500190565b60008262000cdd5762000cdd62000eab565b500490565b600181815b8085111562000d2357816000190482111562000d075762000d0762000e95565b8085161562000d1557918102915b93841c939080029062000ce7565b509250929050565b6000620006e3838360008262000d4457506001620006e6565b8162000d5357506000620006e6565b816001811462000d6c576002811462000d775762000d97565b6001915050620006e6565b60ff84111562000d8b5762000d8b62000e95565b50506001821b620006e6565b5060208310610133831016604e8410600b841016171562000dbc575081810a620006e6565b62000dc8838362000ce2565b806000190482111562000ddf5762000ddf62000e95565b029392505050565b600081600019048311821515161562000e045762000e0462000e95565b500290565b60008282101562000e1e5762000e1e62000e95565b500390565b600181811c9082168062000e3857607f821691505b6020821081141562000e5a57634e487b7160e01b600052602260045260246000fd5b50919050565b600060001982141562000e775762000e7762000e95565b5060010190565b60008262000e905762000e9062000eab565b500690565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052603160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b613b4a8062000efd6000396000f3fe6080604052600436106104095760003560e01c80637d4b501711610213578063a8aa1b3111610123578063d4399790116100ab578063dd62ed3e1161007a578063dd62ed3e14610b98578063e15beb8014610bde578063e1d5584c14610bfe578063f2fde38b14610c1e578063f887ea4014610c3e57600080fd5b8063d439979014610b09578063d51ed1c814610b42578063d7832b1114610b62578063d7c0103214610b7857600080fd5b8063b62496f5116100f2578063b62496f514610a6c578063bc7e68a314610a9c578063cc32d17614610ab2578063d088935814610ac8578063d1fce26414610ae857600080fd5b8063a8aa1b31146109ec578063a9059cbb14610a0c578063a98ad46c14610a2c578063aa271e1a14610a4c57600080fd5b80639763eec4116101a65780639a7a23d6116101755780639a7a23d6146109615780639ae7372d146109815780639cf59d7f146109a15780639d9241ec146109b6578063a457c2d7146109cc57600080fd5b80639763eec41461090057806398118cb414610916578063983b2d561461092c578063986502751461094c57600080fd5b80638ebfc796116101e25780638ebfc796146108aa5780639079f932146108ca57806392f6576e1461079c57806395d89b41146108eb57600080fd5b80637d4b50171461083b5780638102c5701461085b57806389375abf146108715780638da5cb5b1461088757600080fd5b8063313ce5671161031957806361a9d1b1116102a157806370a082311161027057806370a08231146107b1578063715018a6146107d1578063753d02a1146107e6578063764d72bf146107fb57806379cc67901461081b57600080fd5b806361a9d1b1146107515780636d351d1a146107665780636ddd17131461077b5780636def69e11461079c57600080fd5b806342966c68116102e857806342966c68146106c657806344c59e7f146106e65780634cd9ddf2146106fb5780634d709adf1461071b57806359b107b91461073b57600080fd5b8063313ce56714610644578063395093511461066657806340c10f191461068657806342762cbb146106a657600080fd5b80631276089b1161039c578063201e79911161036b578063201e7991146105af57806323b872dd146105cf578063264d26dd146105ef5780632b112e491461060f5780633092afd51461062457600080fd5b80631276089b14610543578063180b0d7e1461056357806318160ddd1461057957806318a755691461058e57600080fd5b8063095ea7b3116103d8578063095ea7b3146104ba5780630af08314146104ea5780630e30b8501461050e5780631161ae391461052357600080fd5b806301b168271461041557806304a66b481461043757806306fdde031461045757806308b1fd8f1461048257600080fd5b3661041057005b600080fd5b34801561042157600080fd5b506104356104303660046136e8565b610c5e565b005b34801561044357600080fd5b50610435610452366004613738565b610cdf565b34801561046357600080fd5b5061046c610ef7565b6040516104799190613773565b60405180910390f35b34801561048e57600080fd5b506010546104a2906001600160a01b031681565b6040516001600160a01b039091168152602001610479565b3480156104c657600080fd5b506104da6104d536600461363c565b610f89565b6040519015158152602001610479565b3480156104f657600080fd5b5061050060065481565b604051908152602001610479565b34801561051a57600080fd5b50610500600d81565b34801561052f57600080fd5b506104da61053e3660046136e8565b610fe4565b34801561054f57600080fd5b5061043561055e366004613668565b610ff8565b34801561056f57600080fd5b50610500601b5481565b34801561058557600080fd5b50601f54610500565b34801561059a57600080fd5b506005546104da90600160b81b900460ff1681565b3480156105bb57600080fd5b506104356105ca3660046136e8565b6110b1565b3480156105db57600080fd5b506104da6105ea3660046135c6565b611121565b3480156105fb57600080fd5b50600f546104a2906001600160a01b031681565b34801561061b57600080fd5b50610500611237565b34801561063057600080fd5b5061043561063f366004613508565b6112b5565b34801561065057600080fd5b5060025460405160ff9091168152602001610479565b34801561067257600080fd5b506104da61068136600461363c565b6112f1565b34801561069257600080fd5b506104356106a136600461363c565b611364565b3480156106b257600080fd5b506104356106c1366004613668565b61148b565b3480156106d257600080fd5b506104356106e13660046136b6565b611539565b3480156106f257600080fd5b50600754610500565b34801561070757600080fd5b506104356107163660046136b6565b611543565b34801561072757600080fd5b506005546104a2906001600160a01b031681565b34801561074757600080fd5b5061050060195481565b34801561075d57600080fd5b506104356115e5565b34801561077257600080fd5b5061050061172a565b34801561078757600080fd5b506005546104da90600160a81b900460ff1681565b3480156107a857600080fd5b50610500601281565b3480156107bd57600080fd5b506105006107cc366004613508565b611743565b3480156107dd57600080fd5b50610435611769565b3480156107f257600080fd5b506104356117a5565b34801561080757600080fd5b50610435610816366004613508565b61183b565b34801561082757600080fd5b5061043561083636600461363c565b6118dd565b34801561084757600080fd5b506011546104a2906001600160a01b031681565b34801561086757600080fd5b5061050060185481565b34801561087d57600080fd5b5061050060085481565b34801561089357600080fd5b5060025461010090046001600160a01b03166104a2565b3480156108b657600080fd5b506104356108c5366004613607565b6118f6565b3480156108d657600080fd5b506005546104da90600160b01b900460ff1681565b3480156108f757600080fd5b5061046c6119c1565b34801561090c57600080fd5b5061050060175481565b34801561092257600080fd5b5061050060155481565b34801561093857600080fd5b50610435610947366004613508565b6119d0565b34801561095857600080fd5b50610435611a09565b34801561096d57600080fd5b5061043561097c366004613607565b611a12565b34801561098d57600080fd5b5061043561099c3660046136b6565b611cac565b3480156109ad57600080fd5b50600654610500565b3480156109c257600080fd5b50610500601a5481565b3480156109d857600080fd5b506104da6109e736600461363c565b611d11565b3480156109f857600080fd5b506014546104a2906001600160a01b031681565b348015610a1857600080fd5b506104da610a2736600461363c565b611de6565b348015610a3857600080fd5b506012546104a2906001600160a01b031681565b348015610a5857600080fd5b506104da610a67366004613508565b611e4e565b348015610a7857600080fd5b506104da610a87366004613508565b600c6020526000908152604090205460ff1681565b348015610aa857600080fd5b5061050060095481565b348015610abe57600080fd5b5061050060165481565b348015610ad457600080fd5b50610435610ae3366004613683565b611e5b565b348015610af457600080fd5b506005546104da90600160a01b900460ff1681565b348015610b1557600080fd5b506104da610b24366004613508565b6001600160a01b03166000908152600a602052604090205460ff1690565b348015610b4e57600080fd5b50610500610b5d3660046136b6565b611f08565b348015610b6e57600080fd5b5061050060075481565b348015610b8457600080fd5b50610435610b9336600461357b565b611f9c565b348015610ba457600080fd5b50610500610bb3366004613542565b6001600160a01b03918216600090815260236020908152604080832093909416825291909152205490565b348015610bea57600080fd5b50610435610bf9366004613668565b612048565b348015610c0a57600080fd5b506104a2610c193660046136b6565b6120f6565b348015610c2a57600080fd5b50610435610c39366004613508565b612120565b348015610c4a57600080fd5b506013546104a2906001600160a01b031681565b6002546001600160a01b03610100909104163314610c975760405162461bcd60e51b8152600401610c8e906137ed565b60405180910390fd5b6006829055600781905560408051838152602081018390527f3f34134cbdd92374af629b5ba82900de3e5301e7206333e1463e306916507d5691015b60405180910390a15050565b6002546001600160a01b03610100909104163314610d0f5760405162461bcd60e51b8152600401610c8e906137ed565b60128511158015610d21575060128411155b8015610d2e575060128311155b8015610d3b575060128211155b610d6f5760405162461bcd60e51b815260206004820152600560248201526477726f6e6760d81b6044820152606401610c8e565b6015859055601784905560168390556018829055610d9784610d9187866121be565b906121be565b6019819055601854610da991906121be565b601a55601954600d1015610dff5760405162461bcd60e51b815260206004820152601960248201527f546f74616c204255592066656520697320746f6f2068696768000000000000006044820152606401610c8e565b6012601a541115610e525760405162461bcd60e51b815260206004820152601a60248201527f546f74616c2053454c4c2066656520697320746f6f20686967680000000000006044820152606401610c8e565b601b819055610e626004826138ab565b60195410610ea05760405162461bcd60e51b815260206004820152600b60248201526a746f74616c42757946656560a81b6044820152606401610c8e565b604080518681526020810186905290810184905260608101839052608081018290527f881c278b86ef48391462a184ea0f2a579fec4c752524d2982eb0e2c9a956b7a39060a0015b60405180910390a15050505050565b606060008054610f06906139e0565b80601f0160208091040260200160405190810160405280929190818152602001828054610f32906139e0565b8015610f7f5780601f10610f5457610100808354040283529160200191610f7f565b820191906000526020600020905b815481529060010190602001808311610f6257829003601f168201915b5050505050905090565b3360008181526023602090815260408083206001600160a01b03871680855292528083208590555191929091600080516020613af583398151915290610fd29086815260200190565b60405180910390a35060015b92915050565b600082610ff083611f08565b119392505050565b6002546001600160a01b036101009091041633146110285760405162461bcd60e51b8152600401610c8e906137ed565b60055460ff600160a01b90910416151581151514156110595760405162461bcd60e51b8152600401610c8e906137c8565b60058054821515600160a01b0260ff60a01b199091161790556040517f7ff743f3545e37dc045546239e43c5339aa2a94f682e0350554fb0fb044ed376906110a690831515815260200190565b60405180910390a150565b6002546001600160a01b036101009091041633146110e15760405162461bcd60e51b8152600401610c8e906137ed565b601c829055601d81905560408051838152602081018390527f61b037fbf40888c3d344a3dfa6986a7d511feda40cac15b93162e3e21713aed69101610cd3565b6000826001600160a01b0381166111735760405162461bcd60e51b8152602060048201526016602482015275526563697069656e74207a65726f206164647265737360501b6044820152606401610c8e565b6001600160a01b038516600090815260236020908152604080832033845290915290205460001914611220576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b03881660009081526023825283812033825290915291909120546111fb91859061225e565b6001600160a01b03861660009081526023602090815260408083203384529091529020555b61122b85858561228a565b50600195945050505050565b60208054600e546001600160a01b0390811660009081526022909352604080842054600d5490921684528320546112b092916112aa916112a49061127d6012600a613902565b61128c9064174876e8006139aa565b61129890600019613a36565b6112a4906000196139c9565b90612252565b906121ca565b905090565b6002546001600160a01b036101009091041633146112e55760405162461bcd60e51b8152600401610c8e906137ed565b6112ee816124cb565b50565b3360009081526023602090815260408083206001600160a01b038616845290915281205461131f90836121be565b3360008181526023602090815260408083206001600160a01b03891680855290835292819020859055519384529092600080516020613af58339815191529101610fd2565b61136d33611e4e565b6113d25760405162461bcd60e51b815260206004820152603060248201527f4d696e746572526f6c653a2063616c6c657220646f6573206e6f74206861766560448201526f20746865204d696e74657220726f6c6560801b6064820152608401610c8e565b601f546113df90826121be565b601f8190556001600160801b0310156113fe576001600160801b03601f555b601f54611438906114116012600a613902565b6114209064174876e8006139aa565b61142c90600019613a36565b6112aa906000196139c9565b602081905561146b9061144c90839061250d565b6001600160a01b038416600090815260226020526040902054906121be565b6001600160a01b0390921660009081526022602052604090209190915550565b6002546001600160a01b036101009091041633146114bb5760405162461bcd60e51b8152600401610c8e906137ed565b60055460ff600160b81b90910416151581151514156114ec5760405162461bcd60e51b8152600401610c8e906137c8565b60058054821515600160b81b0260ff60b81b199091161790556040517faf6d04245008afdd5ffe9f7ff0100f76147b37509ab650932605cf1d1869f669906110a690831515815260200190565b6112ee3382612519565b6002546001600160a01b036101009091041633146115735760405162461bcd60e51b8152600401610c8e906137ed565b6138408111156115b05760405162461bcd60e51b81526020600482015260086024820152670a8dede40d0d2ced60c31b6044820152606401610c8e565b60088190556040518181527f2b437b36906bbacfbc05b761a7c548a2789a8f89f67286f88e93b04560822bc7906020016110a6565b600260035414156116385760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610c8e565b6002600355601e5460ff161561167c5760405162461bcd60e51b81526020600482015260096024820152682a393c9030b3b0b4b760b91b6044820152606401610c8e565b4260095411156116bc5760405162461bcd60e51b815260206004820152600b60248201526a4e6f7420696e2074696d6560a81b6044820152606401610c8e565b60006116db6007546112aa600654601f5461250d90919063ffffffff16565b90506116e68161266a565b506116ef6117a5565b6040518181527f612668bb4420df7d3f2fcc122dfd5fd434dc0cb2e1dce1b8180712f9200677119060200160405180910390a1506001600355565b60006112b06020546021546121ca90919063ffffffff16565b602080546001600160a01b038316600090815260229092526040822054610fde916121ca565b6002546001600160a01b036101009091041633146117995760405162461bcd60e51b8152600401610c8e906137ed565b6117a36000612767565b565b60005b600b548110156112ee57600b81815481106117c5576117c5613aa9565b60009182526020822001546040805160016209351760e01b0319815290516001600160a01b039092169263fff6cae99260048084019382900301818387803b15801561181057600080fd5b505af1158015611824573d6000803e3d6000fd5b50505050808061183390613a1b565b9150506117a8565b6002546001600160a01b0361010090910416331461186b5760405162461bcd60e51b8152600401610c8e906137ed565b60405147906001600160a01b0383169082156108fc029083906000818181858888f193505050501580156118a3573d6000803e3d6000fd5b506040516001600160a01b03831681527f2f0f983bc447da14da80ef6b41a88ab1ea636129df3a6af92b870934d6802a8590602001610cd3565b6118e88233836127c1565b6118f28282612519565b5050565b6002546001600160a01b036101009091041633146119265760405162461bcd60e51b8152600401610c8e906137ed565b6001600160a01b0382166000908152600a602052604090205460ff16151581151514156119655760405162461bcd60e51b8152600401610c8e906137c8565b6001600160a01b0382166000818152600a6020908152604091829020805460ff19168515159081179091558251938452908301527f6be51401060be42994125d8c96b787433e7a641a3555e3c3c4765e8a950fa37a9101610cd3565b606060018054610f06906139e0565b6002546001600160a01b03610100909104163314611a005760405162461bcd60e51b8152600401610c8e906137ed565b6112ee81612853565b6117a3336124cb565b6002546001600160a01b03610100909104163314611a425760405162461bcd60e51b8152600401610c8e906137ed565b6001600160a01b0382166000908152600c602052604090205460ff1615158115151415611aa55760405162461bcd60e51b815260206004820152601160248201527015985b1d5948185b1c9958591e481cd95d607a1b6044820152606401610c8e565b6001600160a01b0382166000908152600c60205260409020805460ff19168215801591909117909155611b2257600b80546001810182556000919091527f0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db90180546001600160a01b0319166001600160a01b038416179055611c70565b600b54600110611b665760405162461bcd60e51b815260206004820152600f60248201526e2932b8bab4b932b21018903830b4b960891b6044820152606401610c8e565b60005b600b54811015611c6e57826001600160a01b0316600b8281548110611b9057611b90613aa9565b6000918252602090912001546001600160a01b03161415611c5c57600b8054611bba906001612252565b81548110611bca57611bca613aa9565b600091825260209091200154600b80546001600160a01b039092169183908110611bf657611bf6613aa9565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550600b805480611c3557611c35613a93565b600082815260209020810160001990810180546001600160a01b0319169055019055611c6e565b80611c6681613a1b565b915050611b69565b505b604051811515906001600160a01b038416907fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab90600090a35050565b6002546001600160a01b03610100909104163314611cdc5760405162461bcd60e51b8152600401610c8e906137ed565b60098190556040518181527fde97971104f1e2ea739b6fa6bd7a7eb834d3ed54ffa08425c5eb48ed9fbc27b6906020016110a6565b3360009081526023602090815260408083206001600160a01b0386168452909152812054808310611d65573360009081526023602090815260408083206001600160a01b0388168452909152812055611d94565b611d6f8184612252565b3360009081526023602090815260408083206001600160a01b03891684529091529020555b3360008181526023602090815260408083206001600160a01b03891680855290835292819020549051908152919291600080516020613af5833981519152910160405180910390a35060019392505050565b6000826001600160a01b038116611e385760405162461bcd60e51b8152602060048201526016602482015275526563697069656e74207a65726f206164647265737360501b6044820152606401610c8e565b611e4333858561228a565b506001949350505050565b6000610fde600483612895565b6002546001600160a01b03610100909104163314611e8b5760405162461bcd60e51b8152600401610c8e906137ed565b6005805460ff60a81b1916600160a81b85151502179055611ebc82611eb6836114116012600a613902565b9061250d565b602155604080518415158152602081018490529081018290527f512cfe1aedabdc06d12a680ace7434d88a9532c8853515536842f5ff52cbe55a906060015b60405180910390a1505050565b600080805b600b54811015611f6c57611f59611f52633b9aca006112aa600b8581548110611f3857611f38613aa9565b6000918252602090912001546001600160a01b0316611743565b83906121be565b5080611f6481613a1b565b915050611f0d565b50611f95611f80633b9aca006112aa611237565b6112aa611f8e84600261250d565b869061250d565b9392505050565b6002546001600160a01b03610100909104163314611fcc5760405162461bcd60e51b8152600401610c8e906137ed565b600f80546001600160a01b038581166001600160a01b0319928316811790935560108054868316908416811790915560118054928616929093168217909255604080519384526020840192909252908201527fb923dcdfa226a9163e9324bacc07634c44fc26e1268f8341bc0989d83f4794b890606001611efb565b6002546001600160a01b036101009091041633146120785760405162461bcd60e51b8152600401610c8e906137ed565b60055460ff600160b01b90910416151581151514156120a95760405162461bcd60e51b8152600401610c8e906137c8565b60058054821515600160b01b0260ff60b01b199091161790556040517f76a3b4a2762dae8901450e92a099b166b4ec4b38d2509a67740a4d48fc642460906110a690831515815260200190565b600b818154811061210657600080fd5b6000918252602090912001546001600160a01b0316905081565b6002546001600160a01b036101009091041633146121505760405162461bcd60e51b8152600401610c8e906137ed565b6001600160a01b0381166121b55760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610c8e565b6112ee81612767565b6000611f958284613893565b6000611f9582846138ab565b6121e08282612895565b1561222d5760405162461bcd60e51b815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c65006044820152606401610c8e565b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b6000611f9582846139c9565b600081848411156122825760405162461bcd60e51b8152600401610c8e9190613773565b505050900390565b6001600160a01b0383166000908152600a6020526040812054819060ff16806122cb57506001600160a01b0384166000908152600a602052604090205460ff165b600554909150600160a01b900460ff16806122e35750805b6123255760405162461bcd60e51b8152602060048201526013602482015272151c98591a5b99c81b9bdd081cdd185c9d1959606a1b6044820152606401610c8e565b601e5460ff16156123435761233b858585612918565b915050611f95565b600061235a6020548561250d90919063ffffffff16565b90506123646129da565b1561237157612371612a54565b6001600160a01b0386166000908152602260205260409020546123949082612252565b6001600160a01b0387166000908152602260205260408120919091556123ba8787612bff565b6123c457816123cf565b6123cf878784612c91565b6001600160a01b0387166000908152602260205260409020549091506123f590826121be565b6001600160a01b03808816600081815260226020908152604090912093909355915490891690600080516020613ad5833981519152906124369085906121ca565b60405190815260200160405180910390a360095442101580156124625750600554600160b01b900460ff165b156124be5761246f612d51565b6001600160a01b0387166000908152600c602052604090205460ff161580156124b157506001600160a01b0386166000908152600c602052604090205460ff16155b156124be576124be6117a5565b5060019695505050505050565b6124d6600482612d85565b6040516001600160a01b038216907fe94479a9f7e1952cc78f2d6baab678adc1b772d936c6583def489e524cb6669290600090a250565b6000611f9582846139aa565b6001600160a01b0382166125795760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b6064820152608401610c8e565b6001600160a01b038216600090815260226020526040902054818110156125ed5760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b6064820152608401610c8e565b61260c6126056020548461250d90919063ffffffff16565b8290612252565b6001600160a01b038416600090815260226020526040902055601f546126329083612252565b601f556040518281526000906001600160a01b03851690600080516020613ad5833981519152906020015b60405180910390a3505050565b600042826126b857807f72725a3b1e5bd622d6bcd1339bb31279c351abe8f541ac7fd320f24e1b1641f2601f546040516126a691815260200190565b60405180910390a25050601f54919050565b60008312156126de576126d66126cd84613a4a565b601f5490612252565b601f556126ef565b601f546126eb90846121be565b601f555b601f546001600160801b03101561270c576001600160801b03601f555b601f5461271f906114116012600a613902565b60205560085461272f9082613893565b600955601f5460405190815281907f72725a3b1e5bd622d6bcd1339bb31279c351abe8f541ac7fd320f24e1b1641f2906020016126a6565b600280546001600160a01b03838116610100818102610100600160a81b031985161790945560405193909204169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b03838116600090815260236020908152604080832093861683529290522054600019811461284d57818110156128405760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610c8e565b61284d8484848403612e07565b50505050565b61285e6004826121d6565b6040516001600160a01b038216907f6ae172837ea30b801fbfcdd4108aa1d5bf8ff775444fd70256b44e6bf3dfc3f690600090a250565b60006001600160a01b0382166128f85760405162461bcd60e51b815260206004820152602260248201527f526f6c65733a206163636f756e7420697320746865207a65726f206164647265604482015261737360f01b6064820152608401610c8e565b506001600160a01b03166000908152602091909152604090205460ff1690565b6000806129306020548461250d90919063ffffffff16565b6001600160a01b0386166000908152602260205260409020549091506129569082612252565b6001600160a01b03808716600090815260226020526040808220939093559086168152205461298590826121be565b6001600160a01b038086166000818152602260205260409081902093909355915190871690600080516020613ad5833981519152906129c79087815260200190565b60405180910390a3506001949350505050565b336000908152600c602052604081205460ff161580156129fd5750601e5460ff16155b8015612a125750600554600160a81b900460ff165b8015612a3457506000612a32601a546019546121be90919063ffffffff16565b115b80156112b057505060215430600090815260226020526040902054101590565b601e5460ff1615612aa75760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610c8e565b601e805460ff19166001179055601a54601954600091612ac791906121be565b90506000612ad9601c54601d54610fe4565b612ae557601554612ae8565b60005b60208054306000908152602290925260408220549293509091612b0a916121ca565b90506000612b27846112aa612b2086600261250d565b859061250d565b90506000612b48856112aa611f8e600260175461250d90919063ffffffff16565b90506000612b5a826112a48686612252565b90508215612b6b57612b6b83612f11565b8115612b8857601154612b889083906001600160a01b03166130f6565b8015612ba557601054612ba59082906001600160a01b03166130f6565b6040805185815260208101859052908101839052606081018290527fa4903880285538fa6ffa51cad044f25c39cc7f89aa6cbbda844135ff94827edf9060800160405180910390a15050601e805460ff1916905550505050565b6001600160a01b0382166000908152600a602052604081205460ff1680612c3e57506001600160a01b0382166000908152600a602052604090205460ff165b15612c4b57506000610fde565b6001600160a01b0383166000908152600c602052604090205460ff1680612c8a57506001600160a01b0382166000908152600c602052604090205460ff165b9050610fde565b6019546001600160a01b0383166000908152600c602052604081205490919060ff1615612cbd5750601a545b601b54600090612cd1906112aa868561250d565b30600090815260226020526040902054909150612cee90826121be565b3060008181526022602090815260409091209290925590546001600160a01b03881690600080516020613ad583398151915290612d2c9085906121ca565b60405190815260200160405180910390a3612d478482612252565b9695505050505050565b601e5460ff166117a3576000612d7a6007546112aa600654601f5461250d90919063ffffffff16565b90506118f28161266a565b612d8f8282612895565b612de55760405162461bcd60e51b815260206004820152602160248201527f526f6c65733a206163636f756e7420646f6573206e6f74206861766520726f6c6044820152606560f81b6064820152608401610c8e565b6001600160a01b0316600090815260209190915260409020805460ff19169055565b6001600160a01b038316612e695760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610c8e565b6001600160a01b038216612eca5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610c8e565b6001600160a01b038381166000818152602360209081526040808320948716808452948252918290208590559051848152600080516020613af5833981519152910161265d565b6000612f1e8260026121ca565b90506000612f2c8383612252565b600554909150600160b81b900460ff1615612fa25747612f4c83306130f6565b6000612f584783612252565b9050612f648382613247565b60408051858152602081018390529081018490527f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb56190606001610ee8565b6012546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a082319060240160206040518083038186803b158015612fe657600080fd5b505afa158015612ffa573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061301e91906136cf565b905061302a83306132f2565b6012546040516370a0823160e01b81523060048201526000916130ac9184916001600160a01b0316906370a082319060240160206040518083038186803b15801561307457600080fd5b505afa158015613088573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112a491906136cf565b90506130b8838261343f565b60408051858152602081018390529081018490527fa1b6307d59dd6c9c2989a8f4454e81b33692b042ad395da897b508ac48d2a55690606001610ee8565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061312b5761312b613aa9565b6001600160a01b03928316602091820292909201810191909152601354604080516339d94ae160e11b8152905191909316926373b295c2926004808301939192829003018186803b15801561317f57600080fd5b505afa158015613193573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131b79190613525565b816001815181106131ca576131ca613aa9565b6001600160a01b039283166020918202929092010152601354604051633b158ab160e11b815291169063762b156290613210908690600090869088904290600401613822565b600060405180830381600087803b15801561322a57600080fd5b505af115801561323e573d6000803e3d6000fd5b50505050505050565b601354600f54604051637c8d9fb960e11b81523060048201526024810185905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f91b3f7290839060c4016060604051808303818588803b1580156132b257600080fd5b505af11580156132c6573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906132eb919061370a565b5050505050565b6040805160038082526080820190925260009160208201606080368337019050509050308160008151811061332957613329613aa9565b6001600160a01b03928316602091820292909201810191909152601354604080516339d94ae160e11b8152905191909316926373b295c2926004808301939192829003018186803b15801561337d57600080fd5b505afa158015613391573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906133b59190613525565b816001815181106133c8576133c8613aa9565b6001600160a01b0392831660209182029290920101526012548251911690829060029081106133f9576133f9613aa9565b6001600160a01b039283166020918202929092010152601354604051635c11d79560e01b8152911690635c11d79590613210908690600090869088904290600401613822565b601354601254600f5460405162e8e33760e81b81523060048201526001600160a01b039283166024820152604481018690526064810185905260006084820181905260a482015290821660c48201524260e482015291169063e8e337009061010401606060405180830381600087803b1580156134bb57600080fd5b505af11580156134cf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906132eb919061370a565b8035801515811461350357600080fd5b919050565b60006020828403121561351a57600080fd5b8135611f9581613abf565b60006020828403121561353757600080fd5b8151611f9581613abf565b6000806040838503121561355557600080fd5b823561356081613abf565b9150602083013561357081613abf565b809150509250929050565b60008060006060848603121561359057600080fd5b833561359b81613abf565b925060208401356135ab81613abf565b915060408401356135bb81613abf565b809150509250925092565b6000806000606084860312156135db57600080fd5b83356135e681613abf565b925060208401356135f681613abf565b929592945050506040919091013590565b6000806040838503121561361a57600080fd5b823561362581613abf565b9150613633602084016134f3565b90509250929050565b6000806040838503121561364f57600080fd5b823561365a81613abf565b946020939093013593505050565b60006020828403121561367a57600080fd5b611f95826134f3565b60008060006060848603121561369857600080fd5b6136a1846134f3565b95602085013595506040909401359392505050565b6000602082840312156136c857600080fd5b5035919050565b6000602082840312156136e157600080fd5b5051919050565b600080604083850312156136fb57600080fd5b50508035926020909101359150565b60008060006060848603121561371f57600080fd5b8351925060208401519150604084015190509250925092565b600080600080600060a0868803121561375057600080fd5b505083359560208501359550604085013594606081013594506080013592509050565b600060208083528351808285015260005b818110156137a057858101830151858201604001528201613784565b818111156137b2576000604083870101525b50601f01601f1916929092016040019392505050565b6020808252600b908201526a139bdd0818da185b99d95960aa1b604082015260600190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156138725784516001600160a01b03168352938301939183019160010161384d565b50506001600160a01b03969096166060850152505050608001529392505050565b600082198211156138a6576138a6613a67565b500190565b6000826138ba576138ba613a7d565b500490565b600181815b808511156138fa5781600019048211156138e0576138e0613a67565b808516156138ed57918102915b93841c93908002906138c4565b509250929050565b6000611f95838360008261391857506001610fde565b8161392557506000610fde565b816001811461393b576002811461394557613961565b6001915050610fde565b60ff84111561395657613956613a67565b50506001821b610fde565b5060208310610133831016604e8410600b8410161715613984575081810a610fde565b61398e83836138bf565b80600019048211156139a2576139a2613a67565b029392505050565b60008160001904831182151516156139c4576139c4613a67565b500290565b6000828210156139db576139db613a67565b500390565b600181811c908216806139f457607f821691505b60208210811415613a1557634e487b7160e01b600052602260045260246000fd5b50919050565b6000600019821415613a2f57613a2f613a67565b5060010190565b600082613a4557613a45613a7d565b500690565b6000600160ff1b821415613a6057613a60613a67565b5060000390565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052603160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6001600160a01b03811681146112ee57600080fdfeddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925a2646970667358221220847fdeed0e193d30ec03dd975c72d8bfeb490b7e1cf4cec9cf7477130a4093a164736f6c63430008070033