Loading
[ { "inputs": [], "stateMutability": "nonpayable", "type": "constructor" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "spender", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "Approval", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "Wallet", "type": "address" }, { "indexed": false, "internalType": "bool", "name": "Status", "type": "bool" } ], "name": "Authorize_Wallet", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "amountETH", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "amountTokens", "type": "uint256" } ], "name": "AutoLiquify", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "BalanceClear", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "previousOwner", "type": "address" } ], "name": "OwnershipRenounced", "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": "MarketingWallet", "type": "address" }, { "indexed": false, "internalType": "address", "name": "treasuryWallet", "type": "address" }, { "indexed": false, "internalType": "address", "name": "ecosystemWallet", "type": "address" } ], "name": "Set_Wallets", "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": "uint8", "name": "Buy", "type": "uint8" }, { "indexed": false, "internalType": "uint8", "name": "Sell", "type": "uint8" }, { "indexed": false, "internalType": "uint8", "name": "Transfer", "type": "uint8" } ], "name": "UpdateFee", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "Wallet", "type": "address" }, { "indexed": false, "internalType": "bool", "name": "Status", "type": "bool" } ], "name": "Wallet_feeExempt", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "TokenAddressCleared", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "Amount", "type": "uint256" } ], "name": "clearToken", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "bool", "name": "Status", "type": "bool" } ], "name": "config_LaunchMode", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "Amount", "type": "uint256" }, { "indexed": false, "internalType": "bool", "name": "Enabled", "type": "bool" } ], "name": "config_SwapSettings", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "bool", "name": "Status", "type": "bool" } ], "name": "config_TradingStatus", "type": "event" }, { "inputs": [], "name": "_maxTxAmount", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "_maxWalletToken", "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": "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": "spender", "type": "address" } ], "name": "approveMax", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "adr", "type": "address" } ], "name": "authorize", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "tokenAddress", "type": "address" }, { "internalType": "uint256", "name": "tokens", "type": "uint256" } ], "name": "clearStuckToken", "outputs": [ { "internalType": "bool", "name": "success", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "deadBlocks", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "decimals", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "stateMutability": "pure", "type": "function" }, { "inputs": [], "name": "ecosystemFee", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "ecosystemFeeReceiver", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "feeDenominator", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getCirculatingSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getOwner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "adr", "type": "address" } ], "name": "isAuthorized", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "isFeeExempt", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "isOwner", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "isTxLimitExempt", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "isWalletLimitExempt", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "lastSync", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "launchedAt", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "liquidityFee", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address[]", "name": "addresses", "type": "address[]" }, { "internalType": "bool", "name": "status", "type": "bool" } ], "name": "manage_FeeExempt", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "marketingFee", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "marketingFeeReceiver", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "pure", "type": "function" }, { "inputs": [], "name": "pair", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "pairContract", "outputs": [ { "internalType": "contract InterfaceLP", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "router", "outputs": [ { "internalType": "contract IDEXRouter", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_marketingFeeReceiver", "type": "address" }, { "internalType": "address", "name": "_treasuryFeeReceiver", "type": "address" }, { "internalType": "address", "name": "_ecosystemFeeReceiver", "type": "address" } ], "name": "setFeeReceivers", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_liquidityFee", "type": "uint256" }, { "internalType": "uint256", "name": "_marketingFee", "type": "uint256" }, { "internalType": "uint256", "name": "_treasuryFee", "type": "uint256" }, { "internalType": "uint256", "name": "_ecosystemFee", "type": "uint256" } ], "name": "setFees_base1000", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_buy", "type": "uint256" }, { "internalType": "uint256", "name": "_sell", "type": "uint256" }, { "internalType": "uint256", "name": "_trans", "type": "uint256" } ], "name": "setMultipliers", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bool", "name": "_enabled", "type": "bool" }, { "internalType": "uint256", "name": "_amount", "type": "uint256" } ], "name": "setSwapBackSettings", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "swapEnabled", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "swapThreshold", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "pure", "type": "function" }, { "inputs": [], "name": "totalFee", "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": "tradingEnable", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "tradingOpen", "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" }, { "inputs": [ { "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "transferOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "treasuryFee", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "treasuryFeeReceiver", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "adr", "type": "address" } ], "name": "unauthorize", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "stateMutability": "payable", "type": "receive" } ]
60c06040526100106012600a6104aa565b61001e90633b9aca006104bf565b6003556003546004556003546005555f600b55601e600c55600a600d55600a600e55600e54600d54600c54600b5461005691906104d6565b61006091906104d6565b61006a91906104d6565b600f55606460108190556011555f6012556019805460ff19908116909155601c805490911660011790556003546100a4906103e8906104e9565b601d553480156100b2575f80fd5b505f8054336001600160a01b031991821681178355825260026020908152604092839020805460ff1916600117905560168054737a250d5630b4cf539739df2c5dacb4c659f2488d93168317905582516315ab88c960e31b81529251919263ad5c464892600480830193928290030181865afa158015610134573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101589190610508565b6001600160a01b039081166080526016546040805163c45a015560e01b81529051919092169163c45a01559160048083019260209291908290030181865afa1580156101a6573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101ca9190610508565b6080516040516364e329cb60e11b81526001600160a01b03918216600482015230602482015291169063c9c65396906044016020604051808303815f875af1158015610218573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061023c9190610508565b6001600160a01b0390811660a0819052601780546001600160a01b0319908116909217905542601855305f81815260076020908152604080832060165490961683529481528482205f199055601380543390861681179091556014805486168217905560158054909516811790945583825260088152848220805460ff1990811660019081179092556009835286842080548216831790557f960b1051749987b45b5679007fff577a1c2f763ec21c15a6c5eb19307500378580548216831790557fec8156718a8372b1db44bb411437d0870f3e3790d4a08526d024ce1b0b668f6b8054821683179055600a8352868420805482168317905593835285832080548516821790557f20677881080440a9b3c87e826370bb5d9c2f74efd4dede686d52d77a6a09f8bb80549094161790925560035483825260068352848220819055935193845291927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a361052e565b634e487b7160e01b5f52601160045260245ffd5b600181815b8085111561040257815f19048211156103e8576103e86103b4565b808516156103f557918102915b93841c93908002906103cd565b509250929050565b5f82610418575060016104a4565b8161042457505f6104a4565b816001811461043a576002811461044457610460565b60019150506104a4565b60ff841115610455576104556103b4565b50506001821b6104a4565b5060208310610133831016604e8410600b8410161715610483575081810a6104a4565b61048d83836103c8565b805f19048211156104a0576104a06103b4565b0290505b92915050565b5f6104b860ff84168361040a565b9392505050565b80820281158282048414176104a4576104a46103b4565b808201808211156104a4576104a46103b4565b5f8261050357634e487b7160e01b5f52601260045260245ffd5b500490565b5f60208284031215610518575f80fd5b81516001600160a01b03811681146104b8575f80fd5b60805160a0516127c36105725f395f818161066d01528181610dbb015281816115fa01528181611c4e0152818161203c015261207001525f611d4d01526127c35ff3fe6080604052600436106102a7575f3560e01c806378109e541161016f578063c867d60b116100d8578063efa5e34711610092578063f887ea401161006d578063f887ea4014610857578063fabb0b4f14610876578063fe9fbb801461088b578063ffb54a99146108aa575f80fd5b8063efa5e347146107fa578063f0b37c0414610819578063f2fde38b14610838575f80fd5b8063c867d60b14610716578063cc32d17614610744578063d7c0103214610759578063dd62ed3e14610778578063df20fd49146107bc578063e96fada2146107db575f80fd5b8063a8aa1b3111610129578063a8aa1b311461065c578063a9059cbb1461068f578063b1fb0e97146106ae578063b20ae67f146106c3578063b6a5d7de146106e2578063bf56b37114610701575f80fd5b806378109e54146105a65780637d1db4a5146105bb578063893d20e8146105d05780638b42507f146105ec57806395d89b411461061a57806398118cb414610647575f80fd5b8063313ce567116102115780636b67c4df116101cb5780636b67c4df146104fb5780636ce46bc3146105105780636ddd17131461052f57806370a0823114610548578063715018a61461057357806377b54bad14610587575f80fd5b8063313ce5671461044a5780633eaaf86b146104655780633f4218e01461047a5780634d709adf146104a8578063571ac8b0146104c75780636917516b146104e6575f80fd5b806318160ddd1161026257806318160ddd1461038a5780631df4ccfc1461039e57806323b872dd146103b35780632af10fac146103d25780632b112e49146104095780632f54bf6e1461041d575f80fd5b8062bff446146102b25780630445b667146102d357806306fdde03146102fb578063095ea7b3146103325780631693e8d414610361578063180b0d7e14610375575f80fd5b366102ae57005b5f80fd5b3480156102bd575f80fd5b506102d16102cc3660046122da565b6108c3565b005b3480156102de575f80fd5b506102e8601d5481565b6040519081526020015b60405180910390f35b348015610306575f80fd5b5060408051808201909152600681526508ecadc84def60d31b60208201525b6040516102f29190612359565b34801561033d575f80fd5b5061035161034c3660046123a9565b610a24565b60405190151581526020016102f2565b34801561036c575f80fd5b506102d1610a90565b348015610380575f80fd5b506102e86103e881565b348015610395575f80fd5b506003546102e8565b3480156103a9575f80fd5b506102e8600f5481565b3480156103be575f80fd5b506103516103cd3660046123d1565b610b52565b3480156103dd575f80fd5b506014546103f1906001600160a01b031681565b6040516001600160a01b0390911681526020016102f2565b348015610414575f80fd5b506102e8610c10565b348015610428575f80fd5b5061035161043736600461240a565b5f546001600160a01b0391821691161490565b348015610455575f80fd5b50604051601281526020016102f2565b348015610470575f80fd5b506102e860035481565b348015610485575f80fd5b5061035161049436600461240a565b60086020525f908152604090205460ff1681565b3480156104b3575f80fd5b506017546103f1906001600160a01b031681565b3480156104d2575f80fd5b506103516104e136600461240a565b610c7f565b3480156104f1575f80fd5b506102e860185481565b348015610506575f80fd5b506102e8600c5481565b34801561051b575f80fd5b506102d161052a366004612423565b610c8b565b34801561053a575f80fd5b50601c546103519060ff1681565b348015610553575f80fd5b506102e861056236600461240a565b60066020525f908152604090205481565b34801561057e575f80fd5b506102d1610ccc565b348015610592575f80fd5b506103516105a13660046123a9565b610d3b565b3480156105b1575f80fd5b506102e860055481565b3480156105c6575f80fd5b506102e860045481565b3480156105db575f80fd5b505f546001600160a01b03166103f1565b3480156105f7575f80fd5b5061035161060636600461240a565b60096020525f908152604090205460ff1681565b348015610625575f80fd5b5060408051808201909152600581526447454e414960d81b6020820152610325565b348015610652575f80fd5b506102e8600b5481565b348015610667575f80fd5b506103f17f000000000000000000000000000000000000000000000000000000000000000081565b34801561069a575f80fd5b506103516106a93660046123a9565b610f65565b3480156106b9575f80fd5b506102e8600e5481565b3480156106ce575f80fd5b506015546103f1906001600160a01b031681565b3480156106ed575f80fd5b506102d16106fc36600461240a565b610f71565b34801561070c575f80fd5b506102e8601a5481565b348015610721575f80fd5b5061035161073036600461240a565b600a6020525f908152604090205460ff1681565b34801561074f575f80fd5b506102e8600d5481565b348015610764575f80fd5b506102d161077336600461244c565b610ffb565b348015610783575f80fd5b506102e861079236600461248c565b6001600160a01b039182165f90815260076020908152604080832093909416825291909152205490565b3480156107c7575f80fd5b506102d16107d63660046124bd565b6111e4565b3480156107e6575f80fd5b506013546103f1906001600160a01b031681565b348015610805575f80fd5b506102d16108143660046124d9565b611316565b348015610824575f80fd5b506102d161083336600461240a565b61137a565b348015610843575f80fd5b506102d161085236600461240a565b611456565b348015610862575f80fd5b506016546103f1906001600160a01b031681565b348015610881575f80fd5b506102e8601b5481565b348015610896575f80fd5b506103516108a536600461240a565b61148b565b3480156108b5575f80fd5b506019546103519060ff1681565b6108cc3361148b565b6108f15760405162461bcd60e51b81526004016108e890612508565b60405180910390fd5b6101f582106109505760405162461bcd60e51b815260206004820152602560248201527f474153204572726f723a206d6178206c696d6974206973203530302061646472604482015264657373657360d81b60648201526084016108e8565b5f5b82811015610a1e578160085f8686858181106109705761097061252d565b9050602002016020810190610985919061240a565b6001600160a01b0316815260208101919091526040015f20805460ff19169115159190911790557f9fbd25f95d342f2efc070b56d2fadd2341d264ef8c915dc268609b2ca1bb25de8484838181106109df576109df61252d565b90506020020160208101906109f4919061240a565b604080516001600160a01b03909216825284151560208301520160405180910390a1600101610952565b50505050565b335f8181526007602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610a7e9086815260200190565b60405180910390a35060015b92915050565b5f546001600160a01b03163314610ab95760405162461bcd60e51b81526004016108e890612541565b60195460ff1615610b035760405162461bcd60e51b81526020600482015260146024820152732a3930b234b7339030b63932b0b23c9037b832b760611b60448201526064016108e8565b6019805460ff19166001908117909155601b81905542601a556040519081527ff865819dcfd8250cfaa23e1ab7129c1ec65c617bae1e716699dfe07dd7c489ee906020015b60405180910390a1565b6001600160a01b0383165f9081526007602090815260408083203384529091528120545f1914610bfb576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387165f908152600782528381203382529091529190912054610bd79184906114a8565b6001600160a01b0385165f9081526007602090815260408083203384529091529020555b610c068484846114e0565b90505b9392505050565b60066020527f54cdd369e4e8a8515e52ca72ec816c2101831ad1f18bf44102ed171459c9b4f85461dead5f9081527f1aecba4ebe7a4e0673e4891b2b092b2228e4322380b579fb494fad3da8586e2254600354919291610c709190612575565b610c7a9190612575565b905090565b5f610a8a825f19610a24565b610c943361148b565b610cb05760405162461bcd60e51b81526004016108e890612508565b601082905560118390556012819055610cc7611888565b505050565b5f546001600160a01b03163314610cf55760405162461bcd60e51b81526004016108e890612541565b5f80546040516001600160a01b03909116917ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482091a25f80546001600160a01b0319169055565b5f610d453361148b565b610d615760405162461bcd60e51b81526004016108e890612508565b306001600160a01b03841603610db95760405162461bcd60e51b815260206004820152601c60248201527f43616e6e6f74207769746864726177206e617469766520746f6b656e0000000060448201526064016108e8565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b031603610e4557601a54610e03906302932e00612588565b4211610e455760405162461bcd60e51b81526020600482015260116024820152702637b1b5b2b2103337b91018903cb2b0b960791b60448201526064016108e8565b815f03610eb5576040516370a0823160e01b81523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa158015610e8e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610eb2919061259b565b91505b604080516001600160a01b0385168152602081018490527f960427a4fde284dcc8da2c51a43d210cfd7ed6f4328a24ba33eee49910db564b910160405180910390a160405163a9059cbb60e01b8152336004820152602481018390526001600160a01b0384169063a9059cbb906044016020604051808303815f875af1158015610f41573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c0991906125b2565b5f610c093384846114e0565b5f546001600160a01b03163314610f9a5760405162461bcd60e51b81526004016108e890612541565b6001600160a01b0381165f81815260026020908152604091829020805460ff191660019081179091558251938452908301527fb6a1709218b158ea8591fc9269b88652f1c908dc68a79faa865c745a770b950591015b60405180910390a150565b6110043361148b565b6110205760405162461bcd60e51b81526004016108e890612508565b6001600160a01b03831661108b5760405162461bcd60e51b815260206004820152602c60248201527f4d61726b6574696e672066656520616464726573732063616e6e6f742062652060448201526b7a65726f206164647265737360a01b60648201526084016108e8565b6001600160a01b0382166110f55760405162461bcd60e51b815260206004820152602b60248201527f74726561737572792066656520616464726573732063616e6e6f74206265207a60448201526a65726f206164647265737360a81b60648201526084016108e8565b6001600160a01b0381166111605760405162461bcd60e51b815260206004820152602c60248201527f65636f73797374656d2066656520616464726573732063616e6e6f742062652060448201526b7a65726f206164647265737360a01b60648201526084016108e8565b601380546001600160a01b038581166001600160a01b0319928316811790935560148054868316908416811790915560158054928616929093168217909255604080519384526020840192909252908201527fb93b1ef445620c8661ebddddb575085ede7dfe08ccc6a91b933a6520249c3c7c9060600160405180910390a1505050565b6111ed3361148b565b6112095760405162461bcd60e51b81526004016108e890612508565b6112156012600a6126ad565b6112209060016126bb565b81101561126f5760405162461bcd60e51b815260206004820152601d60248201527f416d6f756e74206973206c657373207468616e206f6e6520746f6b656e00000060448201526064016108e8565b600a60035461127e91906126d2565b81106112be5760405162461bcd60e51b815260206004820152600f60248201526e082dadeeadce840e8dede40d0d2ced608b1b60448201526064016108e8565b601c805460ff1916831515908117909155601d8290556040805183815260ff909216151560208301527f34c2d4c263b6f41223c6d30ae2e7bcb18629892587e0a4138f57ba2c523953d0910160405180910390a15050565b61131f3361148b565b61133b5760405162461bcd60e51b81526004016108e890612508565b600b849055600c839055600d829055600e819055808261135b8587612588565b6113659190612588565b61136f9190612588565b600f55610a1e611888565b5f546001600160a01b031633146113a35760405162461bcd60e51b81526004016108e890612541565b5f546001600160a01b03908116908216036114005760405162461bcd60e51b815260206004820152601a60248201527f4f574e45522063616e7420626520756e617574686f72697a656400000000000060448201526064016108e8565b6001600160a01b0381165f818152600260209081526040808320805460ff191690558051938452908301919091527fb6a1709218b158ea8591fc9269b88652f1c908dc68a79faa865c745a770b95059101610ff0565b5f546001600160a01b0316331461147f5760405162461bcd60e51b81526004016108e890612541565b61148881611af4565b50565b6001600160a01b03165f9081526002602052604090205460ff1690565b5f81848411156114cb5760405162461bcd60e51b81526004016108e89190612359565b505f6114d78486612575565b95945050505050565b601e545f9060ff16156114ff576114f8848484611b5f565b9050610c09565b6001600160a01b0384165f9081526002602052604090205460ff1615801561153f57506001600160a01b0383165f9081526002602052604090205460ff16155b1561158d5760195460ff1661158d5760405162461bcd60e51b8152602060048201526014602482015273151c98591a5b99c81b9bdd081bdc195b881e595d60621b60448201526064016108e8565b6001600160a01b0384165f9081526002602052604090205460ff161580156115cd57506001600160a01b0384165f908152600a602052604090205460ff16155b80156115f157506001600160a01b0383165f908152600a602052604090205460ff16155b801561162f57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b031614155b156116a8576005546001600160a01b0384165f9081526006602052604090205461165a908490612588565b11156116a85760405162461bcd60e51b815260206004820152601860248201527f6d61782077616c6c6574206c696d69742072656163686564000000000000000060448201526064016108e8565b600454821115806116d057506001600160a01b0384165f9081526009602052604090205460ff165b806116f257506001600160a01b0383165f9081526009602052604090205460ff165b6117365760405162461bcd60e51b815260206004820152601560248201527413585e08151608131a5b5a5d08115e18d959591959605a1b60448201526064016108e8565b61173e611c42565b1561174b5761174b611cac565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0387165f9081526006909152919091205461179c9184906114a8565b6001600160a01b0385165f90815260066020908152604080832093909355600890529081205460ff16806117e757506001600160a01b0384165f9081526008602052604090205460ff165b6117fb576117f6858486612015565b6117fd565b825b6001600160a01b0385165f908152600660205260409020549091506118229082612143565b6001600160a01b038086165f8181526006602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906118759085815260200190565b60405180910390a3506001949350505050565b60966118ac60646118a6601154600f546121a190919063ffffffff16565b9061221f565b11156118fa5760405162461bcd60e51b815260206004820152601f60248201527f427579207461782063616e6e6f74206265206d6f7265207468616e203135250060448201526064016108e8565b609661191860646118a6601054600f546121a190919063ffffffff16565b11156119665760405162461bcd60e51b815260206004820181905260248201527f53656c6c207461782063616e6e6f74206265206d6f7265207468616e2031352560448201526064016108e8565b60c861198960646118a66011546010546119809190612588565b600f54906121a1565b11156119e35760405162461bcd60e51b8152602060048201526024808201527f4275792b53656c6c207461782063616e6e6f74206265206d6f7265207468616e6044820152632032302560e01b60648201526084016108e8565b6064611a0160646118a6601254600f546121a190919063ffffffff16565b1115611a5b5760405162461bcd60e51b8152602060048201526024808201527f5472616e73666572205461782063616e6e6f74206265206d6f7265207468616e6044820152632031302560e01b60648201526084016108e8565b7f375884ed7f92283ee74d8884b39a803f4aee832b15766fe016b74fc791fc2ada611a9860646118a6601154600f546121a190919063ffffffff16565b611ab460646118a6601054600f546121a190919063ffffffff16565b611ad060646118a6601254600f546121a190919063ffffffff16565b6040805160ff94851681529284166020840152921691810191909152606001610b48565b6001600160a01b038116611b06575f80fd5b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386165f908152600690915291822054611baf9184906114a8565b6001600160a01b038086165f908152600660205260408082209390935590851681522054611bdd9083612143565b6001600160a01b038085165f8181526006602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611c309086815260200190565b60405180910390a35060019392505050565b5f336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614801590611c7f5750601e5460ff16155b8015611c8d5750601c5460ff165b8015610c7a575050601d54305f90815260066020526040902054101590565b601e805460ff19166001179055600f545f611cc88260026126bb565b600b54601d54611cd891906126bb565b611ce291906126d2565b90505f81601d54611cf39190612575565b6040805160028082526060820183529293505f92909160208301908036833701905050905030815f81518110611d2b57611d2b61252d565b60200260200101906001600160a01b031690816001600160a01b0316815250507f000000000000000000000000000000000000000000000000000000000000000081600181518110611d7f57611d7f61252d565b6001600160a01b03928316602091820292909201015260165460405163791ac94760e01b815291169063791ac94790611dc49085905f908690309042906004016126f1565b5f604051808303815f87803b158015611ddb575f80fd5b505af1158015611ded573d5f803e3d5ffd5b5050600b54479250611e0291506002906126d2565b611e0c9086612575565b94505f611e1a8660026126bb565b600b54611e2790846126bb565b611e3191906126d2565b90505f86600c5484611e4391906126bb565b611e4d91906126d2565b90505f87600d5485611e5f91906126bb565b611e6991906126d2565b90505f88600e5486611e7b91906126bb565b611e8591906126d2565b6013546040519192506001600160a01b03169084156108fc029085905f818181858888f19350505050158015611ebd573d5f803e3d5ffd5b506014546040516001600160a01b039091169083156108fc029084905f818181858888f19350505050158015611ef5573d5f803e3d5ffd5b506015546040516001600160a01b039091169082156108fc029083905f818181858888f19350505050158015611f2d573d5f803e3d5ffd5b5087156120005760165460405163f305d71960e01b81523060048201819052602482018b90525f60448301819052606483015260848201524260a48201526001600160a01b039091169063f305d71990869060c40160606040518083038185885af1158015611f9e573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190611fc39190612762565b505060408051868152602081018b90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b5050601e805460ff1916905550505050505050565b5f8215806120235750600f54155b1561202f575081610c09565b6012546001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081169084160361206e57506010546120ac565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316856001600160a01b0316036120ac57506011545b5f6120dc6120bd6103e860646126bb565b6118a6846120d6600f548a6121a190919063ffffffff16565b906121a1565b905043601b54601a546120ef9190612588565b111561212f5761212c6121056103e860646126bb565b6118a6846120d6606461211b6103e860636126bb565b61212591906126d2565b8a906121a1565b90505b6121398582612260565b9695505050505050565b5f8061214f8385612588565b905083811015610c095760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016108e8565b5f825f036121b057505f610a8a565b5f6121bb83856126bb565b9050826121c885836126d2565b14610c095760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016108e8565b5f610c0983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506122a1565b5f610c0983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506114a8565b5f81836122c15760405162461bcd60e51b81526004016108e89190612359565b505f6114d784866126d2565b8015158114611488575f80fd5b5f805f604084860312156122ec575f80fd5b833567ffffffffffffffff80821115612303575f80fd5b818601915086601f830112612316575f80fd5b813581811115612324575f80fd5b8760208260051b8501011115612338575f80fd5b6020928301955093505084013561234e816122cd565b809150509250925092565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b80356001600160a01b03811681146123a4575f80fd5b919050565b5f80604083850312156123ba575f80fd5b6123c38361238e565b946020939093013593505050565b5f805f606084860312156123e3575f80fd5b6123ec8461238e565b92506123fa6020850161238e565b9150604084013590509250925092565b5f6020828403121561241a575f80fd5b610c098261238e565b5f805f60608486031215612435575f80fd5b505081359360208301359350604090920135919050565b5f805f6060848603121561245e575f80fd5b6124678461238e565b92506124756020850161238e565b91506124836040850161238e565b90509250925092565b5f806040838503121561249d575f80fd5b6124a68361238e565b91506124b46020840161238e565b90509250929050565b5f80604083850312156124ce575f80fd5b82356123c3816122cd565b5f805f80608085870312156124ec575f80fd5b5050823594602084013594506040840135936060013592509050565b6020808252600b908201526a085055551213d49256915160aa1b604082015260600190565b634e487b7160e01b5f52603260045260245ffd5b60208082526006908201526510a7aba722a960d11b604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b81810381811115610a8a57610a8a612561565b80820180821115610a8a57610a8a612561565b5f602082840312156125ab575f80fd5b5051919050565b5f602082840312156125c2575f80fd5b8151610c09816122cd565b600181815b8085111561260757815f19048211156125ed576125ed612561565b808516156125fa57918102915b93841c93908002906125d2565b509250929050565b5f8261261d57506001610a8a565b8161262957505f610a8a565b816001811461263f576002811461264957612665565b6001915050610a8a565b60ff84111561265a5761265a612561565b50506001821b610a8a565b5060208310610133831016604e8410600b8410161715612688575081810a610a8a565b61269283836125cd565b805f19048211156126a5576126a5612561565b029392505050565b5f610c0960ff84168361260f565b8082028115828204841417610a8a57610a8a612561565b5f826126ec57634e487b7160e01b5f52601260045260245ffd5b500490565b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b818110156127415784516001600160a01b03168352938301939183019160010161271c565b50506001600160a01b03969096166060850152505050608001529392505050565b5f805f60608486031215612774575f80fd5b835192506020840151915060408401519050925092509256fea26469706673582212208e1dc3aee220be44980a5fa78b7c867c678f3d585aa1e1e1b164af3496675b5664736f6c63430008190033