[ { "inputs": [ { "internalType": "address", "name": "_marketingWallet", "type": "address" }, { "internalType": "address", "name": "_rewardsEngine", "type": "address" } ], "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": 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": "uint256", "name": "tokensSwapped", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "ethReceived", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "tokensIntoLiqudity", "type": "uint256" } ], "name": "SwapAndLiquify", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "bool", "name": "enabled", "type": "bool" } ], "name": "SwapAndLiquifyEnabledUpdated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "amountIn", "type": "uint256" }, { "indexed": false, "internalType": "address[]", "name": "path", "type": "address[]" } ], "name": "SwapETHForTokens", "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": "_buyLiquidityFees", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "_buyMarketingFees", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "_buyRewardFees", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "_liquidityShares", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "_marketingShares", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "_maxTxAmount", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "_maxWallet", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "_minimumTokensBeforeSwap", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "_rewardShares", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "_sellLiquidityFees", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "_sellMarketingFees", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "_sellRewardFees", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "_totalDistributionShares", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "_totalTaxIfBuying", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "_totalTaxIfSelling", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "addMarketPair", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "maxTxAmount", "type": "uint256" } ], "name": "adjustMaxTxAmount", "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": "amount", "type": "uint256" } ], "name": "approve", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newRouterAddress", "type": "address" } ], "name": "changeRouterVersion", "outputs": [ { "internalType": "address", "name": "newPairAddress", "type": "address" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "checkExcludedFromFees", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "checkMarketPair", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "checkTxLimitExcept", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "checkWalletLimit", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "checkWalletLimitExcept", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "deadAddress", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "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": [ { "internalType": "bool", "name": "newValue", "type": "bool" } ], "name": "enableDisableWalletLimit", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "getCirculatingSupply", "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": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "owner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "proveEngine", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "rewardsEngine", "outputs": [ { "internalType": "contract IRewardsEngine", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "newLiquidityTax", "type": "uint256" }, { "internalType": "uint256", "name": "newMarketingTax", "type": "uint256" }, { "internalType": "uint256", "name": "newRewardTax", "type": "uint256" } ], "name": "setBuyFee", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "newLiquidityShare", "type": "uint256" }, { "internalType": "uint256", "name": "newMarketingShare", "type": "uint256" }, { "internalType": "uint256", "name": "newRewardShare", "type": "uint256" } ], "name": "setDistributionSettings", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newMarketingWallet", "type": "address" } ], "name": "setMarketingWallet", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "newLimit", "type": "uint256" } ], "name": "setMaxWallet", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "newLimit", "type": "uint256" } ], "name": "setNumTokensBeforeSwap", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "newLiquidityTax", "type": "uint256" }, { "internalType": "uint256", "name": "newMarketingTax", "type": "uint256" }, { "internalType": "uint256", "name": "newRewardTax", "type": "uint256" } ], "name": "setSellFee", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bool", "name": "_enabled", "type": "bool" } ], "name": "setSwapAndLiquifyByLimitOnly", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bool", "name": "_enabled", "type": "bool" } ], "name": "setSwapAndLiquifyEnabled", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "bool", "name": "newValue", "type": "bool" } ], "name": "setcheckExcludedFromFees", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "holder", "type": "address" }, { "internalType": "bool", "name": "exempt", "type": "bool" } ], "name": "setcheckTxLimitExcept", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "holder", "type": "address" }, { "internalType": "bool", "name": "exempt", "type": "bool" } ], "name": "setcheckWalletLimitExcept", "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": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "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": [], "name": "uniswapPair", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "uniswapV2Router", "outputs": [ { "internalType": "contract IUniswapV2Router02", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "stateMutability": "payable", "type": "receive" } ]
60e0604052600560a0819052643932b1bab960d91b60c090815262000028916002919062000608565b50604080518082019091526003808252622921a960e91b602090920191825262000053918162000608565b506004805460ff191660091781556ddead0000000000000000000000006080526001600d819055600e8190556002600f819055601082905560118290556012819055601382905560149190915560155560168190556017819055601855678ac7230489e8000060195567016345785d8a0000601a819055601b5566038d7ea4c68000601c55601f805462ffffff60a81b191661010160a81b179055348015620000fb57600080fd5b506040516200304f3803806200304f8339810160408190526200011e91620006e8565b600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a35060048054610100600160a81b0319166101006001600160a01b038516021781556040805163c45a015560e01b81529051737a250d5630b4cf539739df2c5dacb4c659f2488d92839263c45a01559281830192602092829003018186803b158015620001c957600080fd5b505afa158015620001de573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002049190620006cb565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200024d57600080fd5b505afa15801562000262573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002889190620006cb565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b158015620002d157600080fd5b505af1158015620002e6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200030c9190620006cb565b601f80546001600160a01b03199081166001600160a01b0393841617909155601d80548216848416908117909155601e8054909216858416178255601954306000818152600760209081526040808320958352948152848220849055945486168152838120929092558154909416815260088352818120805460ff199081166001908117909255948252919020805490931617909155600f54600e54600d54620003d993620003c592906200165b6200059b821b17901c565b6200059b60201b6200165b1790919060201c565b60168190555062000404601254620003c56011546010546200059b60201b6200165b1790919060201c565b6017819055506200042f601554620003c56014546013546200059b60201b6200165b1790919060201c565b6018556001600960006200044b6000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff19968716179055601f549091168152600990925280822080548416600190811790915530835290822080549093168117909255600a90620004bb6000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff19968716179055308152600a8452828120805486166001908117909155601f549092168152600b90935290822080549093161790915560195490600690620005273390565b6001600160a01b03168152602081019190915260400160002055336001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6019546040516200058a91815260200190565b60405180910390a350505062000781565b600080620005aa83856200071f565b905083811015620006015760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640160405180910390fd5b9392505050565b828054620006169062000744565b90600052602060002090601f0160209004810192826200063a576000855562000685565b82601f106200065557805160ff191683800117855562000685565b8280016001018555821562000685579182015b828111156200068557825182559160200191906001019062000668565b506200069392915062000697565b5090565b5b8082111562000693576000815560010162000698565b80516001600160a01b0381168114620006c657600080fd5b919050565b600060208284031215620006dd578081fd5b6200060182620006ae565b60008060408385031215620006fb578081fd5b6200070683620006ae565b91506200071660208401620006ae565b90509250929050565b600082198211156200073f57634e487b7160e01b81526011600452602481fd5b500190565b600181811c908216806200075957607f821691505b602082108114156200077b57634e487b7160e01b600052602260045260246000fd5b50919050565b60805160601c6128a8620007a7600039600081816104cc0152610cc101526128a86000f3fe60806040526004361061037a5760003560e01c8063715018a6116101d1578063b6c3af3411610102578063da00097d116100a0578063f0eb42071161006f578063f0eb420714610a2f578063f2fde38b14610a45578063f872858a14610a65578063fabf706314610a8657600080fd5b8063da00097d14610992578063dd62ed3e146109b3578063e207a92b146109f9578063f0cd1dac14610a1957600080fd5b8063c78a789b116100dc578063c78a789b1461090c578063c816841b1461093c578063caca53151461095c578063cf66d5171461097c57600080fd5b8063b6c3af34146108b6578063c2d4640e146108cc578063c49b9a80146108ec57600080fd5b806395d89b411161016f578063a08e671f11610149578063a08e671f14610840578063a457c2d714610856578063a5d69d1f14610876578063a9059cbb1461089657600080fd5b806395d89b41146107f55780639b99fc511461080a5780639e3fa3231461082a57600080fd5b806382247ec0116101ab57806382247ec01461078b57806382eefb43146107a15780638da5cb5b146107b75780638f03aad5146107d557600080fd5b8063715018a61461074a57806371c834021461075f5780637d1db4a51461077557600080fd5b8063313ce567116102ab57806357e6adcb116102495780635d098b38116102235780635d098b38146106be578063661b6e36146106de578063667b511c146106f457806370a082311461071457600080fd5b806357e6adcb1461065e5780635881f3ef1461067e5780635d0044ca1461069e57600080fd5b80634a74bb02116102855780634a74bb02146105c7578063526012e8146105e857806355324fa914610618578063565cec381461064857600080fd5b8063313ce5671461056557806339509351146105875780633b97084a146105a757600080fd5b80632563ae83116103185780632cdae5cb116102f25780632cdae5cb146105035780632df67109146105235780632e714266146105395780632f0a5fd41461054f57600080fd5b80632563ae831461049a57806327c8f835146104ba5780632b112e49146104ee57600080fd5b806318160ddd1161035457806318160ddd146104195780631d865c301461043857806323b872dd1461045a57806325519cf21461047a57600080fd5b806306fdde0314610386578063095ea7b3146103b15780631694505e146103e157600080fd5b3661038157005b600080fd5b34801561039257600080fd5b5061039b610ab6565b6040516103a89190612656565b60405180910390f35b3480156103bd57600080fd5b506103d16103cc3660046125a1565b610b48565b60405190151581526020016103a8565b3480156103ed57600080fd5b50601d54610401906001600160a01b031681565b6040516001600160a01b0390911681526020016103a8565b34801561042557600080fd5b506019545b6040519081526020016103a8565b34801561044457600080fd5b506104586104533660046125fe565b610b5f565b005b34801561046657600080fd5b506103d161047536600461252d565b610bbd565b34801561048657600080fd5b506104586104953660046125fe565b610c28565b3480156104a657600080fd5b506104586104b53660046125cc565b610c77565b3480156104c657600080fd5b506104017f000000000000000000000000000000000000000000000000000000000000000081565b3480156104fa57600080fd5b5061042a610cbf565b34801561050f57600080fd5b5061045861051e36600461256d565b610d09565b34801561052f57600080fd5b5061042a600e5481565b34801561054557600080fd5b5061042a60125481565b34801561055b57600080fd5b5061042a60105481565b34801561057157600080fd5b5060045460405160ff90911681526020016103a8565b34801561059357600080fd5b506103d16105a23660046125a1565b610d5e565b3480156105b357600080fd5b506104586105c23660046125e6565b610d94565b3480156105d357600080fd5b50601f546103d190600160a81b900460ff1681565b3480156105f457600080fd5b506103d16106033660046124bd565b60096020526000908152604090205460ff1681565b34801561062457600080fd5b506103d16106333660046124bd565b600b6020526000908152604090205460ff1681565b34801561065457600080fd5b5061042a60145481565b34801561066a57600080fd5b5061045861067936600461256d565b610dc3565b34801561068a57600080fd5b506104016106993660046124bd565b610e18565b3480156106aa57600080fd5b506104586106b93660046125e6565b6111aa565b3480156106ca57600080fd5b506104586106d93660046124bd565b6111d9565b3480156106ea57600080fd5b5061042a60115481565b34801561070057600080fd5b5061045861070f36600461256d565b61122b565b34801561072057600080fd5b5061042a61072f3660046124bd565b6001600160a01b031660009081526006602052604090205490565b34801561075657600080fd5b50610458611280565b34801561076b57600080fd5b5061042a60155481565b34801561078157600080fd5b5061042a601a5481565b34801561079757600080fd5b5061042a601b5481565b3480156107ad57600080fd5b5061042a60175481565b3480156107c357600080fd5b506000546001600160a01b0316610401565b3480156107e157600080fd5b506104586107f03660046125e6565b6112f4565b34801561080157600080fd5b5061039b611323565b34801561081657600080fd5b50601e54610401906001600160a01b031681565b34801561083657600080fd5b5061042a60135481565b34801561084c57600080fd5b5061042a60185481565b34801561086257600080fd5b506103d16108713660046125a1565b611332565b34801561088257600080fd5b506104586108913660046125cc565b611381565b3480156108a257600080fd5b506103d16108b13660046125a1565b6113c9565b3480156108c257600080fd5b5061042a600d5481565b3480156108d857600080fd5b506104586108e73660046125fe565b6113d6565b3480156108f857600080fd5b506104586109073660046125cc565b611425565b34801561091857600080fd5b506103d16109273660046124bd565b600a6020526000908152604090205460ff1681565b34801561094857600080fd5b50601f54610401906001600160a01b031681565b34801561096857600080fd5b506104586109773660046124bd565b6114a7565b34801561098857600080fd5b5061042a600f5481565b34801561099e57600080fd5b50601f546103d190600160b81b900460ff1681565b3480156109bf57600080fd5b5061042a6109ce3660046124f5565b6001600160a01b03918216600090815260076020908152604080832093909416825291909152205490565b348015610a0557600080fd5b50610458610a143660046124bd565b611523565b348015610a2557600080fd5b5061042a60165481565b348015610a3b57600080fd5b5061042a601c5481565b348015610a5157600080fd5b50610458610a603660046124bd565b611571565b348015610a7157600080fd5b50601f546103d190600160b01b900460ff1681565b348015610a9257600080fd5b506103d1610aa13660046124bd565b60086020526000908152604090205460ff1681565b606060028054610ac5906127bc565b80601f0160208091040260200160405190810160405280929190818152602001828054610af1906127bc565b8015610b3e5780601f10610b1357610100808354040283529160200191610b3e565b820191906000526020600020905b815481529060010190602001808311610b2157829003601f168201915b5050505050905090565b6000610b553384846116ba565b5060015b92915050565b6000546001600160a01b03163314610b925760405162461bcd60e51b8152600401610b89906126a9565b60405180910390fd5b601083905560118290556012819055610bb581610baf858561165b565b9061165b565b601755505050565b6000610bca8484846117de565b50610c1d8433610c1885604051806060016040528060288152602001612826602891396001600160a01b038a1660009081526007602090815260408083203384529091529020549190611cd0565b6116ba565b5060015b9392505050565b6000546001600160a01b03163314610c525760405162461bcd60e51b8152600401610b89906126a9565b600d839055600e829055600f819055610c6f81610baf858561165b565b601655505050565b6000546001600160a01b03163314610ca15760405162461bcd60e51b8152600401610b89906126a9565b601f8054911515600160b01b0260ff60b01b19909216919091179055565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316600090815260066020526040812054601954610d0491611d0a565b905090565b6000546001600160a01b03163314610d335760405162461bcd60e51b8152600401610b89906126a9565b6001600160a01b03919091166000908152600860205260409020805460ff1916911515919091179055565b3360008181526007602090815260408083206001600160a01b03871684529091528120549091610b55918590610c18908661165b565b6000546001600160a01b03163314610dbe5760405162461bcd60e51b8152600401610b89906126a9565b601c55565b6000546001600160a01b03163314610ded5760405162461bcd60e51b8152600401610b89906126a9565b6001600160a01b03919091166000908152600960205260409020805460ff1916911515919091179055565b600080546001600160a01b03163314610e435760405162461bcd60e51b8152600401610b89906126a9565b6000829050806001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610e8157600080fd5b505afa158015610e95573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610eb991906124d9565b6001600160a01b031663e6a4390530836001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610f0157600080fd5b505afa158015610f15573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f3991906124d9565b6040516001600160e01b031960e085901b1681526001600160a01b0392831660048201529116602482015260440160206040518083038186803b158015610f7f57600080fd5b505afa158015610f93573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fb791906124d9565b91506001600160a01b03821661113b57806001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561100057600080fd5b505afa158015611014573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061103891906124d9565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561108057600080fd5b505afa158015611094573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110b891906124d9565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b15801561110057600080fd5b505af1158015611114573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061113891906124d9565b91505b601f80546001600160a01b03199081166001600160a01b038581169182178455601d8054909316948116949094179091556000908152600960209081526040808320805460ff19908116600190811790925594549095168352600b909152902080549091169091179055919050565b6000546001600160a01b031633146111d45760405162461bcd60e51b8152600401610b89906126a9565b601b55565b6000546001600160a01b031633146112035760405162461bcd60e51b8152600401610b89906126a9565b600480546001600160a01b0390921661010002610100600160a81b0319909216919091179055565b6000546001600160a01b031633146112555760405162461bcd60e51b8152600401610b89906126a9565b6001600160a01b03919091166000908152600a60205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146112aa5760405162461bcd60e51b8152600401610b89906126a9565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b0316331461131e5760405162461bcd60e51b8152600401610b89906126a9565b601a55565b606060038054610ac5906127bc565b6000610b553384610c188560405180606001604052806025815260200161284e602591393360009081526007602090815260408083206001600160a01b038d1684529091529020549190611cd0565b6000546001600160a01b031633146113ab5760405162461bcd60e51b8152600401610b89906126a9565b601f8054911515600160b81b0260ff60b81b19909216919091179055565b6000610c1d3384846117de565b6000546001600160a01b031633146114005760405162461bcd60e51b8152600401610b89906126a9565b60138390556014829055601581905561141d81610baf858561165b565b601855505050565b6000546001600160a01b0316331461144f5760405162461bcd60e51b8152600401610b89906126a9565b601f8054821515600160a81b0260ff60a81b199091161790556040517f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc1599061149c90831515815260200190565b60405180910390a150565b601e546001600160a01b031633146115015760405162461bcd60e51b815260206004820152601860248201527f63616c6c6572206973206e6f742074686520456e67696e6500000000000000006044820152606401610b89565b600580546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b0316331461154d5760405162461bcd60e51b8152600401610b89906126a9565b6001600160a01b03166000908152600b60205260409020805460ff19166001179055565b6000546001600160a01b0316331461159b5760405162461bcd60e51b8152600401610b89906126a9565b6001600160a01b0381166116005760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610b89565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b600080611668838561274e565b905083811015610c215760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610b89565b6001600160a01b03831661171c5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610b89565b6001600160a01b03821661177d5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610b89565b6001600160a01b0383811660008181526007602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006001600160a01b0384166118445760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610b89565b6001600160a01b0383166118a65760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610b89565b601f54600160a01b900460ff16156118ca576118c3848484611d4c565b9050610c21565b6001600160a01b0384166000908152600a602052604090205460ff1615801561190c57506001600160a01b0383166000908152600a602052604090205460ff16155b1561197457601a548211156119745760405162461bcd60e51b815260206004820152602860248201527f5472616e7366657220616d6f756e74206578636565647320746865206d6178546044820152673c20b6b7bab73a1760c11b6064820152608401610b89565b6001600160a01b03841660009081526008602052604081205460ff16806119b357506001600160a01b03841660009081526008602052604090205460ff165b9050611a1b8360405180604001604052806014815260200173496e73756666696369656e742042616c616e636560601b81525060066000896001600160a01b03166001600160a01b0316815260200190815260200160002054611cd09092919063ffffffff16565b6001600160a01b03861660009081526006602052604081209190915581611a4c57611a47868686611e32565b611a4e565b835b3060009081526006602052604081205491925090601c54601f5491925082101590600160a01b900460ff16158015611a8f5750601f54600160a81b900460ff165b8015611a99575083155b15611bdc576001600160a01b0388166000908152600b602052604090205460ff1615611b81576005546001600160a01b038881169116148015611af557506001600160a01b0387166000908152600c602052604090205460ff16155b15611b25576001600160a01b0387166000908152600c60205260409020805460ff19166001179055859250611bdc565b611b38611b3284886127a5565b88611f3e565b6001600160a01b0387166000908152600c602052604090205460ff16611b7c576001600160a01b0387166000908152600c60205260409020805460ff191660011790555b611bdc565b6001600160a01b0387166000908152600b602052604090205460ff1615611bdc57611bb5611baf84886127a5565b89611f3e565b8015611bdc57601f54600160b81b900460ff1615611bd357601c5491505b611bdc82611fcf565b601f54600160b01b900460ff168015611c0e57506001600160a01b03871660009081526009602052604090205460ff16155b15611c4457601b54611c3984610baf8a6001600160a01b031660009081526006602052604090205490565b1115611c4457600080fd5b6001600160a01b038716600090815260066020526040902054611c67908461165b565b6001600160a01b0380891660008181526006602052604090819020939093559151908a16907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611cbb9087815260200190565b60405180910390a36001945050505050610c21565b60008184841115611cf45760405162461bcd60e51b8152600401610b899190612656565b506000611d0184866127a5565b95945050505050565b6000610c2183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611cd0565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600690915291822054611d9d918490611cd0565b6001600160a01b038086166000908152600660205260408082209390935590851681522054611dcc908361165b565b6001600160a01b0380851660008181526006602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611e209086815260200190565b60405180910390a35060019392505050565b6001600160a01b0383166000908152600b6020526040812054819060ff1615611e7c57611e756064611e6f6016548661211a90919063ffffffff16565b90612199565b9050611eba565b6001600160a01b0384166000908152600b602052604090205460ff1615611eba57611eb76064611e6f6017548661211a90919063ffffffff16565b90505b8015611f345730600090815260066020526040902054611eda908261165b565b30600081815260066020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611f2b9085815260200190565b60405180910390a35b611d018382611d0a565b6000611f5b601854611e6f6015548661211a90919063ffffffff16565b90508015611fca57601e5460405163640eade360e11b81526001600160a01b038481166004830152602482018490529091169063c81d5bc690604401600060405180830381600087803b158015611fb157600080fd5b505af1158015611fc5573d6000803e3d6000fd5b505050505b505050565b601f805460ff60a01b1916600160a01b179055601854601354479160009161200291600291611e6f91908290889061211a565b905060006120108483611d0a565b905061201b816121db565b600061202784476127a5565b9050600061204d612044600260135461219990919063ffffffff16565b60185490611d0a565b9050600061206f6002611e6f84611e6f6013548861211a90919063ffffffff16565b9050600061208c83611e6f6015548761211a90919063ffffffff16565b905060006120a48261209e8786611d0a565b90611d0a565b905080156120c7576004546120c79061010090046001600160a01b031682612360565b81156120e357601e546120e3906001600160a01b031683612360565b6000831180156120f35750600087115b15612102576121028784612396565b5050601f805460ff60a01b1916905550505050505050565b60008261212957506000610b59565b60006121358385612786565b9050826121428583612766565b14610c215760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610b89565b6000610c2183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061247a565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061221e57634e487b7160e01b600052603260045260246000fd5b6001600160a01b03928316602091820292909201810191909152601d54604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b15801561227257600080fd5b505afa158015612286573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122aa91906124d9565b816001815181106122cb57634e487b7160e01b600052603260045260246000fd5b6001600160a01b039283166020918202929092010152601d546122f191309116846116ba565b601d5460405163791ac94760e01b81526001600160a01b039091169063791ac9479061232a9085906000908690309042906004016126de565b600060405180830381600087803b15801561234457600080fd5b505af1158015612358573d6000803e3d6000fd5b505050505050565b6040516001600160a01b0383169082156108fc029083906000818181858888f19350505050158015611fca573d6000803e3d6000fd5b601d546123ae9030906001600160a01b0316846116ba565b601d546001600160a01b031663f305d7198230856000806123d76000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c4016060604051808303818588803b15801561243a57600080fd5b505af115801561244e573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906124739190612629565b5050505050565b6000818361249b5760405162461bcd60e51b8152600401610b899190612656565b506000611d018486612766565b803580151581146124b857600080fd5b919050565b6000602082840312156124ce578081fd5b8135610c218161280d565b6000602082840312156124ea578081fd5b8151610c218161280d565b60008060408385031215612507578081fd5b82356125128161280d565b915060208301356125228161280d565b809150509250929050565b600080600060608486031215612541578081fd5b833561254c8161280d565b9250602084013561255c8161280d565b929592945050506040919091013590565b6000806040838503121561257f578182fd5b823561258a8161280d565b9150612598602084016124a8565b90509250929050565b600080604083850312156125b3578182fd5b82356125be8161280d565b946020939093013593505050565b6000602082840312156125dd578081fd5b610c21826124a8565b6000602082840312156125f7578081fd5b5035919050565b600080600060608486031215612612578283fd5b505081359360208301359350604090920135919050565b60008060006060848603121561263d578283fd5b8351925060208401519150604084015190509250925092565b6000602080835283518082850152825b8181101561268257858101830151858201604001528201612666565b818111156126935783604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c0860191508289019350845b8181101561272d5784516001600160a01b031683529383019391830191600101612708565b50506001600160a01b03969096166060850152505050608001529392505050565b60008219821115612761576127616127f7565b500190565b60008261278157634e487b7160e01b81526012600452602481fd5b500490565b60008160001904831182151516156127a0576127a06127f7565b500290565b6000828210156127b7576127b76127f7565b500390565b600181811c908216806127d057607f821691505b602082108114156127f157634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b038116811461282257600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220603ed6fa128964dd1aa1b8306928b37e46f166d574a3a2f6b6827320921c28d664736f6c63430008040033000000000000000000000000ed416fcc98f6a55e2b04fb7fc793bbee64273bfa000000000000000000000000c39886c268cc2350cdf3d7347a19ecc6175c1f7d