[ { "inputs": [], "stateMutability": "nonpayable", "type": "constructor" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "tokenOwner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "spender", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "tokens", "type": "uint256" } ], "name": "Approval", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "_address", "type": "address" }, { "indexed": false, "internalType": "bool", "name": "isExcluded", "type": "bool" }, { "indexed": false, "internalType": "uint256", "name": "timestamp", "type": "uint256" } ], "name": "CooldownExclusionListUpdated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "_cd", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "newTimestamp", "type": "uint256" } ], "name": "CooldownUpdated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "wallet", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "ETHDistributed", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "_address", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "newTimestamp", "type": "uint256" } ], "name": "ExclusionListUpdated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "previousOwner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "OwnershipTransferred", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "newTimestamp", "type": "uint256" } ], "name": "PauseStatusUpdated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "account", "type": "address" } ], "name": "Paused", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "_swapLimit", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "newTimestamp", "type": "uint256" } ], "name": "SwapLimitUpdated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "_newBuyFee", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "_newSellFee", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "_newTransferFee", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "newTimestamp", "type": "uint256" } ], "name": "TaxFeesUpdated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "_newThreshold", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "newTimestamp", "type": "uint256" } ], "name": "TaxSwapThresholdUpdated", "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": "tokens", "type": "uint256" } ], "name": "Transfer", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "newTimestamp", "type": "uint256" } ], "name": "TransferCooldownUpdated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "account", "type": "address" } ], "name": "Unpaused", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "_limit", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "newTimestamp", "type": "uint256" } ], "name": "WalletLimitUpdated", "type": "event" }, { "inputs": [], "name": "DECIMALS", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "FEE_ON_BUY", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "FEE_ON_SELL", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "FEE_ON_TRANSFER", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "FEE_WALLET", "outputs": [ { "internalType": "address payable", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "LIQUIDITY_WALLET", "outputs": [ { "internalType": "address payable", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "MARKETING_WALLET", "outputs": [ { "internalType": "address payable", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "NAME", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "REVENUE_SHARE_WALLET", "outputs": [ { "internalType": "address payable", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "SYMBOL", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "TOTAL_SUPPLY", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "_isExcludedFromCooldown", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "_isExcludedFromFee", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_address", "type": "address" } ], "name": "addToCooldownExclusionList", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_address", "type": "address" } ], "name": "addToExclusionList", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "tokenOwner", "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": "tokenOwner", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "balance", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_newMaxTXAmount", "type": "uint256" } ], "name": "changeMaxTXAmount", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_newBuyFee", "type": "uint256" }, { "internalType": "uint256", "name": "_newSellFee", "type": "uint256" }, { "internalType": "uint256", "name": "_newTransferFee", "type": "uint256" } ], "name": "changeTaxFees", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_newThreshold", "type": "uint256" } ], "name": "changeTaxSwapThreshold", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_cd", "type": "uint256" } ], "name": "changeTransferCooldown", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_limit", "type": "uint256" } ], "name": "changeWalletLimit", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [], "name": "contract_address", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "decimals", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "pure", "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": "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": "maxTxAmount", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "pure", "type": "function" }, { "inputs": [], "name": "openTrading", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [], "name": "owner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "pause", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [], "name": "paused", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_address", "type": "address" } ], "name": "removeFromCooldownExclusionList", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_address", "type": "address" } ], "name": "removeFromExclusionList", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [], "name": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "pure", "type": "function" }, { "inputs": [], "name": "taxSwapThreshold", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "pure", "type": "function" }, { "inputs": [], "name": "tradingOpen", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "receiver", "type": "address" }, { "internalType": "uint256", "name": "tokens", "type": "uint256" } ], "name": "transfer", "outputs": [ { "internalType": "bool", "name": "success", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "transferCooldown", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokens", "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": "unpause", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [], "name": "walletLimit", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "withdrawETH", "outputs": [], "stateMutability": "payable", "type": "function" }, { "stateMutability": "payable", "type": "receive" } ]
608060405273836b60e5daf2f158bd08380260f1175a8f8d870060085f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507378230211adaca550ee47e9020586f92085b6d4f760095f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073ef5a214084a04d050cda8026880089f0ec406683600a5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507337744ac4329b0ef07aee2a03676d8ddc71bcd4b6600b5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f600d556012600a6101669190610c85565b629896806101749190610ccf565b600e556012600a6101859190610c85565b620186a06101939190610ccf565b600f556012600a6101a49190610c85565b629896806101b29190610ccf565b6010555f60115f6101000a81548160ff0219169083151502179055506005601255600560135560056014555f601660146101000a81548160ff0219169083151502179055506001601660156101000a81548160ff02191690831515021790555034801561021d575f80fd5b505f61022d610a1f60201b60201c565b9050805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350600180819055505f60025f6101000a81548160ff02191690831515021790555030600c5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506b033b2e3c9fd0803ce800000060035f610347610a1f60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550600160055f8073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160055f6103ec610a2660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160055f600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160055f60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160055f60095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160055f600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160055f600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160065f8073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160065f6106f1610a2660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160065f600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160065f60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160065f60095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160065f600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160065f600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555061099c610a1f60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6b033b2e3c9fd0803ce8000000604051610a049190610d1f565b60405180910390a3610a1a610a4d60201b60201c565b610e08565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610a5b610abb60201b60201c565b600160025f6101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258610aa4610a1f60201b60201c565b604051610ab19190610d77565b60405180910390a1565b610ac9610b0b60201b60201c565b15610b09576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b0090610dea565b60405180910390fd5b565b5f60025f9054906101000a900460ff16905090565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b6001851115610ba257808604811115610b7e57610b7d610b20565b5b6001851615610b8d5780820291505b8081029050610b9b85610b4d565b9450610b62565b94509492505050565b5f82610bba5760019050610c75565b81610bc7575f9050610c75565b8160018114610bdd5760028114610be757610c16565b6001915050610c75565b60ff841115610bf957610bf8610b20565b5b8360020a915084821115610c1057610c0f610b20565b5b50610c75565b5060208310610133831016604e8410600b8410161715610c4b5782820a905083811115610c4657610c45610b20565b5b610c75565b610c588484846001610b59565b92509050818404811115610c6f57610c6e610b20565b5b81810290505b9392505050565b5f819050919050565b5f610c8f82610c7c565b9150610c9a83610c7c565b9250610cc77fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484610bab565b905092915050565b5f610cd982610c7c565b9150610ce483610c7c565b9250828202610cf281610c7c565b91508282048414831517610d0957610d08610b20565b5b5092915050565b610d1981610c7c565b82525050565b5f602082019050610d325f830184610d10565b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610d6182610d38565b9050919050565b610d7181610d57565b82525050565b5f602082019050610d8a5f830184610d68565b92915050565b5f82825260208201905092915050565b7f5061757361626c653a20706175736564000000000000000000000000000000005f82015250565b5f610dd4601083610d90565b9150610ddf82610da0565b602082019050919050565b5f6020820190508181035f830152610e0181610dc8565b9050919050565b61529680610e155f395ff3fe60806040526004361061028b575f3560e01c80637efd4be711610159578063c6859d07116100c0578063e090986311610079578063e0909863146108fa578063f2fde38b14610924578063f545d07a1461094c578063f76f8d7814610976578063f8ba09df146109a0578063ffb54a99146109c857610292565b8063c6859d071461083c578063c9567bf914610866578063db97096414610870578063dd62ed3e1461088c578063df3c09d8146108c8578063e086e5ec146108f057610292565b806395d89b411161011257806395d89b411461072a578063966b351414610754578063a3f4df7e1461077e578063a457c2d7146107a8578063a9059cbb146107e4578063aed7245e1461082057610292565b80637efd4be71461066a5780638456cb59146106865780638c0b5e22146106905780638da5cb5b146106ba5780638f724e6e146106e4578063902d55a51461070057610292565b8063455dd1d3116101fd57806368f16293116101b657806368f162931461057a57806370a08231146105a4578063715018a6146105e0578063768dc710146105f65780637db1342c146106325780637ec623db1461064e57610292565b8063455dd1d31461048c5780634858f214146104a85780635c975abb146104d25780635cb69f8f146104fc5780635e7b655c1461052657806360aaba711461055057610292565b80632f2c84041161024f5780632f2c84041461038c578063313ce567146103c857806339509351146103f25780633c8463a11461042e5780633f4ba83a1461045857806344cd79481461046257610292565b806306fdde0314610296578063095ea7b3146102c057806318160ddd146102fc57806323b872dd146103265780632e0f26251461036257610292565b3661029257005b5f80fd5b3480156102a1575f80fd5b506102aa6109f2565b6040516102b7919061414c565b60405180910390f35b3480156102cb575f80fd5b506102e660048036038101906102e191906141fd565b610a2f565b6040516102f39190614255565b60405180910390f35b348015610307575f80fd5b50610310610b98565b60405161031d919061427d565b60405180910390f35b348015610331575f80fd5b5061034c60048036038101906103479190614296565b610bab565b6040516103599190614255565b60405180910390f35b34801561036d575f80fd5b50610376610ffd565b604051610383919061427d565b60405180910390f35b348015610397575f80fd5b506103b260048036038101906103ad91906142e6565b611002565b6040516103bf9190614255565b60405180910390f35b3480156103d3575f80fd5b506103dc61101f565b6040516103e9919061427d565b60405180910390f35b3480156103fd575f80fd5b50610418600480360381019061041391906141fd565b611027565b6040516104259190614255565b60405180910390f35b348015610439575f80fd5b50610442611220565b60405161044f919061427d565b60405180910390f35b610460611226565b005b34801561046d575f80fd5b506104766112fb565b6040516104839190614331565b60405180910390f35b6104a660048036038101906104a1919061434a565b611320565b005b3480156104b3575f80fd5b506104bc611413565b6040516104c9919061427d565b60405180910390f35b3480156104dd575f80fd5b506104e6611419565b6040516104f39190614255565b60405180910390f35b348015610507575f80fd5b5061051061142e565b60405161051d919061427d565b60405180910390f35b348015610531575f80fd5b5061053a611434565b604051610547919061427d565b60405180910390f35b34801561055b575f80fd5b5061056461143a565b604051610571919061427d565b60405180910390f35b348015610585575f80fd5b5061058e611440565b60405161059b919061427d565b60405180910390f35b3480156105af575f80fd5b506105ca60048036038101906105c591906142e6565b611446565b6040516105d7919061427d565b60405180910390f35b3480156105eb575f80fd5b506105f461148c565b005b348015610601575f80fd5b5061061c600480360381019061061791906142e6565b6115da565b6040516106299190614255565b60405180910390f35b61064c6004803603810190610647919061434a565b6115f7565b005b610668600480360381019061066391906142e6565b611723565b005b610684600480360381019061067f919061434a565b611847565b005b61068e61191e565b005b34801561069b575f80fd5b506106a46119f3565b6040516106b1919061427d565b60405180910390f35b3480156106c5575f80fd5b506106ce6119f9565b6040516106db9190614384565b60405180910390f35b6106fe60048036038101906106f9919061434a565b611a20565b005b34801561070b575f80fd5b50610714611b3a565b604051610721919061427d565b60405180910390f35b348015610735575f80fd5b5061073e611b4a565b60405161074b919061414c565b60405180910390f35b34801561075f575f80fd5b50610768611b87565b6040516107759190614384565b60405180910390f35b348015610789575f80fd5b50610792611bac565b60405161079f919061414c565b60405180910390f35b3480156107b3575f80fd5b506107ce60048036038101906107c991906141fd565b611be5565b6040516107db9190614255565b60405180910390f35b3480156107ef575f80fd5b5061080a600480360381019061080591906141fd565b611ea0565b6040516108179190614255565b60405180910390f35b61083a600480360381019061083591906142e6565b6120b7565b005b348015610847575f80fd5b506108506121dc565b60405161085d9190614331565b60405180910390f35b61086e612201565b005b61088a6004803603810190610885919061439d565b6127ae565b005b348015610897575f80fd5b506108b260048036038101906108ad91906143ed565b6128c9565b6040516108bf919061427d565b60405180910390f35b3480156108d3575f80fd5b506108ee60048036038101906108e991906142e6565b61294b565b005b6108f8612a88565b005b348015610905575f80fd5b5061090e612c5d565b60405161091b9190614331565b60405180910390f35b34801561092f575f80fd5b5061094a600480360381019061094591906142e6565b612c82565b005b348015610957575f80fd5b50610960612e3f565b60405161096d9190614331565b60405180910390f35b348015610981575f80fd5b5061098a612e64565b604051610997919061414c565b60405180910390f35b3480156109ab575f80fd5b506109c660048036038101906109c191906142e6565b612e9d565b005b3480156109d3575f80fd5b506109dc612fd8565b6040516109e99190614255565b60405180910390f35b60606040518060400160405280600c81526020017f4573706f7274706c617965720000000000000000000000000000000000000000815250905090565b5f8073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610a9e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a959061449b565b60405180910390fd5b8160045f610aaa612fea565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff16610b41612fea565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610b86919061427d565b60405180910390a36001905092915050565b5f6b033b2e3c9fd0803ce8000000905090565b5f610bb4611419565b1580610bf95750610bc36119f9565b73ffffffffffffffffffffffffffffffffffffffff16610be1612fea565b73ffffffffffffffffffffffffffffffffffffffff16145b610c38576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c2f90614503565b60405180910390fd5b8260065f8273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16610da557600d5460075f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610cd2919061454e565b421015610d14576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d0b906145cb565b60405180910390fd5b4260075f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508073ffffffffffffffffffffffffffffffffffffffff167f4cc68ddc77b14f9a99f7ee6aa43362e04466a8013baab2f49453a997e3e5333642604051610d9c919061427d565b60405180910390a25b5f60045f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610dec612fea565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905083811015610e6b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e6290614659565b60405180910390fd5b8381610e779190614677565b60045f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610ebd612fea565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550610f02612fea565b73ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560045f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610f96612fea565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054604051610fdd919061427d565b60405180910390a3610ff0868686612ff1565b6001925050509392505050565b601281565b6006602052805f5260405f205f915054906101000a900460ff1681565b5f6012905090565b5f8073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611096576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161108d9061449b565b60405180910390fd5b8160045f6110a2612fea565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254611124919061454e565b925050819055508273ffffffffffffffffffffffffffffffffffffffff1661114a612fea565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560045f61118c612fea565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205460405161120e919061427d565b60405180910390a36001905092915050565b600e5481565b61122e612fea565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112b1906146f4565b60405180910390fd5b6112c26136f0565b7f1a16df7de1a7e6bf1c710cad8486c0a368b85e3aaa0541f5c5b0b54fb9467539426040516112f1919061427d565b60405180910390a1565b60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611328612fea565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146113b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113ab906146f4565b60405180910390fd5b60c86113be610b98565b6113c8919061473f565b8111611409576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611400906147b9565b60405180910390fd5b8060108190555050565b60145481565b5f60025f9054906101000a900460ff16905090565b60125481565b600f5481565b60135481565b600d5481565b5f60035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b611494612fea565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611520576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611517906146f4565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6005602052805f5260405f205f915054906101000a900460ff1681565b6115ff612fea565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461168b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611682906146f4565b60405180910390fd5b60c8611695610b98565b61169f919061473f565b81116116e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116d790614821565b60405180910390fd5b80600e819055507fc9aa851a9e693d868d2f64d4eda0e3480830af4a05b796fcbf27f8e8b58c18bc814260405161171892919061483f565b60405180910390a150565b61172b612fea565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146117b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117ae906146f4565b60405180910390fd5b5f60055f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055507fa10b0f35ac021351fe6cab152f40bc7923f42d2aa4ff2f3b11592493cd3bfb21814260405161183c929190614866565b60405180910390a150565b61184f612fea565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146118db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118d2906146f4565b60405180910390fd5b80600f819055507fa788414cf5f6db59caa9dbbcb0f2a5a67e2a01ba4d7936fb40a64520da6c4b32814260405161191392919061483f565b60405180910390a150565b611926612fea565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146119b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119a9906146f4565b60405180910390fd5b6119ba613751565b7f1a16df7de1a7e6bf1c710cad8486c0a368b85e3aaa0541f5c5b0b54fb9467539426040516119e9919061427d565b60405180910390a1565b60105481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b611a28612fea565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611ab4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aab906146f4565b60405180910390fd5b603c8110611af7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aee906148d7565b60405180910390fd5b80600d819055507f5953b565c074c2cce1866b4e69c9efc4908556bb6fca70f735907c94d94055158142604051611b2f92919061483f565b60405180910390a150565b6b033b2e3c9fd0803ce800000081565b60606040518060400160405280600681526020017f504c415945520000000000000000000000000000000000000000000000000000815250905090565b600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6040518060400160405280600c81526020017f4573706f7274706c61796572000000000000000000000000000000000000000081525081565b5f8073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611c54576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c4b9061449b565b60405180910390fd5b8160045f611c60612fea565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20541015611d16576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d0d90614965565b60405180910390fd5b8160045f611d22612fea565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254611da49190614677565b925050819055508273ffffffffffffffffffffffffffffffffffffffff16611dca612fea565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560045f611e0c612fea565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054604051611e8e919061427d565b60405180910390a36001905092915050565b5f611ea9611419565b1580611eee5750611eb86119f9565b73ffffffffffffffffffffffffffffffffffffffff16611ed6612fea565b73ffffffffffffffffffffffffffffffffffffffff16145b611f2d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f2490614503565b60405180910390fd5b8260065f8273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1661209a57600d5460075f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611fc7919061454e565b421015612009576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612000906145cb565b60405180910390fd5b4260075f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508073ffffffffffffffffffffffffffffffffffffffff167f4cc68ddc77b14f9a99f7ee6aa43362e04466a8013baab2f49453a997e3e5333642604051612091919061427d565b60405180910390a25b6120ac6120a5612fea565b8585612ff1565b600191505092915050565b6120bf612fea565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461214b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612142906146f4565b60405180910390fd5b600160055f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055507fa10b0f35ac021351fe6cab152f40bc7923f42d2aa4ff2f3b11592493cd3bfb2181426040516121d1929190614866565b60405180910390a150565b600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6122096137b3565b612211612fea565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461229d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612294906146f4565b60405180910390fd5b60115f9054906101000a900460ff16156122ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122e3906149cd565b60405180910390fd5b5f737a250d5630b4cf539739df2c5dacb4c659f2488d90508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561234d573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061237191906149ff565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156123f7573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061241b91906149ff565b6040518363ffffffff1660e01b8152600401612438929190614a2a565b6020604051808303815f875af1158015612454573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061247891906149ff565b60165f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060155f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60045f600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9257fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff604051612695919061427d565b60405180910390a3600160065f60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160065f60165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160115f6101000a81548160ff021916908315150217905550506127ac613802565b565b6127b6612fea565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612842576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612839906146f4565b60405180910390fd5b600582116128505781612853565b60055b60138190555060058311612867578261286a565b60055b6012819055506005811161287e5780612881565b60055b6014819055507ffe9a1bcdf4668dc3204f788bfacd338e9ac5e7fb22c92dec95eb728c53e3035c838383426040516128bc9493929190614a51565b60405180910390a1505050565b5f60045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b612953612fea565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146129df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129d6906146f4565b60405180910390fd5b600160065f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508073ffffffffffffffffffffffffffffffffffffffff167fa423b4d8fbe0ce9e7c4a841acd06845d9806523f567cfd3f9d02fb09be40eaa2600142604051612a7d929190614a94565b60405180910390a250565b612a906137b3565b612a98612fea565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612b24576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b1b906146f4565b60405180910390fd5b5f600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163190505f8111612ba2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b9990614b05565b60405180910390fd5b5f612bab6119f9565b73ffffffffffffffffffffffffffffffffffffffff1682604051612bce90614b50565b5f6040518083038185875af1925050503d805f8114612c08576040519150601f19603f3d011682016040523d82523d5f602084013e612c0d565b606091505b5050905080612c51576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c4890614bae565b60405180910390fd5b5050612c5b613802565b565b60095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b612c8a612fea565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612d16576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d0d906146f4565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603612d84576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d7b90614c3c565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6040518060400160405280600681526020017f504c41594552000000000000000000000000000000000000000000000000000081525081565b612ea5612fea565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612f31576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f28906146f4565b60405180910390fd5b5f60065f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508073ffffffffffffffffffffffffffffffffffffffff167fa423b4d8fbe0ce9e7c4a841acd06845d9806523f567cfd3f9d02fb09be40eaa25f42604051612fcd929190614a94565b60405180910390a250565b60115f9054906101000a900460ff1681565b5f33905090565b5f8111613033576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161302a90614cca565b60405180910390fd5b5f60055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161580156130d2575060055f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561332c5760165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16146131c957600e548261313885611446565b613142919061454e565b1115613183576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161317a90614d58565b60405180910390fd5b6010548211156131c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016131bf90614dc0565b60405180910390fd5b5b60165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015613272575060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15613298576064601254836132879190614dde565b613291919061473f565b905061332b565b60165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361330d576064601354836132fc9190614dde565b613306919061473f565b905061332a565b60646014548361331d9190614dde565b613327919061473f565b90505b5b5b8160035f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546133759190614677565b60035f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555080826133c29190614677565b60035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461340a919061454e565b60035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505f8111156135a6578060035f600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546134bd919061454e565b60035f600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161359d919061427d565b60405180910390a35b601660149054906101000a900460ff1615801561360f575060165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b80156136275750601660159054906101000a900460ff165b801561365e5750600f5461365b600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611446565b10155b1561367a575f61366d30611446565b90506136788161380b565b505b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83856136d59190614677565b6040516136e2919061427d565b60405180910390a350505050565b6136f8613ac3565b5f60025f6101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa61373a612fea565b6040516137479190614384565b60405180910390a1565b613759613b0c565b600160025f6101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25861379c612fea565b6040516137a99190614384565b60405180910390a1565b6002600154036137f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016137ef90614e69565b60405180910390fd5b6002600181905550565b60018081905550565b6138136137b3565b6001601660146101000a81548160ff0219169083151502179055505f810315613a9e575f4790505f600267ffffffffffffffff81111561385657613855614e87565b5b6040519080825280602002602001820160405280156138845781602001602082028036833780820191505090505b509050600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16815f815181106138bc576138bb614eb4565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015613960573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061398491906149ff565b8160018151811061399857613997614eb4565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947845f84600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b8152600401613a55959493929190614fda565b5f604051808303815f87803b158015613a6c575f80fd5b505af1158015613a7e573d5f803e3d5ffd5b505050505f8247613a8f9190614677565b9050613a9a81613b56565b5050505b5f601660146101000a81548160ff021916908315150217905550613ac0613802565b50565b613acb611419565b613b0a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613b019061507c565b60405180910390fd5b565b613b14611419565b15613b54576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613b4b90614503565b60405180910390fd5b565b613b5e6137b3565b5f606490505f602890505f601490505f601490505f848487613b809190614dde565b613b8a919061473f565b90505f858488613b9a9190614dde565b613ba4919061473f565b90505f868489613bb49190614dde565b613bbe919061473f565b90505f8183858b613bcf9190614677565b613bd99190614677565b613be39190614677565b90505f60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1685604051613c2b90614b50565b5f6040518083038185875af1925050503d805f8114613c65576040519150601f19603f3d011682016040523d82523d5f602084013e613c6a565b606091505b5050905080613cae576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613ca5906150e4565b60405180910390fd5b60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f55083a582b32208b745a21c8ce4f8d545be8cce1437f34637f08fc9d943eacb086604051613d15919061427d565b60405180910390a25f600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1685604051613d6390614b50565b5f6040518083038185875af1925050503d805f8114613d9d576040519150601f19603f3d011682016040523d82523d5f602084013e613da2565b606091505b5050905080613de6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613ddd9061514c565b60405180910390fd5b600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f55083a582b32208b745a21c8ce4f8d545be8cce1437f34637f08fc9d943eacb086604051613e4d919061427d565b60405180910390a25f60095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1685604051613e9b90614b50565b5f6040518083038185875af1925050503d805f8114613ed5576040519150601f19603f3d011682016040523d82523d5f602084013e613eda565b606091505b5050905080613f1e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613f15906151da565b60405180910390fd5b60095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f55083a582b32208b745a21c8ce4f8d545be8cce1437f34637f08fc9d943eacb086604051613f85919061427d565b60405180910390a25f600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1685604051613fd390614b50565b5f6040518083038185875af1925050503d805f811461400d576040519150601f19603f3d011682016040523d82523d5f602084013e614012565b606091505b5050905080614056576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161404d90615242565b60405180910390fd5b600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f55083a582b32208b745a21c8ce4f8d545be8cce1437f34637f08fc9d943eacb0866040516140bd919061427d565b60405180910390a25050505050505050505050506140d9613802565b50565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61411e826140dc565b61412881856140e6565b93506141388185602086016140f6565b61414181614104565b840191505092915050565b5f6020820190508181035f8301526141648184614114565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61419982614170565b9050919050565b6141a98161418f565b81146141b3575f80fd5b50565b5f813590506141c4816141a0565b92915050565b5f819050919050565b6141dc816141ca565b81146141e6575f80fd5b50565b5f813590506141f7816141d3565b92915050565b5f80604083850312156142135761421261416c565b5b5f614220858286016141b6565b9250506020614231858286016141e9565b9150509250929050565b5f8115159050919050565b61424f8161423b565b82525050565b5f6020820190506142685f830184614246565b92915050565b614277816141ca565b82525050565b5f6020820190506142905f83018461426e565b92915050565b5f805f606084860312156142ad576142ac61416c565b5b5f6142ba868287016141b6565b93505060206142cb868287016141b6565b92505060406142dc868287016141e9565b9150509250925092565b5f602082840312156142fb576142fa61416c565b5b5f614308848285016141b6565b91505092915050565b5f61431b82614170565b9050919050565b61432b81614311565b82525050565b5f6020820190506143445f830184614322565b92915050565b5f6020828403121561435f5761435e61416c565b5b5f61436c848285016141e9565b91505092915050565b61437e8161418f565b82525050565b5f6020820190506143975f830184614375565b92915050565b5f805f606084860312156143b4576143b361416c565b5b5f6143c1868287016141e9565b93505060206143d2868287016141e9565b92505060406143e3868287016141e9565b9150509250925092565b5f80604083850312156144035761440261416c565b5b5f614410858286016141b6565b9250506020614421858286016141b6565b9150509250929050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f6144856022836140e6565b91506144908261442b565b604082019050919050565b5f6020820190508181035f8301526144b281614479565b9050919050565b7f5061757361626c653a20706175736564000000000000000000000000000000005f82015250565b5f6144ed6010836140e6565b91506144f8826144b9565b602082019050919050565b5f6020820190508181035f83015261451a816144e1565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f614558826141ca565b9150614563836141ca565b925082820190508082111561457b5761457a614521565b5b92915050565b7f5472616e7366657220636f6f6c646f776e20696e2065666665637400000000005f82015250565b5f6145b5601b836140e6565b91506145c082614581565b602082019050919050565b5f6020820190508181035f8301526145e2816145a9565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320615f8201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b5f6146436028836140e6565b915061464e826145e9565b604082019050919050565b5f6020820190508181035f83015261467081614637565b9050919050565b5f614681826141ca565b915061468c836141ca565b92508282039050818111156146a4576146a3614521565b5b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6146de6020836140e6565b91506146e9826146aa565b602082019050919050565b5f6020820190508181035f83015261470b816146d2565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f614749826141ca565b9150614754836141ca565b92508261476457614763614712565b5b828204905092915050565b7f4d617820545820616d6f756e7420746f6f206c6f7700000000000000000000005f82015250565b5f6147a36015836140e6565b91506147ae8261476f565b602082019050919050565b5f6020820190508181035f8301526147d081614797565b9050919050565b7f4c696d69742076657279206c6f770000000000000000000000000000000000005f82015250565b5f61480b600e836140e6565b9150614816826147d7565b602082019050919050565b5f6020820190508181035f830152614838816147ff565b9050919050565b5f6040820190506148525f83018561426e565b61485f602083018461426e565b9392505050565b5f6040820190506148795f830185614375565b614886602083018461426e565b9392505050565b7f436f6f6c646f776e20746f6f20686967680000000000000000000000000000005f82015250565b5f6148c16011836140e6565b91506148cc8261488d565b602082019050919050565b5f6020820190508181035f8301526148ee816148b5565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f61494f6025836140e6565b915061495a826148f5565b604082019050919050565b5f6020820190508181035f83015261497c81614943565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f6149b76017836140e6565b91506149c282614983565b602082019050919050565b5f6020820190508181035f8301526149e4816149ab565b9050919050565b5f815190506149f9816141a0565b92915050565b5f60208284031215614a1457614a1361416c565b5b5f614a21848285016149eb565b91505092915050565b5f604082019050614a3d5f830185614375565b614a4a6020830184614375565b9392505050565b5f608082019050614a645f83018761426e565b614a71602083018661426e565b614a7e604083018561426e565b614a8b606083018461426e565b95945050505050565b5f604082019050614aa75f830185614246565b614ab4602083018461426e565b9392505050565b7f4e6f2045544820746f20776974686472617700000000000000000000000000005f82015250565b5f614aef6012836140e6565b9150614afa82614abb565b602082019050919050565b5f6020820190508181035f830152614b1c81614ae3565b9050919050565b5f81905092915050565b50565b5f614b3b5f83614b23565b9150614b4682614b2d565b5f82019050919050565b5f614b5a82614b30565b9150819050919050565b7f5472616e73666572206661696c656400000000000000000000000000000000005f82015250565b5f614b98600f836140e6565b9150614ba382614b64565b602082019050919050565b5f6020820190508181035f830152614bc581614b8c565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f614c266026836140e6565b9150614c3182614bcc565b604082019050919050565b5f6020820190508181035f830152614c5381614c1a565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f614cb46029836140e6565b9150614cbf82614c5a565b604082019050919050565b5f6020820190508181035f830152614ce181614ca8565b9050919050565b7f686967686572207468616e207468652077616c6c65744c696d697420666f72205f8201527f746f6b656e732e00000000000000000000000000000000000000000000000000602082015250565b5f614d426027836140e6565b9150614d4d82614ce8565b604082019050919050565b5f6020820190508181035f830152614d6f81614d36565b9050919050565b7f5472616e73666572206578636565647320746865206d61785478416d6f756e745f82015250565b5f614daa6020836140e6565b9150614db582614d76565b602082019050919050565b5f6020820190508181035f830152614dd781614d9e565b9050919050565b5f614de8826141ca565b9150614df3836141ca565b9250828202614e01816141ca565b91508282048414831517614e1857614e17614521565b5b5092915050565b7f5265656e7472616e637947756172643a207265656e7472616e742063616c6c005f82015250565b5f614e53601f836140e6565b9150614e5e82614e1f565b602082019050919050565b5f6020820190508181035f830152614e8081614e47565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f819050919050565b5f819050919050565b5f614f0d614f08614f0384614ee1565b614eea565b6141ca565b9050919050565b614f1d81614ef3565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b614f558161418f565b82525050565b5f614f668383614f4c565b60208301905092915050565b5f602082019050919050565b5f614f8882614f23565b614f928185614f2d565b9350614f9d83614f3d565b805f5b83811015614fcd578151614fb48882614f5b565b9750614fbf83614f72565b925050600181019050614fa0565b5085935050505092915050565b5f60a082019050614fed5f83018861426e565b614ffa6020830187614f14565b818103604083015261500c8186614f7e565b905061501b6060830185614375565b615028608083018461426e565b9695505050505050565b7f5061757361626c653a206e6f74207061757365640000000000000000000000005f82015250565b5f6150666014836140e6565b915061507182615032565b602082019050919050565b5f6020820190508181035f8301526150938161505a565b9050919050565b7f4645455f57414c4c4554207472616e73666572206661696c65640000000000005f82015250565b5f6150ce601a836140e6565b91506150d98261509a565b602082019050919050565b5f6020820190508181035f8301526150fb816150c2565b9050919050565b7f4c49515549444954595f57414c4c4554207472616e73666572206661696c65645f82015250565b5f6151366020836140e6565b915061514182615102565b602082019050919050565b5f6020820190508181035f8301526151638161512a565b9050919050565b7f524556454e55455f53484152455f57414c4c4554207472616e736665722066615f8201527f696c656400000000000000000000000000000000000000000000000000000000602082015250565b5f6151c46024836140e6565b91506151cf8261516a565b604082019050919050565b5f6020820190508181035f8301526151f1816151b8565b9050919050565b7f4d41524b4554494e475f57414c4c4554207472616e73666572206661696c65645f82015250565b5f61522c6020836140e6565b9150615237826151f8565b602082019050919050565b5f6020820190508181035f83015261525981615220565b905091905056fea2646970667358221220db7d6e52f653331698f2e9778277a16dd67b91c1e089996e7aa21c71d35e4dbb64736f6c634300081a0033