[ { "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": "amount", "type": "uint256" } ], "name": "BuyBackTriggered", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "sniper", "type": "address" } ], "name": "CaughtEarlyBuyer", "type": "event" }, { "anonymous": false, "inputs": [], "name": "EnabledTrading", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "account", "type": "address" }, { "indexed": false, "internalType": "bool", "name": "isExcluded", "type": "bool" } ], "name": "ExcludeFromFees", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "_address", "type": "address" }, { "indexed": false, "internalType": "bool", "name": "excluded", "type": "bool" } ], "name": "MaxTransactionExclusion", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "timestamp", "type": "uint256" } ], "name": "OwnerForcedSwapBack", "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": [], "name": "RemovedLimits", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "pair", "type": "address" }, { "indexed": true, "internalType": "bool", "name": "value", "type": "bool" } ], "name": "SetAutomatedMarketMakerPair", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "tokensSwapped", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "ethReceived", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "tokensIntoLiquidity", "type": "uint256" } ], "name": "SwapAndLiquify", "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" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "token", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "TransferForeignToken", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "newAmount", "type": "uint256" } ], "name": "UpdatedMaxBuyAmount", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "newAmount", "type": "uint256" } ], "name": "UpdatedMaxSellAmount", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "newAmount", "type": "uint256" } ], "name": "UpdatedMaxWalletAmount", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "newWallet", "type": "address" } ], "name": "UpdatedOperationsAddress", "type": "event" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "_isExcludedMaxTransactionAmount", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "address", "name": "spender", "type": "address" } ], "name": "allowance", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "approve", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "automatedMarketMakerPairs", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "blockForPenaltyEnd", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "amountInWei", "type": "uint256" } ], "name": "buyBackTokens", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "buyLiquidityFee", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "buyOperationsFee", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "buyTotalFees", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "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": [], "name": "dexRouter", "outputs": [ { "internalType": "contract IDexRouter", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "disableTransferDelay", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "earlyBuyPenaltyInEffect", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "deadBlocks", "type": "uint256" } ], "name": "enableTrade", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "bool", "name": "excluded", "type": "bool" } ], "name": "excludeFromFees", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "updAds", "type": "address" }, { "internalType": "bool", "name": "isEx", "type": "bool" } ], "name": "excludeFromMaxTransaction", "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": [], "name": "limitsInEffect", "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": "maxBuyAmount", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "maxSellAmount", "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": [], "name": "removeLimits", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "sellLiquidityFee", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "sellOperationsFee", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "sellTotalFees", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "pair", "type": "address" }, { "internalType": "bool", "name": "value", "type": "bool" } ], "name": "setAutomatedMarketMakerPair", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_operationsAddress", "type": "address" } ], "name": "setOperationsAddress", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "swapEnabled", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "swapTokensAtAmount", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "tokensForLiquidity", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "tokensForOperations", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "tradingActive", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "tradingActiveBlock", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "tradingActiveTs", "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": [], "name": "transferDelayEnabled", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_token", "type": "address" }, { "internalType": "address", "name": "_to", "type": "address" } ], "name": "transferForeignToken", "outputs": [ { "internalType": "bool", "name": "_sent", "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": "uint256", "name": "_buyoperationsFee", "type": "uint256" }, { "internalType": "uint256", "name": "_buyliquidityFee", "type": "uint256" }, { "internalType": "uint256", "name": "_selloperationsFee", "type": "uint256" }, { "internalType": "uint256", "name": "_sellliquidityFee", "type": "uint256" } ], "name": "updateFee", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "newNum", "type": "uint256" } ], "name": "updateMaxBuyAmount", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "newNum", "type": "uint256" } ], "name": "updateMaxSellAmount", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "newAmount", "type": "uint256" } ], "name": "updateSwapTokensAtAmount", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "withdrawStuckETH", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "stateMutability": "payable", "type": "receive" } ]
60c0604052600e805462ffffff191660019081179091556010805460ff191690911790553480156200002f575f80fd5b506040518060400160405280600e81526020016d48414c4c4f5745454e205045504560901b815250604051806040016040528060048152602001631111505160e21b8152508160039081620000859190620007b3565b506004620000948282620007b3565b5050505f620000a8620003bb60201b60201c565b600580546001600160a01b0319166001600160a01b038316908117909155604051919250905f905f80516020620035e7833981519152908290a350737a250d5630b4cf539739df2c5dacb4c659f2488d60808190526040805163c45a015560e01b81529051339291829163c45a0155916004808201926020929091908290030181865afa1580156200013c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200016291906200087b565b6001600160a01b031663c9c65396306080516001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001b0573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001d691906200087b565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af115801562000221573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200024791906200087b565b6001600160a01b031660a081905262000262906001620003bf565b60a0516200027290600162000421565b69d3c21bcecceda100000060646200028c826001620008be565b620002989190620008de565b6006556064620002aa826001620008be565b620002b69190620008de565b6007556103e8620002c9826001620008be565b620002d59190620008de565b600955601960128190555f6013819055620002f091620008fe565b601155601e60158190555f60168190556200030b91620008fe565b6014556200031b836001620003bf565b62000328306001620003bf565b6200033761dead6001620003bf565b60805162000347906001620003bf565b620003548360016200048b565b620003613060016200048b565b6200037061dead60016200048b565b608051620003809060016200048b565b600a80546001600160a01b0319166001600160a01b038516179055620003a7838262000537565b620003b28362000619565b50505062000914565b3390565b6001600160a01b0382165f818152601a6020908152604091829020805460ff19168515159081179091558251938452908301527f6b4f1be9103e6cbcd38ca4a922334f2c3109b260130a6676a987f94088fd6746910160405180910390a15050565b6001600160a01b0382165f908152601b60205260409020805460ff1916821515179055620004508282620003bf565b604051811515906001600160a01b038416907fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab905f90a35050565b6005546001600160a01b03163314620004d95760405162461bcd60e51b815260206004820181905260248201525f80516020620035c783398151915260448201526064015b60405180910390fd5b6001600160a01b0382165f81815260196020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b6001600160a01b0382166200058f5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401620004d0565b8060025f828254620005a29190620008fe565b90915550506001600160a01b0382165f9081526020819052604081208054839290620005d0908490620008fe565b90915550506040518181526001600160a01b038316905f907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b6005546001600160a01b03163314620006635760405162461bcd60e51b815260206004820181905260248201525f80516020620035c78339815191526044820152606401620004d0565b6001600160a01b038116620006ca5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401620004d0565b6005546040516001600160a01b038084169216905f80516020620035e7833981519152905f90a3600580546001600160a01b0319166001600160a01b0392909216919091179055565b634e487b7160e01b5f52604160045260245ffd5b600181811c908216806200073c57607f821691505b6020821081036200075b57634e487b7160e01b5f52602260045260245ffd5b50919050565b601f821115620007ae575f81815260208120601f850160051c81016020861015620007895750805b601f850160051c820191505b81811015620007aa5782815560010162000795565b5050505b505050565b81516001600160401b03811115620007cf57620007cf62000713565b620007e781620007e0845462000727565b8462000761565b602080601f8311600181146200081d575f8415620008055750858301515b5f19600386901b1c1916600185901b178555620007aa565b5f85815260208120601f198616915b828110156200084d578886015182559484019460019091019084016200082c565b50858210156200086b57878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b5f602082840312156200088c575f80fd5b81516001600160a01b0381168114620008a3575f80fd5b9392505050565b634e487b7160e01b5f52601160045260245ffd5b8082028115828204841417620008d857620008d8620008aa565b92915050565b5f82620008f957634e487b7160e01b5f52601260045260245ffd5b500490565b80820180821115620008d857620008d8620008aa565b60805160a051612c44620009835f395f818161049601528181610e740152818161116a01528181611d7b0152818161239201526123bb01525f81816103220152818161189e0152818161198701528181611d3e0152818161268d0152818161274401526127830152612c445ff3fe6080604052600436106102dc575f3560e01c806388e765ff11610189578063d85ba063116100d8578063ee40166e11610092578063f5648a4f1161006d578063f5648a4f1461088c578063f6374342146108a0578063fb002c97146108b5578063fc155d1d146108ca575f80fd5b8063ee40166e14610843578063f11a24d314610858578063f2fde38b1461086d575f80fd5b8063d85ba06314610783578063dc3f0d0f14610798578063dd62ed3e146107b7578063e2f45605146107fb578063e884f26014610810578063ea9fae8014610824575f80fd5b8063a62068ce11610143578063bbc0c7421161011e578063bbc0c7421461070e578063c02466681461072c578063c876d0b91461074b578063d257b34f14610764575f80fd5b8063a62068ce146106ac578063a9059cbb146106c1578063b62496f5146106e0575f80fd5b806388e765ff1461061357806389c9e320146106285780638da5cb5b1461063d57806395d89b411461065a5780639a7a23d61461066e578063a457c2d71461068d575f80fd5b8063499b8394116102455780636a486a8e116101ff578063715018a6116101da578063715018a6146105ad578063751039fc146105c15780637571336a146105d55780638366e79a146105f4575f80fd5b80636a486a8e146105455780636ddd17131461055a57806370a0823114610579575f80fd5b8063499b8394146104b85780634a62bb65146104d75780634f77f6c0146104f057806358a6d531146105055780635a139dd41461051b57806366d602ae14610530575f80fd5b806323b872dd1161029657806323b872dd146103ec5780632a4f6ab31461040b5780632be32b611461042c578063313ce5671461044b5780633950935114610466578063452ed4f114610485575f80fd5b806306fdde03146102e75780630758d92414610311578063095ea7b31461035c57806310d5de531461038b57806318160ddd146103b95780631a8145bb146103d7575f80fd5b366102e357005b5f80fd5b3480156102f2575f80fd5b506102fb6108e9565b60405161030891906127f5565b60405180910390f35b34801561031c575f80fd5b506103447f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610308565b348015610367575f80fd5b5061037b610376366004612857565b610979565b6040519015158152602001610308565b348015610396575f80fd5b5061037b6103a5366004612881565b601a6020525f908152604090205460ff1681565b3480156103c4575f80fd5b506002545b604051908152602001610308565b3480156103e2575f80fd5b506103c960185481565b3480156103f7575f80fd5b5061037b6104063660046128a3565b61098f565b348015610416575f80fd5b5061042a6104253660046128e1565b610a3c565b005b348015610437575f80fd5b5061042a6104463660046128e1565b610b6d565b348015610456575f80fd5b5060405160128152602001610308565b348015610471575f80fd5b5061037b610480366004612857565b610c7a565b348015610490575f80fd5b506103447f000000000000000000000000000000000000000000000000000000000000000081565b3480156104c3575f80fd5b5061042a6104d2366004612881565b610cb5565b3480156104e2575f80fd5b50600e5461037b9060ff1681565b3480156104fb575f80fd5b506103c960155481565b348015610510575f80fd5b50600d54431061037b565b348015610526575f80fd5b506103c960125481565b34801561053b575f80fd5b506103c960075481565b348015610550575f80fd5b506103c960145481565b348015610565575f80fd5b50600e5461037b9062010000900460ff1681565b348015610584575f80fd5b506103c9610593366004612881565b6001600160a01b03165f9081526020819052604090205490565b3480156105b8575f80fd5b5061042a610d66565b3480156105cc575f80fd5b5061042a610dd9565b3480156105e0575f80fd5b5061042a6105ef366004612905565b610e43565b3480156105ff575f80fd5b5061037b61060e36600461293c565b610f2d565b34801561061e575f80fd5b506103c960065481565b348015610633575f80fd5b506103c9600c5481565b348015610648575f80fd5b506005546001600160a01b0316610344565b348015610665575f80fd5b506102fb61112f565b348015610679575f80fd5b5061042a610688366004612905565b61113e565b348015610698575f80fd5b5061037b6106a7366004612857565b611254565b3480156106b7575f80fd5b506103c9600d5481565b3480156106cc575f80fd5b5061037b6106db366004612857565b6112ec565b3480156106eb575f80fd5b5061037b6106fa366004612881565b601b6020525f908152604090205460ff1681565b348015610719575f80fd5b50600e5461037b90610100900460ff1681565b348015610737575f80fd5b5061042a610746366004612905565b6112f8565b348015610756575f80fd5b5060105461037b9060ff1681565b34801561076f575f80fd5b5061042a61077e3660046128e1565b611380565b34801561078e575f80fd5b506103c960115481565b3480156107a3575f80fd5b5061042a6107b23660046128e1565b6114cb565b3480156107c2575f80fd5b506103c96107d136600461293c565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b348015610806575f80fd5b506103c960095481565b34801561081b575f80fd5b5061042a6115d2565b34801561082f575f80fd5b5061042a61083e366004612968565b611608565b34801561084e575f80fd5b506103c9600b5481565b348015610863575f80fd5b506103c960135481565b348015610878575f80fd5b5061042a610887366004612881565b611666565b348015610897575f80fd5b5061042a611750565b3480156108ab575f80fd5b506103c960165481565b3480156108c0575f80fd5b506103c960175481565b3480156108d5575f80fd5b5061042a6108e43660046128e1565b6117c4565b6060600380546108f890612997565b80601f016020809104026020016040519081016040528092919081815260200182805461092490612997565b801561096f5780601f106109465761010080835404028352916020019161096f565b820191905f5260205f20905b81548152906001019060200180831161095257829003601f168201915b5050505050905090565b5f610985338484611a33565b5060015b92915050565b5f61099b848484611b56565b6001600160a01b0384165f90815260016020908152604080832033845290915290205482811015610a245760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084015b60405180910390fd5b610a318533858403611a33565b506001949350505050565b6005546001600160a01b03163314610a665760405162461bcd60e51b8152600401610a1b906129cf565b600e54610100900460ff1615610abe5760405162461bcd60e51b815260206004820152601760248201527f43616e6e6f74207265656e61626c652074726164696e670000000000000000006044820152606401610a1b565b600a811115610b195760405162461bcd60e51b815260206004820152602160248201527f43616e6e6f7420736574206d6f7265207468616e20352064656164626c6f636b6044820152607360f81b6064820152608401610a1b565b600e805462ffff0019166201010017905543600b81905542600c55610b3f908290612a18565b600d556040517fa56feb2d31b9a7424db0be063fd450863979c9e2382cf5110f869bd1ad361bb7905f90a150565b6005546001600160a01b03163314610b975760405162461bcd60e51b8152600401610a1b906129cf565b670de0b6b3a76400006103e8610bac60025490565b610bb7906002612a2b565b610bc19190612a42565b610bcb9190612a42565b811015610c2c5760405162461bcd60e51b815260206004820152602960248201527f43616e6e6f7420736574206d61782062757920616d6f756e74206c6f776572206044820152687468616e20302e322560b81b6064820152608401610a1b565b610c3e81670de0b6b3a7640000612a2b565b60068190556040519081527ffcc0366804aaa8dbf88a2924100c733b70dec8445957a5d5f8ff92898de41009906020015b60405180910390a150565b335f8181526001602090815260408083206001600160a01b03871684529091528120549091610985918590610cb0908690612a18565b611a33565b6005546001600160a01b03163314610cdf5760405162461bcd60e51b8152600401610a1b906129cf565b6001600160a01b038116610d445760405162461bcd60e51b815260206004820152602660248201527f5f6f7065726174696f6e734164647265737320616464726573732063616e6e6f60448201526507420626520360d41b6064820152608401610a1b565b600a80546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b03163314610d905760405162461bcd60e51b8152600401610a1b906129cf565b6005546040515f916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600580546001600160a01b0319169055565b6005546001600160a01b03163314610e035760405162461bcd60e51b8152600401610a1b906129cf565b600e805460ff199081169091556010805490911690556040517fa4ffae85e880608d5d4365c2b682786545d136145537788e7e0940dff9f0b98c905f90a1565b6005546001600160a01b03163314610e6d5760405162461bcd60e51b8152600401610a1b906129cf565b80610f03577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b031603610f035760405162461bcd60e51b815260206004820152602760248201527f43616e6e6f742072656d6f766520756e697377617020706169722066726f6d2060448201526636b0bc103a3c3760c91b6064820152608401610a1b565b6001600160a01b03919091165f908152601a60205260409020805460ff1916911515919091179055565b6005545f906001600160a01b03163314610f595760405162461bcd60e51b8152600401610a1b906129cf565b6001600160a01b038316610faf5760405162461bcd60e51b815260206004820152601a60248201527f5f746f6b656e20616464726573732063616e6e6f7420626520300000000000006044820152606401610a1b565b306001600160a01b038416036110075760405162461bcd60e51b815260206004820152601c60248201527f43616e2774207769746864726177206e617469766520746f6b656e73000000006044820152606401610a1b565b6040516370a0823160e01b81523060048201525f906001600160a01b038516906370a0823190602401602060405180830381865afa15801561104b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061106f9190612a61565b60405163a9059cbb60e01b81526001600160a01b038581166004830152602482018390529192509085169063a9059cbb906044016020604051808303815f875af11580156110bf573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110e39190612a78565b604080516001600160a01b0387168152602081018490529193507fdeda980967fcead7b61e78ac46a4da14274af29e894d4d61e8b81ec38ab3e438910160405180910390a15092915050565b6060600480546108f890612997565b6005546001600160a01b031633146111685760405162461bcd60e51b8152600401610a1b906129cf565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b03160361120f5760405162461bcd60e51b815260206004820152603960248201527f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060448201527f6175746f6d617465644d61726b65744d616b65725061697273000000000000006064820152608401610a1b565b6112198282612339565b604051811515906001600160a01b038416907fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab905f90a35050565b335f9081526001602090815260408083206001600160a01b0386168452909152812054828110156112d55760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610a1b565b6112e23385858403611a33565b5060019392505050565b5f610985338484611b56565b6005546001600160a01b031633146113225760405162461bcd60e51b8152600401610a1b906129cf565b6001600160a01b0382165f81815260196020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b6005546001600160a01b031633146113aa5760405162461bcd60e51b8152600401610a1b906129cf565b620186a06113b760025490565b6113c2906001612a2b565b6113cc9190612a42565b8110156114395760405162461bcd60e51b815260206004820152603560248201527f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e60448201527410181718181892903a37ba30b61039bab838363c9760591b6064820152608401610a1b565b6103e861144560025490565b611450906001612a2b565b61145a9190612a42565b8111156114c65760405162461bcd60e51b815260206004820152603460248201527f5377617020616d6f756e742063616e6e6f742062652068696768657220746861604482015273371018171892903a37ba30b61039bab838363c9760611b6064820152608401610a1b565b600955565b6005546001600160a01b031633146114f55760405162461bcd60e51b8152600401610a1b906129cf565b670de0b6b3a76400006103e861150a60025490565b611515906002612a2b565b61151f9190612a42565b6115299190612a42565b81101561158b5760405162461bcd60e51b815260206004820152602a60248201527f43616e6e6f7420736574206d61782073656c6c20616d6f756e74206c6f776572604482015269207468616e20302e322560b01b6064820152608401610a1b565b61159d81670de0b6b3a7640000612a2b565b60078190556040519081527f53c4eb831d8cfeb750f1c62590d8cd30f4c6f0380d29a05caa09f0d92588560e90602001610c6f565b6005546001600160a01b031633146115fc5760405162461bcd60e51b8152600401610a1b906129cf565b6010805460ff19169055565b6005546001600160a01b031633146116325760405162461bcd60e51b8152600401610a1b906129cf565b601284905560138390556116468385612a18565b6011556015829055601681905561165d8183612a18565b60145550505050565b6005546001600160a01b031633146116905760405162461bcd60e51b8152600401610a1b906129cf565b6001600160a01b0381166116f55760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610a1b565b6005546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a3600580546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b0316331461177a5760405162461bcd60e51b8152600401610a1b906129cf565b6040515f90339047908381818185875af1925050503d805f81146117b9576040519150601f19603f3d011682016040523d82523d5f602084013e6117be565b606091505b50505050565b6005546001600160a01b031633146117ee5760405162461bcd60e51b8152600401610a1b906129cf565b678ac7230489e8000081111561187c5760405162461bcd60e51b815260206004820152604760248201527f4d6179206e6f7420627579206d6f7265207468616e2031302045544820696e2060448201527f612073696e676c652062757920746f207265647563652073616e64776963682060648201526661747461636b7360c81b608482015260a401610a1b565b6040805160028082526060820183525f926020830190803683370190505090507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156118f8573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061191c9190612a93565b815f8151811061192e5761192e612aae565b60200260200101906001600160a01b031690816001600160a01b031681525050308160018151811061196257611962612aae565b6001600160a01b03928316602091820292909201015260405163b6f9de9560e01b81527f00000000000000000000000000000000000000000000000000000000000000009091169063b6f9de959084906119c8905f90869061dead904290600401612b04565b5f604051808303818588803b1580156119df575f80fd5b505af11580156119f1573d5f803e3d5ffd5b50505050507fa017c1567cfcdd2d750a8c01e39fe2a846bcebc293c7d078477014d68482056882604051611a2791815260200190565b60405180910390a15050565b6001600160a01b038316611a955760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610a1b565b6001600160a01b038216611af65760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610a1b565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316611b7c5760405162461bcd60e51b8152600401610a1b90612b38565b6001600160a01b038216611ba25760405162461bcd60e51b8152600401610a1b90612b7d565b5f8111611bf15760405162461bcd60e51b815260206004820152601d60248201527f616d6f756e74206d7573742062652067726561746572207468616e20300000006044820152606401610a1b565b600e54610100900460ff16611c82576001600160a01b0383165f9081526019602052604090205460ff1680611c3d57506001600160a01b0382165f9081526019602052604090205460ff165b611c825760405162461bcd60e51b81526020600482015260166024820152752a3930b234b7339034b9903737ba1030b1ba34bb329760511b6044820152606401610a1b565b600e5460ff1615611fdf576005546001600160a01b03848116911614801590611cb957506005546001600160a01b03838116911614155b8015611ccd57506001600160a01b03821615155b8015611ce457506001600160a01b03821661dead14155b8015611d0857506001600160a01b0383165f9081526019602052604090205460ff16155b8015611d2c57506001600160a01b0382165f9081526019602052604090205460ff16155b15611fdf5760105460ff1615611e8a577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b031614158015611db057507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b031614155b15611e8a57611dc0600243612bc0565b325f908152600f6020526040902054108015611dfc5750611de2600243612bc0565b6001600160a01b0383165f908152600f6020526040902054105b611e665760405162461bcd60e51b815260206004820152603560248201527f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60448201527432b21710102a393c9030b3b0b4b7103630ba32b91760591b6064820152608401610a1b565b325f908152600f602052604080822043908190556001600160a01b03851683529120555b6001600160a01b0383165f908152601b602052604090205460ff168015611ec957506001600160a01b0382165f908152601a602052604090205460ff16155b15611f3657600654811115611f315760405162461bcd60e51b815260206004820152602860248201527f427579207472616e7366657220616d6f756e742065786365656473207468652060448201526736b0bc10313abc9760c11b6064820152608401610a1b565b611fdf565b6001600160a01b0382165f908152601b602052604090205460ff168015611f7557506001600160a01b0383165f908152601a602052604090205460ff16155b15611fdf57600754811115611fdf5760405162461bcd60e51b815260206004820152602a60248201527f53656c6c207472616e7366657220616d6f756e742065786365656473207468656044820152691036b0bc1039b2b6361760b11b6064820152608401610a1b565b305f908152602081905260409020546009548110801590819061200a5750600e5462010000900460ff165b8015612019575060085460ff16155b801561203d57506001600160a01b0385165f908152601b602052604090205460ff16155b801561206157506001600160a01b0385165f9081526019602052604090205460ff16155b801561208557506001600160a01b0384165f9081526019602052604090205460ff16155b156120aa576008805460ff1916600117905561209f612366565b6008805460ff191690555b6001600160a01b0385165f9081526019602052604090205460019060ff16806120ea57506001600160a01b0385165f9081526019602052604090205460ff165b156120f257505f5b5f811561232557600d544310801561212157506001600160a01b0387165f908152601b602052604090205460ff165b801561214557506001600160a01b0386165f908152601b602052604090205460ff16155b801561215257505f601154115b156121d557606461216486605a612a2b565b61216e9190612a42565b9050601154601354826121819190612a2b565b61218b9190612a42565b60185f82825461219b9190612a18565b90915550506011546012546121b09083612a2b565b6121ba9190612a42565b60175f8282546121ca9190612a18565b909155506123079050565b6001600160a01b0386165f908152601b602052604090205460ff1680156121fd57505f601454115b1561225e576064601454866122129190612a2b565b61221c9190612a42565b90506014546016548261222f9190612a2b565b6122399190612a42565b60185f8282546122499190612a18565b90915550506014546015546121b09083612a2b565b6001600160a01b0387165f908152601b602052604090205460ff16801561228657505f601154115b156123075760646011548661229b9190612a2b565b6122a59190612a42565b9050601154601354826122b89190612a2b565b6122c29190612a42565b60185f8282546122d29190612a18565b90915550506011546012546122e79083612a2b565b6122f19190612a42565b60175f8282546123019190612a18565b90915550505b80156123185761231887308361248a565b6123228186612bc0565b94505b61233087878761248a565b50505050505050565b6001600160a01b0382165f908152601b60205260409020805460ff191682151517905561121982826125dd565b5f6018541180156123875750601854305f9081526020819052604090205410155b15612428576123b9307f000000000000000000000000000000000000000000000000000000000000000060185461248a565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663fff6cae96040518163ffffffff1660e01b81526004015f604051808303815f87803b158015612411575f80fd5b505af1158015612423573d5f803e3d5ffd5b505050505b5f601881905530815260208190526040812054908190036124465750565b600954612454906014612a2b565b81111561246c57600954612469906014612a2b565b90505b61247581612638565b305f9081526020819052604090205460175550565b6001600160a01b0383166124b05760405162461bcd60e51b8152600401610a1b90612b38565b6001600160a01b0382166124d65760405162461bcd60e51b8152600401610a1b90612b7d565b6001600160a01b0383165f908152602081905260409020548181101561254d5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610a1b565b6001600160a01b038085165f90815260208190526040808220858503905591851681529081208054849290612583908490612a18565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516125cf91815260200190565b60405180910390a350505050565b6001600160a01b0382165f818152601a6020908152604091829020805460ff19168515159081179091558251938452908301527f6b4f1be9103e6cbcd38ca4a922334f2c3109b260130a6676a987f94088fd67469101611a27565b6040805160028082526060820183525f9260208301908036833701905050905030815f8151811061266b5761266b612aae565b60200260200101906001600160a01b031690816001600160a01b0316815250507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156126e7573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061270b9190612a93565b8160018151811061271e5761271e612aae565b60200260200101906001600160a01b031690816001600160a01b031681525050612769307f000000000000000000000000000000000000000000000000000000000000000084611a33565b600a5460405163791ac94760e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081169263791ac947926127c49287925f92889291909116904290600401612bd3565b5f604051808303815f87803b1580156127db575f80fd5b505af11580156127ed573d5f803e3d5ffd5b505050505050565b5f6020808352835180828501525f5b8181101561282057858101830151858201604001528201612804565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114612854575f80fd5b50565b5f8060408385031215612868575f80fd5b823561287381612840565b946020939093013593505050565b5f60208284031215612891575f80fd5b813561289c81612840565b9392505050565b5f805f606084860312156128b5575f80fd5b83356128c081612840565b925060208401356128d081612840565b929592945050506040919091013590565b5f602082840312156128f1575f80fd5b5035919050565b8015158114612854575f80fd5b5f8060408385031215612916575f80fd5b823561292181612840565b91506020830135612931816128f8565b809150509250929050565b5f806040838503121561294d575f80fd5b823561295881612840565b9150602083013561293181612840565b5f805f806080858703121561297b575f80fd5b5050823594602084013594506040840135936060013592509050565b600181811c908216806129ab57607f821691505b6020821081036129c957634e487b7160e01b5f52602260045260245ffd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b8082018082111561098957610989612a04565b808202811582820484141761098957610989612a04565b5f82612a5c57634e487b7160e01b5f52601260045260245ffd5b500490565b5f60208284031215612a71575f80fd5b5051919050565b5f60208284031215612a88575f80fd5b815161289c816128f8565b5f60208284031215612aa3575f80fd5b815161289c81612840565b634e487b7160e01b5f52603260045260245ffd5b5f8151808452602080850194508084015f5b83811015612af95781516001600160a01b031687529582019590820190600101612ad4565b509495945050505050565b848152608060208201525f612b1c6080830186612ac2565b6001600160a01b03949094166040830152506060015292915050565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b8181038181111561098957610989612a04565b85815284602082015260a060408201525f612bf160a0830186612ac2565b6001600160a01b039490941660608301525060800152939250505056fea26469706673582212201ef6636f16eb24da2e2030c7058be80fe048a63be44352c072019c3a74eb5cea64736f6c634300081400334f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65728be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0