[ { "inputs": [], "stateMutability": "payable", "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": "minTokensBeforeSwap", "type": "uint256" } ], "name": "MinTokensBeforeSwapUpdated", "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": "address", "name": "sniperAddress", "type": "address" } ], "name": "SniperCaught", "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": 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": "_hasLiqBeenAdded", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "_liquidityFee", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "_marketingFee", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "_reflectFee", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "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": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "burnAddress", "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": "uint256", "name": "tAmount", "type": "uint256" } ], "name": "deliver", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "dexRouter", "outputs": [ { "internalType": "contract IJoeRouter02", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "excludeFromFee", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "excludeFromReward", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "getOwner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "includeInFee", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "includeInReward", "outputs": [], "stateMutability": "nonpayable", "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": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "isExcludedFromFee", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "isExcludedFromReward", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "isSniper", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "lpPair", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "maxTxAmountUI", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "maxWalletSizeUI", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "owner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tAmount", "type": "uint256" }, { "internalType": "bool", "name": "deductTransferFee", "type": "bool" } ], "name": "reflectionFromToken", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "removeSniper", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "pair", "type": "address" } ], "name": "setLPPair", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "liquidityFee", "type": "uint256" } ], "name": "setLiquidityFeePercent", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "marketingFee", "type": "uint256" } ], "name": "setMarketingFeePercent", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address payable", "name": "newWallet", "type": "address" } ], "name": "setMarketingWallet", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "percent", "type": "uint256" }, { "internalType": "uint256", "name": "divisor", "type": "uint256" } ], "name": "setMaxTxPercent", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "percent", "type": "uint256" }, { "internalType": "uint256", "name": "divisor", "type": "uint256" } ], "name": "setMaxWalletSize", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bool", "name": "enabled", "type": "bool" } ], "name": "setSniperProtectionEnabled", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bool", "name": "_enabled", "type": "bool" } ], "name": "setSwapAndLiquifyEnabled", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "reflectFee", "type": "uint256" } ], "name": "setTaxFeePercent", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "snipersCaught", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "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": [ { "internalType": "uint256", "name": "rAmount", "type": "uint256" } ], "name": "tokenFromReflection", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalFees", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "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": "recipients", "type": "address[]" }, { "internalType": "uint256[]", "name": "amounts", "type": "uint256[]" } ], "name": "transferBatch", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "address", "name": "recipient", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "transferFrom", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "transferOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address payable", "name": "recipient", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "withdrawETH", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "stateMutability": "payable", "type": "receive" } ]
60a060405266038d7ea4c680006009908155600a805460ff191682178155600b8290556200002e919062000a60565b6009546200003d919062000b1e565b600c819055620000509060001962000b97565b6200005e9060001962000b40565b600d908155604080518082019091528181526c08ed8c2c6d2cae498c2eadcc6d609b1b60209091019081526200009891600f919062000928565b5060408051808201909152600480825263474c414360e01b6020909201918252620000c69160109162000928565b5060646011819055601281905561271060138190556101906014819055601555601681905561012c60178190556018556019819055601a55601d80546001600160a01b03199081167360ae616a2155ee3d9a68541ba4544862310933d417909155601e805490911661dead179055601f8054600161ff0160a01b03191673c260b90f0090210c55f5fbdb038dae4cf3486d1d17905560208190556103e86021819055600c549091620001789162000b1e565b62000184919062000a00565b602255602254602355602154602054600954620001a2919062000b1e565b620001ae919062000a00565b60245560646025556064602655602654602554600c54620001d0919062000b1e565b620001dc919062000a00565b602755602754602855602654602554600954620001fa919062000b1e565b62000206919062000a00565b602955612710600c5460056200021d919062000b1e565b62000229919062000a00565b602a55602b805461ffff191660011790556000602c819055602d819055602e819055620002533390565b600080546001600160a01b0319166001600160a01b0383169081178255604051929350917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600c5433600090815260026020908152604080832093909355600d546001825283832055608091909152601d54825163c45a015560e01b815292516001600160a01b0390911692839263c45a015592600480840193829003018186803b1580156200030757600080fd5b505afa1580156200031c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003429190620009ce565b6001600160a01b031663c9c6539630836001600160a01b03166373b295c26040518163ffffffff1660e01b815260040160206040518083038186803b1580156200038b57600080fd5b505afa158015620003a0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003c69190620009ce565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b1580156200040f57600080fd5b505af115801562000424573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200044a9190620009ce565b601c80546001600160a01b03199081166001600160a01b0393841617909155601b8054909116918316919091179055600160046000620004926000546001600160a01b031690565b6001600160a01b0316815260208082019290925260409081016000908120805494151560ff199586161790553081526004909252812080549092166001908117909255600890620004eb6000546001600160a01b031690565b6001600160a01b0316815260208082019290925260409081016000908120805494151560ff19958616179055308082526005938490529181208054909416600190811790945560068054808601825590825260008051602062003d778339815191520180546001600160a01b031916909217909155620005736000546001600160a01b031690565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790556006620005b06000546001600160a01b031690565b8154600181810184556000938452602080852090920180546001600160a01b039485166001600160a01b031991821617909155601e80548516865260059093526040808620805460ff199081168517909155935460068054808601825560008051602062003d778339815191529081018054861693891693909317909255601f80548816895283892080548816871790555481548087018355830180548616918916919091179055601c8054881689529288208054909616851790955590548454938401855593909552930180549093169116179055620006aa620006923390565b601d54600c546001600160a01b0390911690620007fc565b60076020527f3974655cf386dd0281d59943512b6e165571102f9cb45bb0979553e0772b39858054600160ff1991821681179092557fb877ca8b0c5fe75c56db8213368dfb62c6fb4034344b04d1504b7d5f77951d2380548216831790557fbb0a2d119ce52bb7d38f8b215dbe54a42d514050121aa352f30dcef48f9d6a1480548216831790557f102656755fc8c0116fbfdf77f8422922a98f38f25570077fe627b486ced4fa3d8054821683179055730538856b6d0383cde1709c6531b9a0437185462b6000527fc6499e842fb36db155a11e95063f7ea8c317f53f6fea0380357c187943bf739680549091169091179055620007a53390565b6001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600c54604051620007ed91815260200190565b60405180910390a35062000bda565b6001600160a01b038316620008645760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084015b60405180910390fd5b6001600160a01b038216620008c75760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016200085b565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b828054620009369062000b5a565b90600052602060002090601f0160209004810192826200095a5760008555620009a5565b82601f106200097557805160ff1916838001178555620009a5565b82800160010185558215620009a5579182015b82811115620009a557825182559160200191906001019062000988565b50620009b3929150620009b7565b5090565b5b80821115620009b35760008155600101620009b8565b600060208284031215620009e157600080fd5b81516001600160a01b0381168114620009f957600080fd5b9392505050565b60008262000a125762000a1262000bc4565b500490565b600181815b8085111562000a5857816000190482111562000a3c5762000a3c62000bae565b8085161562000a4a57918102915b93841c939080029062000a1c565b509250929050565b6000620009f9838360008262000a795750600162000b18565b8162000a885750600062000b18565b816001811462000aa1576002811462000aac5762000acc565b600191505062000b18565b60ff84111562000ac05762000ac062000bae565b50506001821b62000b18565b5060208310610133831016604e8410600b841016171562000af1575081810a62000b18565b62000afd838362000a17565b806000190482111562000b145762000b1462000bae565b0290505b92915050565b600081600019048311821515161562000b3b5762000b3b62000bae565b500290565b60008282101562000b555762000b5562000bae565b500390565b600181811c9082168062000b6f57607f821691505b6020821081141562000b9157634e487b7160e01b600052602260045260246000fd5b50919050565b60008262000ba95762000ba962000bc4565b500690565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052601260045260246000fd5b60805161318162000bf660003960006121f001526131816000f3fe6080604052600436106102b25760003560e01c80634a74bb02116101755780638da5cb5b116100dc578063d7124d9f11610095578063e79d41601161006f578063e79d41601461089a578063ea2f0b37146108b0578063f2fde38b146108d0578063f6540ec7146108f057600080fd5b8063d7124d9f14610814578063dd62ed3e14610834578063de1c24d01461087a57600080fd5b80638da5cb5b146107615780638ee88c531461077f57806395d89b411461079f578063a457c2d7146107b4578063a9059cbb146107d4578063c49b9a80146107f457600080fd5b80636bc87c3a1161012e5780636bc87c3a146106bd57806370a08231146106d357806370d5ae05146106f3578063715018a61461071357806388f8202014610728578063893d20e81461076157600080fd5b80634a74bb02146105ee57806350a8e0161461060f57806352390c021461062e5780635342acb41461064e5780635d098b381461068757806364038409146106a757600080fd5b8063313ce567116102195780633f3cf56c116101d25780633f3cf56c1461052e578063437823ec1461054e578063452ed4f11461056e5780634549b0391461058e578063457c194c146105ae5780634782f779146105ce57600080fd5b8063313ce5671461046c57806333251a0b1461048e5780633685d419146104ae57806339509351146104ce5780633b3e672f146104ee5780633bd5d1731461050e57600080fd5b806315639c1b1161026b57806315639c1b146103cb57806318160ddd146103e157806322976e0d146103f657806323b872dd1461040c578063260039571461042c5780632d8381191461044c57600080fd5b8063061c82d0146102be57806306fdde03146102e05780630758d9241461030b578063095ea7b3146103435780630f3a325f1461037357806313114a9d146103ac57600080fd5b366102b957005b600080fd5b3480156102ca57600080fd5b506102de6102d9366004612e4e565b610906565b005b3480156102ec57600080fd5b506102f561094d565b6040516103029190612ee3565b60405180910390f35b34801561031757600080fd5b50601b5461032b906001600160a01b031681565b6040516001600160a01b039091168152602001610302565b34801561034f57600080fd5b5061036361035e366004612d21565b6109df565b6040519015158152602001610302565b34801561037f57600080fd5b5061036361038e366004612ce7565b6001600160a01b031660009081526007602052604090205460ff1690565b3480156103b857600080fd5b50600e545b604051908152602001610302565b3480156103d757600080fd5b506103bd60115481565b3480156103ed57600080fd5b50600c546103bd565b34801561040257600080fd5b506103bd60175481565b34801561041857600080fd5b50610363610427366004612d86565b6109f6565b34801561043857600080fd5b506102de610447366004612e93565b610a5f565b34801561045857600080fd5b506103bd610467366004612e4e565b610ad4565b34801561047857600080fd5b50600a5460405160ff9091168152602001610302565b34801561049a57600080fd5b506102de6104a9366004612ce7565b610b58565b3480156104ba57600080fd5b506102de6104c9366004612ce7565b610c15565b3480156104da57600080fd5b506103636104e9366004612d21565b610dcc565b3480156104fa57600080fd5b50610363610509366004612dc7565b610e02565b34801561051a57600080fd5b506102de610529366004612e4e565b610ed9565b34801561053a57600080fd5b506102de610549366004612e93565b610fc3565b34801561055a57600080fd5b506102de610569366004612ce7565b611032565b34801561057a57600080fd5b50601c5461032b906001600160a01b031681565b34801561059a57600080fd5b506103bd6105a9366004612e67565b611080565b3480156105ba57600080fd5b506102de6105c9366004612e4e565b61110d565b3480156105da57600080fd5b506102de6105e9366004612d21565b61114b565b3480156105fa57600080fd5b50601f5461036390600160a81b900460ff1681565b34801561061b57600080fd5b50602b5461036390610100900460ff1681565b34801561063a57600080fd5b506102de610649366004612ce7565b611220565b34801561065a57600080fd5b50610363610669366004612ce7565b6001600160a01b031660009081526004602052604090205460ff1690565b34801561069357600080fd5b506102de6106a2366004612ce7565b611373565b3480156106b357600080fd5b506103bd60245481565b3480156106c957600080fd5b506103bd60145481565b3480156106df57600080fd5b506103bd6106ee366004612ce7565b611413565b3480156106ff57600080fd5b50601e5461032b906001600160a01b031681565b34801561071f57600080fd5b506102de611472565b34801561073457600080fd5b50610363610743366004612ce7565b6001600160a01b031660009081526005602052604090205460ff1690565b34801561076d57600080fd5b506000546001600160a01b031661032b565b34801561078b57600080fd5b506102de61079a366004612e4e565b6114e6565b3480156107ab57600080fd5b506102f5611524565b3480156107c057600080fd5b506103636107cf366004612d21565b611533565b3480156107e057600080fd5b506103636107ef366004612d21565b611582565b34801561080057600080fd5b506102de61080f366004612e33565b61158f565b34801561082057600080fd5b506102de61082f366004612e33565b611611565b34801561084057600080fd5b506103bd61084f366004612d4d565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b34801561088657600080fd5b506102de610895366004612ce7565b611696565b3480156108a657600080fd5b506103bd602e5481565b3480156108bc57600080fd5b506102de6108cb366004612ce7565b6116e2565b3480156108dc57600080fd5b506102de6108eb366004612ce7565b61172d565b3480156108fc57600080fd5b506103bd60295481565b6000546001600160a01b031633146109395760405162461bcd60e51b815260040161093090612f38565b60405180910390fd5b60135481111561094857600080fd5b601155565b6060600f805461095c9061304e565b80601f01602080910402602001604051908101604052809291908181526020018280546109889061304e565b80156109d55780601f106109aa576101008083540402835291602001916109d5565b820191906000526020600020905b8154815290600101906020018083116109b857829003601f168201915b5050505050905090565b60006109ec338484611817565b5060015b92915050565b6000610a0384848461193b565b610a558433610a50856040518060600160405280602881526020016130ff602891396001600160a01b038a1660009081526003602090815260408083203384529091529020549190611c6d565b611817565b5060019392505050565b6000546001600160a01b03163314610a895760405162461bcd60e51b815260040161093090612f38565b6103e8811115610a9857600080fd5b610ab781610ab184600c54611ca790919063ffffffff16565b90611d26565b602755600954610acd908290610ab19085611ca7565b6029555050565b6000600d54821115610b3b5760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b6064820152608401610930565b6000610b45611d68565b9050610b518382611d26565b9392505050565b6000546001600160a01b03163314610b825760405162461bcd60e51b815260040161093090612f38565b6001600160a01b03811660009081526007602052604090205460ff16610bf45760405162461bcd60e51b815260206004820152602160248201527f4163636f756e74206973206e6f742061207265636f7264656420736e697065726044820152601760f91b6064820152608401610930565b6001600160a01b03166000908152600760205260409020805460ff19169055565b6000546001600160a01b03163314610c3f5760405162461bcd60e51b815260040161093090612f38565b6001600160a01b03811660009081526005602052604090205460ff16610ca75760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c7564656400000000006044820152606401610930565b60005b600654811015610dc857816001600160a01b031660068281548110610cd157610cd16130d0565b6000918252602090912001546001600160a01b03161415610db65760068054610cfc90600190613037565b81548110610d0c57610d0c6130d0565b600091825260209091200154600680546001600160a01b039092169183908110610d3857610d386130d0565b600091825260208083209190910180546001600160a01b0319166001600160a01b039485161790559184168152600282526040808220829055600590925220805460ff191690556006805480610d9057610d906130ba565b600082815260209020810160001990810180546001600160a01b03191690550190555050565b80610dc081613089565b915050610caa565b5050565b3360008181526003602090815260408083206001600160a01b038716845290915281205490916109ec918590610a509086611d8b565b6000838214610e5d5760405162461bcd60e51b815260206004820152602160248201527f4d757374206265206d61746368696e6720617267756d656e74206c656e6774686044820152607360f81b6064820152608401610930565b8360005b81811015610ecc57610eb1878783818110610e7e57610e7e6130d0565b9050602002016020810190610e939190612ce7565b868684818110610ea557610ea56130d0565b90506020020135611582565b610eba57600080fd5b80610ec481613089565b915050610e61565b5060019695505050505050565b3360008181526005602052604090205460ff1615610f4e5760405162461bcd60e51b815260206004820152602c60248201527f4578636c75646564206164647265737365732063616e6e6f742063616c6c207460448201526b3434b990333ab731ba34b7b760a11b6064820152608401610930565b6000610f5983611dea565b505050506001600160a01b038416600090815260016020526040902054919250610f8591905082611e39565b6001600160a01b038316600090815260016020526040902055600d54610fab9082611e39565b600d55600e54610fbb9084611d8b565b600e55505050565b6000546001600160a01b03163314610fed5760405162461bcd60e51b815260040161093090612f38565b612710811115610ffc57600080fd5b61101581610ab184600c54611ca790919063ffffffff16565b60225560095461102b908290610ab19085611ca7565b6024555050565b6000546001600160a01b0316331461105c5760405162461bcd60e51b815260040161093090612f38565b6001600160a01b03166000908152600460205260409020805460ff19166001179055565b6000600c548311156110d45760405162461bcd60e51b815260206004820152601f60248201527f416d6f756e74206d757374206265206c657373207468616e20737570706c79006044820152606401610930565b816110f35760006110e484611dea565b509395506109f0945050505050565b60006110fe84611dea565b509295506109f0945050505050565b6000546001600160a01b031633146111375760405162461bcd60e51b815260040161093090612f38565b60195481111561114657600080fd5b601755565b6000546001600160a01b031633146111755760405162461bcd60e51b815260040161093090612f38565b600080836001600160a01b03168360405160006040518083038185875af1925050503d80600081146111c3576040519150601f19603f3d011682016040523d82523d6000602084013e6111c8565b606091505b50915091508161121a5760405162461bcd60e51b815260206004820152601760248201527f4661696c656420746f20776974686472617720415641580000000000000000006044820152606401610930565b50505050565b6000546001600160a01b0316331461124a5760405162461bcd60e51b815260040161093090612f38565b6001600160a01b03811660009081526005602052604090205460ff16156112b35760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c7564656400000000006044820152606401610930565b6001600160a01b0381166000908152600160205260409020541561130d576001600160a01b0381166000908152600160205260409020546112f390610ad4565b6001600160a01b0382166000908152600260205260409020555b6001600160a01b03166000818152600560205260408120805460ff191660019081179091556006805491820181559091527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f0180546001600160a01b0319169091179055565b6000546001600160a01b0316331461139d5760405162461bcd60e51b815260040161093090612f38565b601f546001600160a01b03828116911614156113f15760405162461bcd60e51b815260206004820152601360248201527257616c6c657420616c7265616479207365742160681b6044820152606401610930565b601f80546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b03811660009081526005602052604081205460ff161561145057506001600160a01b031660009081526002602052604090205490565b6001600160a01b0382166000908152600160205260409020546109f090610ad4565b6000546001600160a01b0316331461149c5760405162461bcd60e51b815260040161093090612f38565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146115105760405162461bcd60e51b815260040161093090612f38565b60165481111561151f57600080fd5b601455565b60606010805461095c9061304e565b60006109ec3384610a5085604051806060016040528060258152602001613127602591393360009081526003602090815260408083206001600160a01b038d1684529091529020549190611c6d565b60006109ec33848461193b565b6000546001600160a01b031633146115b95760405162461bcd60e51b815260040161093090612f38565b601f8054821515600160a81b0260ff60a81b199091161790556040517f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc1599061160690831515815260200190565b60405180910390a150565b6000546001600160a01b0316331461163b5760405162461bcd60e51b815260040161093090612f38565b602b5460ff16151581151514156116835760405162461bcd60e51b815260206004820152600c60248201526b20b63932b0b23c9039b2ba1760a11b6044820152606401610930565b602b805460ff1916911515919091179055565b6000546001600160a01b031633146116c05760405162461bcd60e51b815260040161093090612f38565b601c80546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b0316331461170c5760405162461bcd60e51b815260040161093090612f38565b6001600160a01b03166000908152600460205260409020805460ff19169055565b6000546001600160a01b031633146117575760405162461bcd60e51b815260040161093090612f38565b6001600160a01b0381166117bc5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610930565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383166118795760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610930565b6001600160a01b0382166118da5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610930565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b03831661199f5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610930565b6001600160a01b038216611a015760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610930565b60008111611a635760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610930565b611a6d8383611e7b565b15611ad557602254811115611ad55760405162461bcd60e51b815260206004820152602860248201527f5472616e7366657220616d6f756e74206578636565647320746865206d6178546044820152673c20b6b7bab73a1760c11b6064820152608401610930565b611adf8383611e7b565b8015611af95750601d546001600160a01b03838116911614155b8015611b135750601c546001600160a01b03838116911614155b15611b96576000611b2383611413565b602754909150611b338383612fde565b1115611b945760405162461bcd60e51b815260206004820152602a60248201527f5472616e7366657220616d6f756e74206578636565647320746865206d61785760448201526930b63632ba29b4bd329760b11b6064820152608401610930565b505b6000611ba130611413565b90506022548110611bb157506022545b602a54601f549082101590600160a01b900460ff16158015611be05750601c546001600160a01b038581169116145b8015611bf55750601f54600160a81b900460ff165b15611c0e578015611c0e57602a549150611c0e82611f38565b6001600160a01b03851660009081526004602052604090205460019060ff1680611c5057506001600160a01b03851660009081526004602052604090205460ff165b15611c59575060005b611c6586868684612099565b505050505050565b60008184841115611c915760405162461bcd60e51b81526004016109309190612ee3565b506000611c9e8486613037565b95945050505050565b600082611cb6575060006109f0565b6000611cc28385613018565b905082611ccf8583612ff6565b14610b515760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610930565b6000610b5183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506122ca565b6000806000611d756122f8565b9092509050611d848282611d26565b9250505090565b600080611d988385612fde565b905083811015610b515760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610930565b6000806000806000806000806000611e018a61247a565b9250925092506000806000611e1f8d8686611e1a611d68565b6124bc565b919f909e50909c50959a5093985091965092945050505050565b6000610b5183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611c6d565b600080546001600160a01b03848116911614801590611ea857506000546001600160a01b03838116911614155b8015611ecd57506001600160a01b03821660009081526008602052604090205460ff16155b8015611ef257506001600160a01b03831660009081526008602052604090205460ff16155b8015611f0c5750601e546001600160a01b03838116911614155b8015611f2057506001600160a01b03821615155b8015610b51575050506001600160a01b031630141590565b601f805460ff60a01b1916600160a01b179055601454601754611f5b9190612fde565b611f6457612089565b6000611f8e611f80601454601754611d8b90919063ffffffff16565b601754610ab1908590611ca7565b90506000611f9c8383611e39565b90506000611fab826002611d26565b90506000611fb98383611e39565b9050476000611fc88487611d8b565b9050611fd38161250c565b6000611fdf4784611e39565b90506000611ff183610ab18489611ca7565b9050611ffd858261266d565b60408051878152602081018390529081018690527f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb5619060600160405180910390a1601f546001600160a01b03166108fc6120578484611e39565b6040518115909202916000818181858888f1935050505015801561207f573d6000803e3d6000fd5b5050505050505050505b50601f805460ff60a01b19169055565b602b5460ff1615612296576001600160a01b03841660009081526007602052604090205460ff16806120e357506001600160a01b03831660009081526007602052604090205460ff165b156121235760405162461bcd60e51b815260206004820152601060248201526f29b734b832b9103932b532b1ba32b21760811b6044820152606401610930565b602b54610100900460ff166121b95761213c8484612730565b602b54610100900460ff1615801561215957506121598484611e7b565b156121b45760405162461bcd60e51b815260206004820152602560248201527f4f6e6c79206f776e65722063616e207472616e736665722061742074686973206044820152643a34b6b29760d91b6064820152608401610930565b612296565b6000602c541180156121d85750601c546001600160a01b038581169116145b80156121e957506121e98484611e7b565b15612296577f0000000000000000000000000000000000000000000000000000000000000000602c544361221d9190613037565b1015612296576001600160a01b0383166000908152600760205260408120805460ff19166001179055602e80549161225483613089565b90915550506040516001600160a01b03841681527f18e6e5ce5c121466e41a954e72765d1ea02b8e6919043b61f0dab08b4c6572e59060200160405180910390a15b806122a3576122a361284e565b6122ae848484612887565b8061121a5761121a601254601155601554601455601854601755565b600081836122eb5760405162461bcd60e51b81526004016109309190612ee3565b506000611c9e8486612ff6565b600d54600c546000918291825b60065481101561244a57826001600060068481548110612327576123276130d0565b60009182526020808320909101546001600160a01b031683528201929092526040019020541180612392575081600260006006848154811061236b5761236b6130d0565b60009182526020808320909101546001600160a01b03168352820192909252604001902054115b156123a857600d54600c54945094505050509091565b6123ee60016000600684815481106123c2576123c26130d0565b60009182526020808320909101546001600160a01b031683528201929092526040019020548490611e39565b9250612436600260006006848154811061240a5761240a6130d0565b60009182526020808320909101546001600160a01b031683528201929092526040019020548390611e39565b91508061244281613089565b915050612305565b50600c54600d5461245a91611d26565b82101561247157600d54600c549350935050509091565b90939092509050565b60008060008061248985612b52565b9050600061249686612b6f565b905060006124ae826124a88986611e39565b90611e39565b979296509094509092505050565b60008080806124cb8886611ca7565b905060006124d98887611ca7565b905060006124e78888611ca7565b905060006124f9826124a88686611e39565b939b939a50919850919650505050505050565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110612541576125416130d0565b6001600160a01b03928316602091820292909201810191909152601b54604080516339d94ae160e11b8152905191909316926373b295c2926004808301939192829003018186803b15801561259557600080fd5b505afa1580156125a9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125cd9190612d04565b816001815181106125e0576125e06130d0565b6001600160a01b039283166020918202929092010152601b546126069130911684611817565b601b54604051633b158ab160e11b81526001600160a01b039091169063762b15629061263f908590600090869030904290600401612f6d565b600060405180830381600087803b15801561265957600080fd5b505af1158015611c65573d6000803e3d6000fd5b601b546126859030906001600160a01b031684611817565b601b54601e54604051637c8d9fb960e11b81523060048201526024810185905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f91b3f7290839060c4016060604051808303818588803b1580156126f057600080fd5b505af1158015612704573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906127299190612eb5565b5050505050565b602b54610100900460ff16156127945760405162461bcd60e51b815260206004820152602360248201527f4c697175696469747920616c726561647920616464656420616e64206d61726b60448201526232b21760e91b6064820152608401610930565b61279e8282611e7b565b1580156127b85750601c546001600160a01b038281169116145b15610dc8576001600160a01b03821660009081526008602052604090819020805460ff19166001908117909155602b805461ff00191661010017905543602c5542602d55601f805460ff60a81b1916600160a81b17905590517f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc1599161284291901515815260200190565b60405180910390a15050565b60115415801561285e5750601454155b1561286557565b6011805460125560148054601555601780546018556000928390559082905555565b60008060008060008061289987611dea565b6001600160a01b038f16600090815260016020526040902054959b509399509197509550935091506128cb9087611e39565b6001600160a01b03808b1660009081526001602052604080822093909355908a16815220546128fa9086611d8b565b6001600160a01b03808a16600090815260016020908152604080832094909455918c1681526005909152205460ff16801561294e57506001600160a01b03881660009081526005602052604090205460ff16155b15612994576001600160a01b0389166000908152600260205260409020546129769088611e39565b6001600160a01b038a16600090815260026020526040902055612acc565b6001600160a01b03891660009081526005602052604090205460ff161580156129d557506001600160a01b03881660009081526005602052604090205460ff165b15612a1b576001600160a01b0388166000908152600260205260409020546129fd9084611d8b565b6001600160a01b038916600090815260026020526040902055612acc565b6001600160a01b03891660009081526005602052604090205460ff168015612a5b57506001600160a01b03881660009081526005602052604090205460ff165b15612acc576001600160a01b038916600090815260026020526040902054612a839088611e39565b6001600160a01b03808b1660009081526002602052604080822093909355908a1681522054612ab29084611d8b565b6001600160a01b0389166000908152600260205260409020555b8015612adc57612adc8982612b98565b6000841180612aeb5750600082115b15612afa57612afa8483612c62565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051612b3f91815260200190565b60405180910390a3505050505050505050565b60006109f0601a54610ab160115485611ca790919063ffffffff16565b60006109f0601a54610ab1612b91601754601454611d8b90919063ffffffff16565b8590611ca7565b6000612ba2611d68565b90506000612bb08383611ca7565b30600090815260016020526040902054909150612bcd9082611d8b565b3060009081526001602090815260408083209390935560059052205460ff1615612c1c5730600090815260026020526040902054612c0b9084611d8b565b306000908152600260205260409020555b60405183815230906001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a350505050565b600d54612c6f9083611e39565b600d55600e54612c7f9082611d8b565b600e555050565b60008083601f840112612c9857600080fd5b50813567ffffffffffffffff811115612cb057600080fd5b6020830191508360208260051b8501011115612ccb57600080fd5b9250929050565b80358015158114612ce257600080fd5b919050565b600060208284031215612cf957600080fd5b8135610b51816130e6565b600060208284031215612d1657600080fd5b8151610b51816130e6565b60008060408385031215612d3457600080fd5b8235612d3f816130e6565b946020939093013593505050565b60008060408385031215612d6057600080fd5b8235612d6b816130e6565b91506020830135612d7b816130e6565b809150509250929050565b600080600060608486031215612d9b57600080fd5b8335612da6816130e6565b92506020840135612db6816130e6565b929592945050506040919091013590565b60008060008060408587031215612ddd57600080fd5b843567ffffffffffffffff80821115612df557600080fd5b612e0188838901612c86565b90965094506020870135915080821115612e1a57600080fd5b50612e2787828801612c86565b95989497509550505050565b600060208284031215612e4557600080fd5b610b5182612cd2565b600060208284031215612e6057600080fd5b5035919050565b60008060408385031215612e7a57600080fd5b82359150612e8a60208401612cd2565b90509250929050565b60008060408385031215612ea657600080fd5b50508035926020909101359150565b600080600060608486031215612eca57600080fd5b8351925060208401519150604084015190509250925092565b600060208083528351808285015260005b81811015612f1057858101830151858201604001528201612ef4565b81811115612f22576000604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015612fbd5784516001600160a01b031683529383019391830191600101612f98565b50506001600160a01b03969096166060850152505050608001529392505050565b60008219821115612ff157612ff16130a4565b500190565b60008261301357634e487b7160e01b600052601260045260246000fd5b500490565b6000816000190483118215151615613032576130326130a4565b500290565b600082821015613049576130496130a4565b500390565b600181811c9082168061306257607f821691505b6020821081141561308357634e487b7160e01b600052602260045260246000fd5b50919050565b600060001982141561309d5761309d6130a4565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6001600160a01b03811681146130fb57600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220c1562494e19fbaa1a802ac262542c791aaa132f3b19c97e1b4498d49532524db64736f6c63430008070033f652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f