[ { "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": "uint256", "name": "amountCurrency", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "amountTokens", "type": "uint256" } ], "name": "AutoLiquify", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "bool", "name": "enabled", "type": "bool" } ], "name": "ContractSwapEnabledUpdated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "previousOwner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "OwnershipTransferred", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "Transfer", "type": "event" }, { "inputs": [], "name": "CoolDownTime", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "DEAD", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "MaxTransactionTokens", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "MaxWalletTokens", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "_hasLiqBeenAdded", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "_ratios", "outputs": [ { "internalType": "uint16", "name": "marketing", "type": "uint16" }, { "internalType": "uint16", "name": "development", "type": "uint16" }, { "internalType": "uint16", "name": "staking", "type": "uint16" }, { "internalType": "uint16", "name": "team", "type": "uint16" }, { "internalType": "uint16", "name": "totalSwap", "type": "uint16" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "_taxRates", "outputs": [ { "internalType": "uint16", "name": "buyFee", "type": "uint16" }, { "internalType": "uint16", "name": "sellFee", "type": "uint16" }, { "internalType": "uint16", "name": "transferFee", "type": "uint16" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "_taxWallets", "outputs": [ { "internalType": "address payable", "name": "marketing", "type": "address" }, { "internalType": "address payable", "name": "development", "type": "address" }, { "internalType": "address payable", "name": "team", "type": "address" }, { "internalType": "address payable", "name": "staking", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "addRewardsEnabled", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "holder", "type": "address" }, { "internalType": "address", "name": "spender", "type": "address" } ], "name": "allowance", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "approve", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "approveContractContingency", "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": "newOwner", "type": "address" } ], "name": "changeAdmin", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "contractSwapEnabled", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "decimals", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "stateMutability": "pure", "type": "function" }, { "inputs": [], "name": "dexRouter", "outputs": [ { "internalType": "contract IRouter02", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address[]", "name": "accounts", "type": "address[]" }, { "internalType": "uint256[]", "name": "amounts", "type": "uint256[]" } ], "name": "distributeCoins", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "enableTrading", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "freezeTaxes", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "getCirculatingSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getOwner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "priceImpactInHundreds", "type": "uint256" } ], "name": "getTokenAmountAtPriceImpact", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address[]", "name": "_whlist", "type": "address[]" } ], "name": "initialize", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "initialized", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "isExcludedFromFees", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "isExcludedFromProtection", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "isExcludedFromWallet", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "launchStamp", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "lpPair", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "maxBuyTaxes", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "maxSellTaxes", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "maxTransferTaxes", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "max_transaction", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "max_wallet", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "pure", "type": "function" }, { "inputs": [], "name": "piContractSwapsEnabled", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "piSwapPercent", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address[]", "name": "_whlist", "type": "address[]" } ], "name": "resetWallets", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "revokeAccess", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "sellCooldownTime", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint16", "name": "marketing", "type": "uint16" }, { "internalType": "uint16", "name": "development", "type": "uint16" }, { "internalType": "uint16", "name": "team", "type": "uint16" }, { "internalType": "uint16", "name": "staking", "type": "uint16" } ], "name": "setAllocations", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bool", "name": "swapEnabled", "type": "bool" }, { "internalType": "bool", "name": "priceImpactSwapEnabled", "type": "bool" } ], "name": "setContractSwapEnabled", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "bool", "name": "enabled", "type": "bool" } ], "name": "setExcludedFromFees", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "bool", "name": "enabled", "type": "bool" } ], "name": "setExcludedFromProtection", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "bool", "name": "enabled", "type": "bool" } ], "name": "setExcludedFromWallet", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "init", "type": "address" } ], "name": "setInitializer", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "pair", "type": "address" }, { "internalType": "bool", "name": "enabled", "type": "bool" } ], "name": "setLpPair", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "maxWallet", "type": "uint256" }, { "internalType": "uint256", "name": "maxTransaction", "type": "uint256" } ], "name": "setMaxWallet", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newRouter", "type": "address" } ], "name": "setNewRouter", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "priceImpactSwapPercent", "type": "uint256" } ], "name": "setPriceImpactSwapAmount", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address payable", "name": "marketing", "type": "address" }, { "internalType": "address payable", "name": "staking", "type": "address" }, { "internalType": "address payable", "name": "development", "type": "address" }, { "internalType": "address payable", "name": "team", "type": "address" } ], "name": "setRecipients", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "selltime", "type": "uint256" } ], "name": "setSellCooldownTime", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "thresholdPercent", "type": "uint256" }, { "internalType": "uint256", "name": "thresholdDivisor", "type": "uint256" }, { "internalType": "uint256", "name": "amountPercent", "type": "uint256" }, { "internalType": "uint256", "name": "amountDivisor", "type": "uint256" } ], "name": "setSwapSettings", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint16", "name": "buyFee", "type": "uint16" }, { "internalType": "uint16", "name": "sellFee", "type": "uint16" }, { "internalType": "uint16", "name": "transferFee", "type": "uint16" } ], "name": "setTaxes", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bool", "name": "_enable", "type": "bool" } ], "name": "startStaking", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "swapAmount", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "swapThreshold", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "sweepContingency", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "token", "type": "address" } ], "name": "sweepExternalTokens", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "pure", "type": "function" }, { "inputs": [], "name": "taxesAreLocked", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "tokenDistributionWallets", "outputs": [ { "internalType": "address", "name": "team_advisors", "type": "address" }, { "internalType": "address", "name": "marketing", "type": "address" }, { "internalType": "address", "name": "dev_wallet", "type": "address" }, { "internalType": "address", "name": "private_sell", "type": "address" }, { "internalType": "address", "name": "liquidity_operations", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "pure", "type": "function" }, { "inputs": [], "name": "tradingEnabled", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "recipient", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "transfer", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "address", "name": "recipient", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "transferFrom", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "stateMutability": "payable", "type": "receive" } ]
73b6be6742242e401035be7032cf6c705415e08760608081905273bcf40d3b26c932ade09a2c53d3accc3172a6866660a081905273d0405f6d830fefc8e0223337c701418d91d41cda60c081905273cf27f53f2279a2f92660f6729943fd04122aa00360e08190525f80546001600160a01b0319908116909517815560018054861690941790935560028054851690921790915560038054841690911790556101a0604052733838e628448f2ab5ff424e8867b856455a09239961010081905273e9a624575d3379fd841a17e1e7aae6c8423fccda61012081905273b8749d4a399c875f2f17eb34053521137afebf8461014081905273e2ec39d3911740d8bbf540f04b8a34124342a4fa61016081905273cdd889740122ddd4c319a5b97f642de0b8aff9a0610180819052600480548816909517909455600580548716909317909255600680548616909117905560078054851690911790556008805490931617909155600b556103e86101766009600a61038f565b61018490633b9aca006103a4565b61018f90601e6103a4565b61019991906103bb565b6011556103e86101ab6009600a61038f565b6101b990633b9aca006103a4565b6101c490601e6103a4565b6101ce91906103bb565b601255600a6015556017805460ff60a81b1916905561012b601a55601d805461ffff60a01b1916905560408051606080820183526103e88083526020808401919091525f92840192909252601e805465ffffffffffff19166303e803e8179055825160a08101845260018082529281018390529283018290528201526004608090910152601f8054680400010001000100016001600160501b031990911617905534801561027a575f80fd5b50601b805462010000600160b01b0319163362010000021790556103da565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156102e757815f19048211156102cd576102cd610299565b808516156102da57918102915b93841c93908002906102b2565b509250929050565b5f826102fd57506001610389565b8161030957505f610389565b816001811461031f576002811461032957610345565b6001915050610389565b60ff84111561033a5761033a610299565b50506001821b610389565b5060208310610133831016604e8410600b8410161715610368575081810a610389565b61037283836102ad565b805f190482111561038557610385610299565b0290505b92915050565b5f61039d60ff8416836102ef565b9392505050565b808202811582820484141761038957610389610299565b5f826103d557634e487b7160e01b5f52601260045260245ffd5b500490565b61477a806103e75f395ff3fe60806040526004361061035f575f3560e01c806370a08231116101c3578063b3295635116100f5578063d3459d0b11610099578063d3459d0b14610b04578063dd62ed3e14610b19578063e717fc3014610b5d578063eafb5a3c14610b72578063ee5d9c2d14610b91578063f94aa1b414610ba5578063fb78680d14610c09578063fdb78c0e14610c28578063feadde9c14610c48575f80fd5b8063b3295635146109c0578063b3d514fb1461055b578063b7df8b36146109df578063b9e0ddfa146109f8578063bd7c004714610a2f578063bfc2fc3514610a4e578063c3e981db14610a6d578063cf84770614610a8c575f80fd5b806395d89b411161016757806395d89b4114610865578063a1e900e014610894578063a224cee714610906578063a9059cbb14610925578063ab558e4d14610944578063abe57e7014610963578063ace96c3214610982578063b10e6c94146109a1578063b1b08f711461055b575f80fd5b806370a082311461078a5780637f4cdb1f146107a957806380c581d1146107bd57806386240a23146107dc578063893d20e8146107fb5780638a63bd9b1461081e5780638a8c523c146108325780638f28397014610846575f80fd5b806332cde6641161029c5780634e718e48116102405780634e718e48146106795780634fbee1931461069857806350a8e016146106cf578063590ffdce146106ef578063596cd99b1461070e5780635a6f09181461072d5780635c24b074146107425780636920b492146107615780636a50c66d14610775575f80fd5b806332cde664146105a057806335b90399146105c1578063452ed4f1146105df5780634ada218b146105fe5780634bbb93eb1461061e5780634c23bdbd1461063d5780634d9f486e146106515780634e4c7d9b14610665575f80fd5b8063158ef93e11610303578063158ef93e146104df57806318160ddd146104ff57806323b872dd1461051357806328577751146105325780632b112e49146105475780632b28fc7a1461055b5780632e8fa82114610570578063313ce56714610585575f80fd5b806303fd2a451461036a5780630445b66714610395578063069d955f146103b857806306fdde031461040c5780630758d9241461044157806307dd79e014610460578063095ea7b3146104895780630dcbcf1c146104a8575f80fd5b3661036657005b5f80fd5b348015610375575f80fd5b5061037f61dead81565b60405161038c9190613e03565b60405180910390f35b3480156103a0575f80fd5b506103aa60185481565b60405190815260200161038c565b3480156103c3575f80fd5b50601e546103e79061ffff80821691620100008104821691600160201b9091041683565b6040805161ffff9485168152928416602084015292169181019190915260600161038c565b348015610417575f80fd5b506040805180820190915260048152632127222960e11b60208201525b60405161038c9190613e17565b34801561044c575f80fd5b5060165461037f906001600160a01b031681565b34801561046b575f80fd5b50601b546104799060ff1681565b604051901515815260200161038c565b348015610494575f80fd5b506104796104a3366004613e60565b610c67565b3480156104b3575f80fd5b506104796104c2366004613e8a565b6001600160a01b03165f908152600d602052604090205460ff1690565b3480156104ea575f80fd5b50601d5461047990600160b01b900460ff1681565b34801561050a575f80fd5b506103aa610c7d565b34801561051e575f80fd5b5061047961052d366004613ea5565b610c9d565b34801561053d575f80fd5b506103aa60155481565b348015610552575f80fd5b506103aa610d12565b348015610566575f80fd5b506103aa6103e881565b34801561057b575f80fd5b506103aa60195481565b348015610590575f80fd5b506040516009815260200161038c565b3480156105ab575f80fd5b506105bf6105ba366004613ef9565b610d55565b005b3480156105cc575f80fd5b50601b5461047990610100900460ff1681565b3480156105ea575f80fd5b5060175461037f906001600160a01b031681565b348015610609575f80fd5b50601d5461047990600160a81b900460ff1681565b348015610629575f80fd5b506103aa610638366004613f39565b610f06565b348015610648575f80fd5b50601a546103aa565b34801561065c575f80fd5b506105bf610f37565b348015610670575f80fd5b506105bf610f76565b348015610684575f80fd5b506105bf610693366004613f39565b611087565b3480156106a3575f80fd5b506104796106b2366004613e8a565b6001600160a01b03165f908152600e602052604090205460ff1690565b3480156106da575f80fd5b50601d5461047990600160a01b900460ff1681565b3480156106fa575f80fd5b506105bf610709366004613f5d565b611106565b348015610719575f80fd5b506105bf610728366004613f94565b611160565b348015610738575f80fd5b506103aa601c5481565b34801561074d575f80fd5b506105bf61075c366004613e8a565b611261565b34801561076c575f80fd5b506011546103aa565b348015610780575f80fd5b506103aa60125481565b348015610795575f80fd5b506103aa6107a4366004613e8a565b6113e3565b3480156107b4575f80fd5b506012546103aa565b3480156107c8575f80fd5b506105bf6107d7366004613f5d565b6113fd565b3480156107e7575f80fd5b506105bf6107f63660046140c8565b6115c2565b348015610806575f80fd5b50601b546201000090046001600160a01b031661037f565b348015610829575f80fd5b5061047961169f565b34801561083d575f80fd5b506105bf6116f0565b348015610851575f80fd5b506105bf610860366004613e8a565b611904565b348015610870575f80fd5b506040805180820190915260078152662453574950455360c81b6020820152610434565b34801561089f575f80fd5b506004546005546006546007546008546108cc946001600160a01b03908116948116938116928116911685565b604080516001600160a01b03968716815294861660208601529285169284019290925283166060830152909116608082015260a00161038c565b348015610911575f80fd5b506105bf6109203660046140c8565b611a55565b348015610930575f80fd5b5061047961093f366004613e60565b6120e5565b34801561094f575f80fd5b506105bf61095e366004613e8a565b6120fb565b34801561096e575f80fd5b506105bf61097d3660046140f9565b61221a565b34801561098d575f80fd5b506105bf61099c366004613f5d565b61232a565b3480156109ac575f80fd5b506105bf6109bb366004614119565b612384565b3480156109cb575f80fd5b506105bf6109da366004614134565b6123ce565b3480156109ea575f80fd5b506014546104799060ff1681565b348015610a03575f80fd5b50610479610a12366004613e8a565b6001600160a01b03165f908152600f602052604090205460ff1690565b348015610a3a575f80fd5b506105bf610a49366004613f39565b612518565b348015610a59575f80fd5b506105bf610a68366004614185565b61254d565b348015610a78575f80fd5b506105bf610a873660046141a1565b6125e2565b348015610a97575f80fd5b50601f54610acf9061ffff80821691620100008104821691600160201b8204811691600160301b8104821691600160401b9091041685565b6040805161ffff968716815294861660208601529285169284019290925283166060830152909116608082015260a00161038c565b348015610b0f575f80fd5b506103aa601a5481565b348015610b24575f80fd5b506103aa610b33366004614255565b6001600160a01b039182165f90815260136020908152604080832093909416825291909152205490565b348015610b68575f80fd5b506103aa60115481565b348015610b7d575f80fd5b506105bf610b8c366004613e8a565b612756565b348015610b9c575f80fd5b506105bf612b1f565b348015610bb0575f80fd5b505f54600154600254600354610bd6936001600160a01b03908116938116928116911684565b604080516001600160a01b039586168152938516602085015291841691830191909152909116606082015260800161038c565b348015610c14575f80fd5b506105bf610c23366004614281565b612bea565b348015610c33575f80fd5b5060175461047990600160a81b900460ff1681565b348015610c53575f80fd5b506105bf610c62366004613f5d565b612dfb565b5f610c73338484612e55565b5060015b92915050565b5f610c8a6009600a6143a4565b610c9890633b9aca006143b2565b905090565b6001600160a01b0383165f9081526013602090815260408083203384529091528120545f1914610cff576001600160a01b0384165f90815260136020908152604080832033845290915281208054849290610cf99084906143c9565b90915550505b610d0a848484612f19565b949350505050565b5f610d1c5f6113e3565b610d2761dead6113e3565b610d3191906143dc565b610d3d6009600a6143a4565b610d4b90633b9aca006143b2565b610c9891906143c9565b601b546201000090046001600160a01b03163314610d8e5760405162461bcd60e51b8152600401610d85906143ef565b60405180910390fd5b601b5460ff1615610dd55760405162461bcd60e51b81526020600482015260116024820152702a30bc32b99030b932903637b1b5b2b21760791b6044820152606401610d85565b601e5461ffff808416620100009092041611610e035760405162461bcd60e51b8152600401610d859061441a565b601e5461ffff808516911611610e2b5760405162461bcd60e51b8152600401610d859061441a565b601e805465ffffffff000019166201000061ffff8581169190910265ffff00000000191691909117600160201b848316021761ffff1916908516179055601c54610e78906203f4806143dc565b4210158015610e885750601c5415155b15610f01576103e88361ffff1611158015610ea957506103e88261ffff1611155b8015610ebb57506103e88161ffff1611155b610f015760405162461bcd60e51b815260206004820152601760248201527621b0b73737ba1032bc31b2b2b21036b0bc34b6bab6b99760491b6044820152606401610d85565b505050565b6017545f906103e8908390610f23906001600160a01b03166113e3565b610f2d91906143b2565b610c779190614465565b601b546201000090046001600160a01b03163314610f675760405162461bcd60e51b8152600401610d85906143ef565b601b805460ff19166001179055565b601b546201000090046001600160a01b03163314610fa65760405162461bcd60e51b8152600401610d85906143ef565b601b54610fc2906201000090046001600160a01b03165f611106565b601b805462010000600160b01b03198116909155604051620100009091046001600160a01b0316905f9082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3601d54600160a81b900460ff166110845760405162461bcd60e51b815260206004820152602f60248201527f43616e6e6f742072656e6f756e636520756e74696c2074726164696e6720686160448201526e39903132b2b71032b730b13632b21760891b6064820152608401610d85565b50565b601b546201000090046001600160a01b031633146110b75760405162461bcd60e51b8152600401610d85906143ef565b601581905560968111156110845760405162461bcd60e51b815260206004820152601660248201527521b0b73737ba1039b2ba1030b137bb329018971a929760511b6044820152606401610d85565b601b546201000090046001600160a01b031633146111365760405162461bcd60e51b8152600401610d85906143ef565b6001600160a01b03919091165f908152600e60205260409020805460ff1916911515919091179055565b601b546201000090046001600160a01b031633146111905760405162461bcd60e51b8152600401610d85906143ef565b600180546001600160a01b038085166001600160a01b03199283161790925560038054868416908316179055600280548484169083161790555f80549287169290911682179055158015906111ed57506001600160a01b03831615155b801561120157506001600160a01b03821615155b801561121557506001600160a01b03811615155b61125b5760405162461bcd60e51b815260206004820152601760248201527621b0b73737ba103132903d32b9379030b2323932b9b99760491b6044820152606401610d85565b50505050565b601b546201000090046001600160a01b031633146112915760405162461bcd60e51b8152600401610d85906143ef565b306001600160a01b038216036112da5760405162461bcd60e51b815260206004820152600e60248201526d21b0b713ba1031329039b2b6331760911b6044820152606401610d85565b601d54600160a81b900460ff16156112f0575f80fd5b601d80546001600160a01b0319166001600160a01b038316908117909155604080516330fe427560e21b8152815163c3f909d49260048084019391929182900301815f875af1925050508015611363575060408051601f3d908101601f1916820190925261136091810190614484565b60015b61136b575f80fd5b601680546001600160a01b038085166001600160a01b0319928316178355601780548583169316831790555f918252600a6020526040909120805460ff1916600117905590546113bf913091165f19612e55565b601b54601654610f01916001600160a01b0362010000909104811691165f19612e55565b6001600160a01b03165f9081526009602052604090205490565b601b546201000090046001600160a01b0316331461142d5760405162461bcd60e51b8152600401610d85906143ef565b806114ab576001600160a01b038083165f908152600a6020526040808220805460ff19169055601d5490516380c581d160e01b81529216916380c581d19161147a918691906004016144b1565b5f604051808303815f87803b158015611491575f80fd5b505af11580156114a3573d5f803e3d5ffd5b505050505050565b6001600160a01b0382165f908152600a602052604090205460ff16156115115760405162461bcd60e51b815260206004820152601b60248201527a2830b4b91030b63932b0b23c9030b23232b2103a37903634b9ba1760291b6044820152606401610d85565b600b541561156a576203f480600b544261152b91906143c9565b1161156a5760405162461bcd60e51b815260206004820152600f60248201526e19902230bc9031b7b7b63237bbb71760891b6044820152606401610d85565b42600b556001600160a01b038083165f908152600a602052604090819020805460ff19166001908117909155601d5491516380c581d160e01b815291909216916380c581d19161147a9186916004016144b1565b5050565b601b546201000090046001600160a01b031633146115f25760405162461bcd60e51b8152600401610d85906143ef565b5f5b81518110156115be575f600e5f848481518110611613576116136144cc565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020015f205f6101000a81548160ff0219169083151502179055505f600f5f848481518110611666576116666144cc565b6020908102919091018101516001600160a01b031682528101919091526040015f20805460ff19169115159190911790556001016115f4565b601b545f906201000090046001600160a01b031633146116d15760405162461bcd60e51b8152600401610d85906143ef565b6016546116ea9030906001600160a01b03165f19612e55565b50600190565b601b546201000090046001600160a01b031633146117205760405162461bcd60e51b8152600401610d85906143ef565b601d546001600160a01b031661174357601d80546001600160a01b031916301790555b601d54600160a01b900460ff166117975760405162461bcd60e51b81526020600482015260186024820152772634b8bab4b234ba3c9036bab9ba1031329030b23232b21760411b6044820152606401610d85565b601d54600160a81b900460ff16156117ec5760405162461bcd60e51b815260206004820152601860248201527754726164696e6720616c726561647920656e61626c65642160401b6044820152606401610d85565b601d54601754604051631b04570d60e21b81526001600160a01b03918216600482015263ffffffff431660248201526001600160401b034216604482015260096064820152911690636c115c34906084015f604051808303815f87803b158015611854575f80fd5b505af1925050508015611865575060015b50601d546017546001600160a01b03918216916325a71cae9161188891166113e3565b6040518263ffffffff1660e01b81526004016118a691815260200190565b60408051808303815f875af19250505080156118df575060408051601f3d908101601f191682019092526118dc918101906144e0565b60015b156118eb576019556018555b42601c55601d805460ff60a81b1916600160a81b179055565b601b546201000090046001600160a01b031633146119345760405162461bcd60e51b8152600401610d85906143ef565b61deac196001600160a01b0382160161195f5760405162461bcd60e51b8152600401610d8590614502565b6001600160a01b0381166119855760405162461bcd60e51b8152600401610d8590614502565b611990816001611106565b601b546119ac906201000090046001600160a01b03165f611106565b601b545f906119c9906201000090046001600160a01b03166113e3565b11156119fa57601b546119f8906201000090046001600160a01b0316826119ef826113e3565b5f806001613422565b505b601b80546001600160a01b038381166201000081810262010000600160b01b031985161790945560405193909204169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b601b546201000090046001600160a01b03163314611a855760405162461bcd60e51b8152600401610d85906143ef565b601d54600160b01b900460ff1615611ad55760405162461bcd60e51b8152602060048201526013602482015272185b1c9958591e481a5b9a5d1a585b1a5e9959606a1b6044820152606401610d85565b601d805460ff60b01b1916600160b01b1790557f152feca52e8f3fdde126fe21b8dd660e1f859eb6b4fafaa83368b183ff73b961805460ff1990811660019081179092557f6952827425c8afd3eba8a8768a6defbe71191752872f74297e726c054b3ae2d480548216831790557f5928c27a6fd40c8ed0e37a03e2e351082578ae0dedc08ce702ad6e3f7d65c58380548216831790556005546001600160a01b039081165f908152600f60205260408082208054851686179055600854831682528082208054851686179055600454831682528082208054851686179055600754831682528082208054851686179055600654909216815220805490911690911790556103e8611be76009600a6143a4565b611bf590633b9aca006143b2565b611c009060646143b2565b611c0a9190614465565b6005546001600160a01b03165f908152600960208190526040909120919091556103e890611c3990600a6143a4565b611c4790633b9aca006143b2565b611c539061028a6143b2565b611c5d9190614465565b6008546001600160a01b03165f908152600960208190526040909120919091556103e890611c8c90600a6143a4565b611c9a90633b9aca006143b2565b611ca59060646143b2565b611caf9190614465565b6004546001600160a01b03165f908152600960208190526040909120919091556103e890611cde90600a6143a4565b611cec90633b9aca006143b2565b611cf79060326143b2565b611d019190614465565b6007546001600160a01b03165f908152600960208190526040909120919091556103e890611d3090600a6143a4565b611d3e90633b9aca006143b2565b611d499060646143b2565b611d539190614465565b600680546001600160a01b039081165f90815260096020908152604080832095909555601b8054620100009081900485168452600c83528684208054600160ff199182168117909255600e8086527ff77e91909e61d18f67b875b2bfcae1f683a8d555e55382e3a6b082e2c59ea57a80548316841790559354929092048616855287852080548316821790553085528785208054831682179055600f845287852080548316821790556005548616855291909252858320805483168217905560085484168352858320805483168217905560045484168352858320805483168217905560075484168352858320805483168217905593549092168152928320805490911690911790555b8151811015611f0a576001600e5f848481518110611e7d57611e7d6144cc565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600f5f848481518110611ed157611ed16144cc565b6020908102919091018101516001600160a01b031682528101919091526040015f20805460ff1916911515919091179055600101611e5d565b506008546001600160a01b03165f5f805160206147258339815191526103e8611f356009600a6143a4565b611f4390633b9aca006143b2565b611f4f9061028a6143b2565b611f599190614465565b60405190815260200160405180910390a36004546001600160a01b03165f5f805160206147258339815191526103e8611f946009600a6143a4565b611fa290633b9aca006143b2565b611fad9060646143b2565b611fb79190614465565b60405190815260200160405180910390a36005546001600160a01b03165f5f805160206147258339815191526103e8611ff26009600a6143a4565b61200090633b9aca006143b2565b61200b9060646143b2565b6120159190614465565b60405190815260200160405180910390a36007546001600160a01b03165f5f805160206147258339815191526103e86120506009600a6143a4565b61205e90633b9aca006143b2565b6120699060326143b2565b6120739190614465565b60405190815260200160405180910390a36006546001600160a01b03165f5f805160206147258339815191526103e86120ae6009600a6143a4565b6120bc90633b9aca006143b2565b6120c79060646143b2565b6120d19190614465565b60405190815260200160405180910390a350565b5f6120f1338484612f19565b5060019392505050565b601b546201000090046001600160a01b0316331461212b5760405162461bcd60e51b8152600401610d85906143ef565b601b546040516370a0823160e01b815282916001600160a01b038084169263a9059cbb926201000090049091169083906370a082319061216f903090600401613e03565b602060405180830381865afa15801561218a573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906121ae919061455a565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303815f875af11580156121f6573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f019190614571565b601b546201000090046001600160a01b0316331461224a5760405162461bcd60e51b8152600401610d85906143ef565b6103e88261225a6009600a6143a4565b61226890633b9aca006143b2565b61227291906143b2565b61227c9190614465565b6011556103e88161228f6009600a6143a4565b61229d90633b9aca006143b2565b6122a791906143b2565b6122b19190614465565b6012556122c06009600a6143a4565b6122ce90633b9aca006143b2565b60115411156122ef5760405162461bcd60e51b8152600401610d859061458c565b6122fb6009600a6143a4565b61230990633b9aca006143b2565b60125411156115be5760405162461bcd60e51b8152600401610d859061458c565b601b546201000090046001600160a01b0316331461235a5760405162461bcd60e51b8152600401610d85906143ef565b6001600160a01b03919091165f908152600f60205260409020805460ff1916911515919091179055565b601b546201000090046001600160a01b031633146123b45760405162461bcd60e51b8152600401610d85906143ef565b601b80549115156101000261ff0019909216919091179055565b601b546201000090046001600160a01b031633146123fe5760405162461bcd60e51b8152600401610d85906143ef565b601e545f906124199061ffff620100008204811691166145c1565b601f805467ffff0000ffff000019166201000061ffff8881169190910261ffff60301b191691909117600160301b878316021765ffff0000ffff1916600160201b8683160261ffff19161788821617909155169050828461247a84886145c1565b61248491906145c1565b61248e91906145c1565b601f805461ffff60401b1916600160401b61ffff938416810291909117918290559004168110156125115760405162461bcd60e51b815260206004820152602760248201527f43616e6e6f74206578636565642073756d206f662062757920616e642073656c60448201526636103332b2b99760c91b6064820152608401610d85565b5050505050565b601b546201000090046001600160a01b031633146125485760405162461bcd60e51b8152600401610d85906143ef565b601a55565b601b546201000090046001600160a01b0316331461257d5760405162461bcd60e51b8152600401610d85906143ef565b60405182151581527f7b0a47d3b0234280b6c9213c5bbff44c8b6001bea7770b3950280f91410532579060200160405180910390a16014805460ff19169115159190911790556017805460ff60a81b1916600160a81b92151592909202919091179055565b601b546201000090046001600160a01b031633146126125760405162461bcd60e51b8152600401610d85906143ef565b5f5b82518161ffff16101561270c5761262d6009600a6143a4565b828261ffff1681518110612643576126436144cc565b602002602001015161265591906143b2565b61265e336113e3565b10156126a15760405162461bcd60e51b81526020600482015260126024820152712737ba1032b737bab3b4103a37b5b2b7399760711b6044820152606401610d85565b6126f933848361ffff16815181106126bb576126bb6144cc565b60200260200101516009600a6126d191906143a4565b858561ffff16815181106126e7576126e76144cc565b60200260200101516119ef91906143b2565b5080612704816145e3565b915050612614565b5080518251146115be5760405162461bcd60e51b81526020600482015260156024820152742632b733ba3439903237903737ba1036b0ba31b41760591b6044820152606401610d85565b601b546201000090046001600160a01b031633146127865760405162461bcd60e51b8152600401610d85906143ef565b601d548190600160a01b900460ff16156127e25760405162461bcd60e51b815260206004820152601e60248201527f43616e6e6f74206368616e6765206166746572206c69717569646974792e00006044820152606401610d85565b5f816001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561281f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906128439190614603565b6001600160a01b031663e6a4390530846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561288e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906128b29190614603565b6040518363ffffffff1660e01b81526004016128cf92919061461e565b602060405180830381865afa1580156128ea573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061290e9190614603565b6017546001600160a01b039081165f908152600a60205260409020805460ff191690559091508116612a8b57816001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015612976573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061299a9190614603565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156129e5573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612a099190614603565b6040518363ffffffff1660e01b8152600401612a2692919061461e565b6020604051808303815f875af1158015612a42573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612a669190614603565b601780546001600160a01b0319166001600160a01b0392909216919091179055612aa7565b601780546001600160a01b0319166001600160a01b0383161790555b601780546001600160a01b039081165f908152600f602090815260408083208054600160ff19918216811790925589861685528285208054821683179055955485168452600a909252909120805490931617909155601680546001600160a01b0319169184169182179055610f019030905f19612e55565b601b546201000090046001600160a01b03163314612b4f5760405162461bcd60e51b8152600401610d85906143ef565b601b546040516001600160a01b036201000090920491909116904780156108fc02915f818181858888f19350505050158015612b8d573d5f803e3d5ffd5b50601d54600160a01b900460ff1615612be85760405162461bcd60e51b815260206004820152601c60248201527f43616e6e6f742063616c6c206166746572206c69717569646974792e000000006044820152606401610d85565b565b601b546201000090046001600160a01b03163314612c1a5760405162461bcd60e51b8152600401610d85906143ef565b8082612c286009600a6143a4565b612c3690633b9aca006143b2565b612c4091906143b2565b612c4a9190614465565b6019558284612c5b6009600a6143a4565b612c6990633b9aca006143b2565b612c7391906143b2565b612c7d9190614465565b6018556017546103e890612c99906001600160a01b03166113e3565b612ca49060966143b2565b612cae9190614465565b6019541115612d0b5760405162461bcd60e51b815260206004820152602360248201527f43616e6e6f742062652061626f766520312e3525206f662063757272656e742060448201526228249760e91b6064820152608401610d85565b620f4240612d1b6009600a6143a4565b612d2990633b9aca006143b2565b612d339190614465565b6019541015612d545760405162461bcd60e51b8152600401610d8590614638565b620f4240612d646009600a6143a4565b612d7290633b9aca006143b2565b612d7c9190614465565b6018541015612d9d5760405162461bcd60e51b8152600401610d8590614638565b601954601854111561125b5760405162461bcd60e51b815260206004820152602160248201527f5468726573686f6c642063616e6e6f742062652061626f766520616d6f756e746044820152601760f91b6064820152608401610d85565b601b546201000090046001600160a01b03163314612e2b5760405162461bcd60e51b8152600401610d85906143ef565b6001600160a01b03919091165f908152600d60205260409020805460ff1916911515919091179055565b6001600160a01b038216612e7b5760405162461bcd60e51b8152600401610d8590614686565b6001600160a01b038316612ea15760405162461bcd60e51b8152600401610d8590614686565b816001600160a01b0316836001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051612ee691815260200190565b60405180910390a36001600160a01b039283165f9081526013602090815260408083209490951682529290925291902055565b5f6001600160a01b038316612f7c5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610d85565b5f8211612fdd5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610d85565b6001600160a01b0384166130415760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610d85565b6001600160a01b0384165f908152600a60205260408120548190819060ff161561306d57506001613118565b6001600160a01b0386165f908152600a602052604090205460ff1615613113576001600160a01b0387165f908152600f60205260409020546001935060ff1661310e5760125485111561310e5760405162461bcd60e51b815260206004820152602360248201527f5472616e73616374696f6e2045786365656473204d6178205472616e7361637460448201526234b7b760e91b6064820152608401610d85565b613118565b600191505b6001600160a01b0386165f908152600f602052604090205460ff166131ab576011546001600160a01b0387165f9081526009602052604090205461315d9087906143dc565b11156131ab5760405162461bcd60e51b815260206004820152601e60248201527f5472616e73616374696f6e2045786365656473204d61782057616c6c657400006044820152606401610d85565b6131b5878761360f565b156132b657601d54600160a81b900460ff166132b657816132135760405162461bcd60e51b815260206004820152601860248201527754726164696e67206e6f742079657420656e61626c65642160401b6044820152606401610d85565b6001600160a01b0387165f908152600d602052604090205460ff1615801561325357506001600160a01b0386165f908152600d602052604090205460ff16155b156132b65760405162461bcd60e51b815260206004820152602d60248201527f546f6b656e732063616e6e6f74206265206d6f76656420756e74696c2074726160448201526c3234b7339034b9903634bb329760991b6064820152608401610d85565b8215613409576001600160a01b0387165f908152600e602052604090205460ff1661337757601a546001600160a01b0388165f908152601060205260409020544291613301916143dc565b1061335c5760405162461bcd60e51b815260206004820152602560248201527f596f75206e65656420746f2077616974206265666f72652073656c6c696e672060448201526430b3b0b4b760d91b6064820152608401610d85565b6001600160a01b0387165f9081526010602052604090204290555b601754600160a01b900460ff1661340957601754600160a81b900460ff1615613409575f6133a4306113e3565b905060185481106134075760195460145460ff16156133f1576015546017546103e891906133da906001600160a01b03166113e3565b6133e491906143b2565b6133ee9190614465565b90505b8082106133fc578091505b61340582613729565b505b505b613417878787848787613422565b979650505050505050565b6001600160a01b0386165f908152600e602052604081205460019060ff168061346257506001600160a01b0387165f908152600e602052604090205460ff165b1561346a57505f5b6001600160a01b0388165f90815260096020526040812080548892906134919084906143c9565b909155505f9050816134a357866134af565b6134af89888888613bf5565b6001600160a01b0389165f908152600960205260408120805492935083929091906134db9084906143dc565b92505081905550876001600160a01b0316896001600160a01b03165f805160206147258339815191528360405161351491815260200190565b60405180910390a3601d54600160a01b900460ff16613600576135378989613cbe565b601d54600160a01b900460ff161580156135565750613556898961360f565b801561357a57506001600160a01b0389165f908152600d602052604090205460ff16155b801561359e57506001600160a01b0388165f908152600d602052604090205460ff16155b80156135a8575083155b156136005760405162461bcd60e51b815260206004820152602260248201527f5072652d6c6971756964697479207472616e736665722070726f74656374696f604482015261371760f11b6064820152608401610d85565b50600198975050505050505050565b601b545f906001600160a01b038481166201000090920416148015906136465750601b546201000090046001600160a01b03163214155b801561366a57506001600160a01b0382165f908152600c602052604090205460ff16155b801561368e57506001600160a01b0383165f908152600c602052604090205460ff16155b80156136a557506001600160a01b03821661dead14155b80156136b957506001600160a01b03821615155b80156136ce57506001600160a01b0383163014155b80156136e85750601d546001600160a01b03848116911614155b80156137025750601d546001600160a01b03838116911614155b80156137225750601b546001600160a01b03838116620100009092041614155b9392505050565b6017805460ff60a01b1916600160a01b1790556040805160028082526060820183525f9260208301908036833701905050905030815f8151811061376f5761376f6144cc565b6001600160a01b03928316602091820292909201810191909152601654604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156137c6573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906137ea9190614603565b816001815181106137fd576137fd6144cc565b6001600160a01b039092166020928302919091018201526040805160a081018252601f5461ffff8082168352620100008204811694830194909452600160201b8104841692820192909252600160301b820483166060820152600160401b909104909116608082018190525f03613875575050613be5565b305f9081526013602090815260408083206016546001600160a01b031684529091529020545f19146138ca57305f9081526013602090815260408083206016546001600160a01b0316845290915290205f1990555b60165460405163791ac94760e01b81526001600160a01b039091169063791ac947906139029086905f908790309042906004016146b3565b5f604051808303815f87803b158015613919575f80fd5b505af192505050801561392a575060015b613935575050613be5565b5f4790505f80836080015161ffff16846020015161ffff168461395891906143b2565b6139629190614465565b90505f846080015161ffff16856060015161ffff168561398291906143b2565b61398c9190614465565b90505f856080015161ffff16866040015161ffff16866139ac91906143b2565b6139b69190614465565b90505f826139c485846143dc565b6139ce91906143dc565b6139d890876143c9565b602088015190915061ffff1615613a43576001546040516001600160a01b039091169061d6d89086905f818181858888f193505050503d805f8114613a38576040519150601f19603f3d011682016040523d82523d5f602084013e613a3d565b606091505b50909550505b606087015161ffff1615613aab576002546040516001600160a01b039091169061d6d89085905f818181858888f193505050503d805f8114613aa0576040519150601f19603f3d011682016040523d82523d5f602084013e613aa5565b606091505b50909550505b865161ffff1615613b0f575f80546040516001600160a01b039091169161d6d8918491818181858888f193505050503d805f8114613b04576040519150601f19603f3d011682016040523d82523d5f602084013e613b09565b606091505b50909550505b604087015161ffff1615613bdc576003546040516001600160a01b039091169061d6d89084905f818181858888f193505050503d805f8114613b6c576040519150601f19603f3d011682016040523d82523d5f602084013e613b71565b606091505b5050601b54909550610100900460ff1615613bdc5760035460405163beceed3960e01b8152600481018490526001600160a01b039091169063beceed39906024015f604051808303815f87803b158015613bc9575f80fd5b505af1925050508015613bda575060015b505b50505050505050505b506017805460ff60a01b19169055565b5f808315613c0a5750601e5461ffff16613c33565b8215613c235750601e5462010000900461ffff16613c33565b50601e54600160201b900461ffff165b805f03613c435784915050610d0a565b5f6103e8613c5183886143b2565b613c5b9190614465565b90508015613cb457305f9081526009602052604081208054839290613c819084906143dc565b909155505060405181815230906001600160a01b038916905f805160206147258339815191529060200160405180910390a35b61341781876143c9565b601d54600160a01b900460ff1615613d245760405162461bcd60e51b815260206004820152602360248201527f4c697175696469747920616c726561647920616464656420616e64206d61726b60448201526232b21760e91b6064820152608401610d85565b613d2e828261360f565b158015613d4857506017546001600160a01b038281169116145b156115be576001600160a01b038083165f908152600e60209081526040808320805460ff199081166001908117909255601d805460ff60a01b1916600160a01b178155600c9094529190932080549091169092179091555416613db857601d80546001600160a01b031916301790555b604051600181527f7b0a47d3b0234280b6c9213c5bbff44c8b6001bea7770b3950280f91410532579060200160405180910390a16017805460ff60a81b1916600160a81b1790555050565b6001600160a01b0391909116815260200190565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b6001600160a01b0381168114611084575f80fd5b5f8060408385031215613e71575f80fd5b8235613e7c81613e4c565b946020939093013593505050565b5f60208284031215613e9a575f80fd5b813561372281613e4c565b5f805f60608486031215613eb7575f80fd5b8335613ec281613e4c565b92506020840135613ed281613e4c565b929592945050506040919091013590565b803561ffff81168114613ef4575f80fd5b919050565b5f805f60608486031215613f0b575f80fd5b613f1484613ee3565b9250613f2260208501613ee3565b9150613f3060408501613ee3565b90509250925092565b5f60208284031215613f49575f80fd5b5035919050565b8015158114611084575f80fd5b5f8060408385031215613f6e575f80fd5b8235613f7981613e4c565b91506020830135613f8981613f50565b809150509250929050565b5f805f8060808587031215613fa7575f80fd5b8435613fb281613e4c565b93506020850135613fc281613e4c565b92506040850135613fd281613e4c565b91506060850135613fe281613e4c565b939692955090935050565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f191681016001600160401b038111828210171561402957614029613fed565b604052919050565b5f6001600160401b0382111561404957614049613fed565b5060051b60200190565b5f82601f830112614062575f80fd5b8135602061407761407283614031565b614001565b8083825260208201915060208460051b870101935086841115614098575f80fd5b602086015b848110156140bd5780356140b081613e4c565b835291830191830161409d565b509695505050505050565b5f602082840312156140d8575f80fd5b81356001600160401b038111156140ed575f80fd5b610d0a84828501614053565b5f806040838503121561410a575f80fd5b50508035926020909101359150565b5f60208284031215614129575f80fd5b813561372281613f50565b5f805f8060808587031215614147575f80fd5b61415085613ee3565b935061415e60208601613ee3565b925061416c60408601613ee3565b915061417a60608601613ee3565b905092959194509250565b5f8060408385031215614196575f80fd5b8235613f7981613f50565b5f80604083850312156141b2575f80fd5b82356001600160401b03808211156141c8575f80fd5b6141d486838701614053565b93506020915081850135818111156141ea575f80fd5b85019050601f810186136141fc575f80fd5b803561420a61407282614031565b81815260059190911b82018301908381019088831115614228575f80fd5b928401925b828410156142465783358252928401929084019061422d565b80955050505050509250929050565b5f8060408385031215614266575f80fd5b823561427181613e4c565b91506020830135613f8981613e4c565b5f805f8060808587031215614294575f80fd5b5050823594602084013594506040840135936060013592509050565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156142fe57815f19048211156142e4576142e46142b0565b808516156142f157918102915b93841c93908002906142c9565b509250929050565b5f8261431457506001610c77565b8161432057505f610c77565b816001811461433657600281146143405761435c565b6001915050610c77565b60ff841115614351576143516142b0565b50506001821b610c77565b5060208310610133831016604e8410600b841016171561437f575081810a610c77565b61438983836142c4565b805f190482111561439c5761439c6142b0565b029392505050565b5f61372260ff841683614306565b8082028115828204841417610c7757610c776142b0565b81810381811115610c7757610c776142b0565b80820180821115610c7757610c776142b0565b60208082526011908201527021b0b63632b9101e979e9037bbb732b91760791b604082015260600190565b6020808252602b908201527f50726f746563747320636f6d6d756e69747920616761696e737420696e63726560408201526a6173696e6720746178657360a81b606082015260800190565b5f8261447f57634e487b7160e01b5f52601260045260245ffd5b500490565b5f8060408385031215614495575f80fd5b82516144a081613e4c565b6020840151909250613f8981613e4c565b6001600160a01b039290921682521515602082015260400190565b634e487b7160e01b5f52603260045260245ffd5b5f80604083850312156144f1575f80fd5b505080516020909101519092909150565b60208082526038908201527f43616c6c207265766f6b6541636365737320746f207472616e73666572206f776040820152773732b9103a37903a3432903d32b9379030b2323932b9b99760411b606082015260800190565b5f6020828403121561456a575f80fd5b5051919050565b5f60208284031215614581575f80fd5b815161372281613f50565b6020808252601b908201527a21b0b73737ba1032bc31b2b2b2102a37ba30b61039bab838363c9760291b604082015260600190565b61ffff8181168382160190808211156145dc576145dc6142b0565b5092915050565b5f61ffff8083168181036145f9576145f96142b0565b6001019392505050565b5f60208284031215614613575f80fd5b815161372281613e4c565b6001600160a01b0392831681529116602082015260400190565b6020808252602e908201527f43616e6e6f74206265206c6f776572207468616e20302e303030303125206f6660408201526d103a37ba30b61039bab838363c9760911b606082015260800190565b60208082526013908201527245524332303a205a65726f204164647265737360681b604082015260600190565b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b818110156147035784516001600160a01b0316835293830193918301916001016146de565b50506001600160a01b0396909616606085015250505060800152939250505056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa26469706673582212204043f4038b83b0ea1aa2f34b45f4e5a68db83b545d75895fdc443694b7a262a564736f6c63430008190033