[ { "inputs": [], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [], "name": "AMMAlreadySet", "type": "error" }, { "inputs": [], "name": "AddressZero", "type": "error" }, { "inputs": [], "name": "AlreadyLaunched", "type": "error" }, { "inputs": [], "name": "AmountTooHigh", "type": "error" }, { "inputs": [], "name": "AmountTooLow", "type": "error" }, { "inputs": [], "name": "BotDetected", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "allowance", "type": "uint256" }, { "internalType": "uint256", "name": "needed", "type": "uint256" } ], "name": "ERC20InsufficientAllowance", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "uint256", "name": "balance", "type": "uint256" }, { "internalType": "uint256", "name": "needed", "type": "uint256" } ], "name": "ERC20InsufficientBalance", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "approver", "type": "address" } ], "name": "ERC20InvalidApprover", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "receiver", "type": "address" } ], "name": "ERC20InvalidReceiver", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "sender", "type": "address" } ], "name": "ERC20InvalidSender", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" } ], "name": "ERC20InvalidSpender", "type": "error" }, { "inputs": [], "name": "FailedToWithdrawNativeTokens", "type": "error" }, { "inputs": [], "name": "FeeTooHigh", "type": "error" }, { "inputs": [], "name": "MaxBuyAmountExceed", "type": "error" }, { "inputs": [], "name": "MaxSellAmountExceed", "type": "error" }, { "inputs": [], "name": "MaxWalletAmountExceed", "type": "error" }, { "inputs": [], "name": "NoNativeTokens", "type": "error" }, { "inputs": [], "name": "NoTokens", "type": "error" }, { "inputs": [], "name": "NotLaunched", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "name": "OwnableInvalidOwner", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "OwnableUnauthorizedAccount", "type": "error" }, { "inputs": [], "name": "TransferDelay", "type": "error" }, { "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": "account", "type": "address" }, { "indexed": false, "internalType": "bool", "name": "isExcluded", "type": "bool" } ], "name": "ExcludeFromFees", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "account", "type": "address" }, { "indexed": false, "internalType": "bool", "name": "isExcluded", "type": "bool" } ], "name": "ExcludeFromLimits", "type": "event" }, { "anonymous": false, "inputs": [], "name": "Launch", "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": "pair", "type": "address" }, { "indexed": false, "internalType": "bool", "name": "value", "type": "bool" } ], "name": "SetAutomatedMarketMakerPair", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "account", "type": "address" }, { "indexed": false, "internalType": "bool", "name": "isExcluded", "type": "bool" } ], "name": "SetBots", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "newValue", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "oldValue", "type": "uint256" } ], "name": "SetBuyFees", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "bool", "name": "status", "type": "bool" } ], "name": "SetCooldownEnabled", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "bool", "name": "status", "type": "bool" } ], "name": "SetLimitsEnabled", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "SetMaxBuy", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "SetMaxSell", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "SetMaxWallet", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "newWallet", "type": "address" }, { "indexed": false, "internalType": "address", "name": "oldWallet", "type": "address" } ], "name": "SetOperationsWallet", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "newValue", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "oldValue", "type": "uint256" } ], "name": "SetSellFees", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "newValue", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "oldValue", "type": "uint256" } ], "name": "SetSwapTokensAtAmount", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "bool", "name": "status", "type": "bool" } ], "name": "SetTaxesEnabled", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "newValue", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "oldValue", "type": "uint256" } ], "name": "SetTransferFees", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "newWallet", "type": "address" }, { "indexed": false, "internalType": "address", "name": "oldWallet", "type": "address" } ], "name": "SetmarketingWallet", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "Transfer", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "token", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "WithdrawStuckTokens", "type": "event" }, { "stateMutability": "payable", "type": "fallback" }, { "inputs": [], "name": "CanAddBots", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "DEAD_ADDRESS", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "DisableAddBots", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_buyFee", "type": "uint256" } ], "name": "ReduceBuyFees", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_sellFee", "type": "uint256" } ], "name": "ReduceSellFees", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_transferFee", "type": "uint256" } ], "name": "ReduceTransferFees", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_wallet", "type": "address" } ], "name": "RemoveBotWallet", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "RemoveCooldown", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "RemoveLimits", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "ZERO_ADDRESS", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "adminWallet", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "address", "name": "spender", "type": "address" } ], "name": "allowance", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "approve", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "automatedMarketMakerPairs", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "buyFee", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "decimals", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address[]", "name": "accounts", "type": "address[]" }, { "internalType": "bool", "name": "value", "type": "bool" } ], "name": "excludeFromFees", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address[]", "name": "accounts", "type": "address[]" }, { "internalType": "bool", "name": "value", "type": "bool" } ], "name": "excludeFromLimits", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "expenseWallet", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "isBot", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "isCooldownEnabled", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "isExcludedFromFees", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "isExcludedFromLimits", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "isLaunched", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "isLimitsEnabled", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "isTaxEnabled", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "launch", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "launchBlock", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "launchTime", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "marketingWallet", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "maxBuy", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "maxSell", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "maxWallet", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "operationsWallet", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "owner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "sellFee", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address[]", "name": "accounts", "type": "address[]" }, { "internalType": "bool", "name": "value", "type": "bool" } ], "name": "setBots", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_operationsWallet", "type": "address" } ], "name": "setOperationsWallet", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "setSwapTokensAtAmount", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bool", "name": "value", "type": "bool" } ], "name": "setTaxesEnabled", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_marketingWallet", "type": "address" } ], "name": "setmarketingWallet", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "swapTokensAtAmount", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "transfer", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "transferFee", "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": "value", "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": "uniswapV2Pair", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "uniswapV2Router", "outputs": [ { "internalType": "contract IUniswapV2Router", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_token", "type": "address" } ], "name": "withdrawStuckTokens", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "stateMutability": "payable", "type": "receive" } ]
60a060405234801561000f575f5ffd5b506040518060400160405280600981526020017f43726561746520414900000000000000000000000000000000000000000000008152506040518060400160405280600681526020017f4352454154450000000000000000000000000000000000000000000000000000815250335f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036100ed575f6040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081526004016100e49190611cf2565b60405180910390fd5b6100fc8161052660201b60201c565b50816004908161010c9190611f48565b50806005908161011c9190611f48565b5050505f33905061013e816a52b7d2dcc80cd2e40000006105c060201b60201c565b5f61014d61064560201b60201c565b90507394e817a2d10d5d7fd3268480f4a263c1b6951a7360075f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550736816559da854ad4272f6abf3999d770f58487a0260085f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507365a14ace692ba6df5d3a31afc224a22fb504219b60095f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507335eaea96bc652925c8084f723365069de78b4db6600a5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506103e8600c826102af9190612044565b6102b991906120b2565b600e819055506103e8600c826102cf9190612044565b6102d991906120b2565b600f819055506103e8600c826102ef9190612044565b6102f991906120b2565b601081905550620f4240610177826103119190612044565b61031b91906120b2565b6011819055506001600a60146101000a81548160ff0219169083151502179055506001600a60156101000a81548160ff0219169083151502179055506001600a60166101000a81548160ff0219169083151502179055506001600a60196101000a81548160ff021916908315150217905550601460128190555060466013819055506046601481905550737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250506103fe30600161064e60201b60201c565b61041161dead600161064e60201b60201c565b61042282600161064e60201b60201c565b61045460075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600161064e60201b60201c565b61048660085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600161064e60201b60201c565b6104973060016106df60201b60201c565b6104aa61dead60016106df60201b60201c565b6104bb8260016106df60201b60201c565b6104ed60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660016106df60201b60201c565b61051f60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660016106df60201b60201c565b50506123f5565b5f61053561077060201b60201c565b90505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461058b5761057a815f61064e60201b60201c565b61058a815f6106df60201b60201c565b5b61059c82600161064e60201b60201c565b6105ad8260016106df60201b60201c565b6105bc8261079760201b60201c565b5050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610630575f6040517fec442f050000000000000000000000000000000000000000000000000000000081526004016106279190611cf2565b60405180910390fd5b6106415f838361085860201b60201c565b5050565b5f600354905090565b8060165f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055507f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df782826040516106d39291906120fc565b60405180910390a15050565b8060175f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055507f4b89c347592b1d537e066cb4ed98d87696ae35164745d7e370e4add16941dc9282826040516107649291906120fc565b60405180910390a15050565b5f5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b5f5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f3390505f32905060155f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16156108e1576040517fe6a6c0d400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8473ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161480610962575060155f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b610998576040517fe6a6c0d400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8473ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614806109fd57508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b80610a4f575060155f8273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b610a85576040517fe6a6c0d400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600a60189054906101000a900460ff1680610ae6575060175f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b80610b37575060175f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b610b6d576040517f8dda39df00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f600a60149054906101000a900460ff168015610b975750600a60179054906101000a900460ff16155b8015610c3b575060175f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680610c39575060175f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b155b9050801561120057610c5161077060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614158015610cc55750610c9561077060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015610cfd57505f73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015610d37575061dead73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b156111ff57600a60159054906101000a900460ff1615610f3d5760805173ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614158015610ddc575060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b15610f3c57600343610dee9190612123565b60195f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054108015610e815750600343610e419190612123565b60195f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054105b610eb7576040517fc069bb4000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b4360195f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055504360195f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b5b60185f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015610fda575060175f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561107557600e5484111561101b576040517fb19dae1400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60105461102d8661158860201b60201c565b856110389190612156565b1115611070576040517fd867451100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6111fe565b60185f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015611112575060175f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561115857600f54841115611153576040517fe2a90e1400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6111fd565b60175f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff166111fc576010546111b88661158860201b60201c565b856111c39190612156565b11156111fb576040517fd867451100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b5b5b5b5b5f600a60169054906101000a900460ff16801561122a5750600a60179054906101000a900460ff16155b80156112ce575060165f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16806112cc575060165f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b155b905080156114cd575f5f905060185f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16801561133157505f601354115b15611357576064601354876113469190612044565b61135091906120b2565b90506114a3565b60185f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680156113ae57505f601254115b156113d4576064601254876113c39190612044565b6113cd91906120b2565b90506114a2565b60185f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611472575060185f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b801561147f57505f601454115b156114a1576064601454876114949190612044565b61149e91906120b2565b90505b5b5b5f8111156114cb5780866114b79190612123565b95506114ca8830836115ce60201b60201c565b5b505b5f6114dd3061158860201b60201c565b90505f601154821015905082801561153c575060185f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b80156115455750805b1561156c57600d5443111561156b57611563826117ea60201b60201c565b43600d819055505b5b61157d8989896115ce60201b60201c565b505050505050505050565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361161e578060035f8282546116129190612156565b925050819055506116ee565b5f60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050818110156116a8578381836040517fe450d38c00000000000000000000000000000000000000000000000000000000815260040161169f93929190612198565b60405180910390fd5b81810360015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611735578060035f8282540392505081905550611780565b8060015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516117dd91906121cd565b60405180910390a3505050565b6001600a60176101000a81548160ff0219169083151502179055505f5f600267ffffffffffffffff81111561182257611821611d15565b5b6040519080825280602002602001820160405280156118505781602001602082028036833780820191505090505b50905030815f81518110611867576118666121e6565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060805173ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156118ec573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906119109190612241565b81600181518110611924576119236121e6565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250505f601460115461196e9190612044565b90508084111561197c578093505b60805173ffffffffffffffffffffffffffffffffffffffff1663791ac947855f8530426040518663ffffffff1660e01b81526004016119bf95949392919061235c565b5f604051808303815f87803b1580156119d6575f5ffd5b505af11580156119e8573d5f5f3e3d5ffd5b505050505f4790505f6103e861013b83611a029190612044565b611a0c91906120b2565b90505f6103e860b484611a1f9190612044565b611a2991906120b2565b90505f6103e8606485611a3c9190612044565b611a4691906120b2565b90505f6103e861019586611a5a9190612044565b611a6491906120b2565b905060075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1684604051611aab906123e1565b5f6040518083038185875af1925050503d805f8114611ae5576040519150601f19603f3d011682016040523d82523d5f602084013e611aea565b606091505b50508098505060095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1683604051611b35906123e1565b5f6040518083038185875af1925050503d805f8114611b6f576040519150601f19603f3d011682016040523d82523d5f602084013e611b74565b606091505b505080985050600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1682604051611bbf906123e1565b5f6040518083038185875af1925050503d805f8114611bf9576040519150601f19603f3d011682016040523d82523d5f602084013e611bfe565b606091505b50508098505060085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681604051611c49906123e1565b5f6040518083038185875af1925050503d805f8114611c83576040519150601f19603f3d011682016040523d82523d5f602084013e611c88565b606091505b50508098505050505050505050505f600a60176101000a81548160ff02191690831515021790555050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f611cdc82611cb3565b9050919050565b611cec81611cd2565b82525050565b5f602082019050611d055f830184611ce3565b92915050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680611d8657607f821691505b602082108103611d9957611d98611d42565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302611dfb7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82611dc0565b611e058683611dc0565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f611e49611e44611e3f84611e1d565b611e26565b611e1d565b9050919050565b5f819050919050565b611e6283611e2f565b611e76611e6e82611e50565b848454611dcc565b825550505050565b5f5f905090565b611e8d611e7e565b611e98818484611e59565b505050565b5b81811015611ebb57611eb05f82611e85565b600181019050611e9e565b5050565b601f821115611f0057611ed181611d9f565b611eda84611db1565b81016020851015611ee9578190505b611efd611ef585611db1565b830182611e9d565b50505b505050565b5f82821c905092915050565b5f611f205f1984600802611f05565b1980831691505092915050565b5f611f388383611f11565b9150826002028217905092915050565b611f5182611d0b565b67ffffffffffffffff811115611f6a57611f69611d15565b5b611f748254611d6f565b611f7f828285611ebf565b5f60209050601f831160018114611fb0575f8415611f9e578287015190505b611fa88582611f2d565b86555061200f565b601f198416611fbe86611d9f565b5f5b82811015611fe557848901518255600182019150602085019450602081019050611fc0565b868310156120025784890151611ffe601f891682611f11565b8355505b6001600288020188555050505b505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61204e82611e1d565b915061205983611e1d565b925082820261206781611e1d565b9150828204841483151761207e5761207d612017565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6120bc82611e1d565b91506120c783611e1d565b9250826120d7576120d6612085565b5b828204905092915050565b5f8115159050919050565b6120f6816120e2565b82525050565b5f60408201905061210f5f830185611ce3565b61211c60208301846120ed565b9392505050565b5f61212d82611e1d565b915061213883611e1d565b92508282039050818111156121505761214f612017565b5b92915050565b5f61216082611e1d565b915061216b83611e1d565b925082820190508082111561218357612182612017565b5b92915050565b61219281611e1d565b82525050565b5f6060820190506121ab5f830186611ce3565b6121b86020830185612189565b6121c56040830184612189565b949350505050565b5f6020820190506121e05f830184612189565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f5ffd5b61222081611cd2565b811461222a575f5ffd5b50565b5f8151905061223b81612217565b92915050565b5f6020828403121561225657612255612213565b5b5f6122638482850161222d565b91505092915050565b5f819050919050565b5f61228f61228a6122858461226c565b611e26565b611e1d565b9050919050565b61229f81612275565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6122d781611cd2565b82525050565b5f6122e883836122ce565b60208301905092915050565b5f602082019050919050565b5f61230a826122a5565b61231481856122af565b935061231f836122bf565b805f5b8381101561234f57815161233688826122dd565b9750612341836122f4565b925050600181019050612322565b5085935050505092915050565b5f60a08201905061236f5f830188612189565b61237c6020830187612296565b818103604083015261238e8186612300565b905061239d6060830185611ce3565b6123aa6080830184612189565b9695505050505050565b5f81905092915050565b50565b5f6123cc5f836123b4565b91506123d7826123be565b5f82019050919050565b5f6123eb826123c1565b9150819050919050565b608051614a1761244c5f395f8181610c8c01528181610d3501528181610e8e01528181610ed501528181610fc9015281816111ce015281816118c001528181612ecd01528181613a920152613b8b0152614a175ff3fe608060405260043610610338575f3560e01c8063790ca413116101aa578063b62496f5116100f6578063e2f4560511610094578063ee5ecc891161006e578063ee5ecc8914610b97578063f2fde38b14610bbf578063f8b45b0514610be7578063fd72e22a14610c1157610339565b8063e2f4560514610b1b578063e5c6ca3f14610b45578063e6c1909b14610b6d57610339565b8063d00efb2f116100d0578063d00efb2f14610a63578063d107439b14610a8d578063d5759ba314610ab5578063dd62ed3e14610adf57610339565b8063b62496f5146109d5578063b8eb354614610a11578063cb96372814610a3b57610339565b80639966774411610163578063acb2ad6f1161013d578063acb2ad6f14610933578063ad29ffde1461095d578063afa4f3b214610985578063b2f3bba2146109ad57610339565b806399667744146108a55780639c0db5f3146108cf578063a9059cbb146108f757610339565b8063790ca413146107bf5780638c2d86cb146107e95780638da5cb5b146107ff5780638e84afec14610829578063926443521461085157806395d89b411461087b57610339565b806347062402116102845780635cce86cd1161022257806370a08231116101fc57806370a082311461071957806370db69d614610755578063715018a61461077f57806375f0a8741461079557610339565b80635cce86cd1461069d57806362b09c14146106d95780636ca541e5146106ef57610339565b80634fbee1931161025e5780634fbee193146105f9578063538ba4f91461063557806356cd40e71461065f57806359512ab01461067557610339565b8063470624021461057b57806349bd5a5e146105a55780634e6fd6c4146105cf57610339565b806322461173116102f1578063307aebc9116102cb578063307aebc9146104c1578063313ce567146104eb57806336b19cd7146105155780633bbac5791461053f57610339565b8063224611731461043357806323b872dd1461045b5780632b14ca561461049757610339565b806301339c211461033b57806306fdde0314610351578063095ea7b31461037b578063106a5a8f146103b75780631694505e146103df57806318160ddd1461040957610339565b5b005b348015610346575f5ffd5b5061034f610c3b565b005b34801561035c575f5ffd5b506103656110be565b6040516103729190613f4e565b60405180910390f35b348015610386575f5ffd5b506103a1600480360381019061039c9190614003565b61114e565b6040516103ae919061405b565b60405180910390f35b3480156103c2575f5ffd5b506103dd60048036038101906103d891906140ff565b611170565b005b3480156103ea575f5ffd5b506103f36111cc565b60405161040091906141b7565b60405180910390f35b348015610414575f5ffd5b5061041d6111f0565b60405161042a91906141df565b60405180910390f35b34801561043e575f5ffd5b50610459600480360381019061045491906141f8565b6111f9565b005b348015610466575f5ffd5b50610481600480360381019061047c9190614223565b611329565b60405161048e919061405b565b60405180910390f35b3480156104a2575f5ffd5b506104ab611357565b6040516104b891906141df565b60405180910390f35b3480156104cc575f5ffd5b506104d561135d565b6040516104e2919061405b565b60405180910390f35b3480156104f6575f5ffd5b506104ff611370565b60405161050c919061428e565b60405180910390f35b348015610520575f5ffd5b50610529611378565b60405161053691906142b6565b60405180910390f35b34801561054a575f5ffd5b50610565600480360381019061056091906141f8565b61139d565b604051610572919061405b565b60405180910390f35b348015610586575f5ffd5b5061058f6113ba565b60405161059c91906141df565b60405180910390f35b3480156105b0575f5ffd5b506105b96113c0565b6040516105c691906142b6565b60405180910390f35b3480156105da575f5ffd5b506105e36113e5565b6040516105f091906142b6565b60405180910390f35b348015610604575f5ffd5b5061061f600480360381019061061a91906141f8565b6113eb565b60405161062c919061405b565b60405180910390f35b348015610640575f5ffd5b50610649611408565b60405161065691906142b6565b60405180910390f35b34801561066a575f5ffd5b5061067361140c565b005b348015610680575f5ffd5b5061069b600480360381019061069691906142cf565b611467565b005b3480156106a8575f5ffd5b506106c360048036038101906106be91906141f8565b6114c3565b6040516106d0919061405b565b60405180910390f35b3480156106e4575f5ffd5b506106ed6114e0565b005b3480156106fa575f5ffd5b5061070361153b565b604051610710919061405b565b60405180910390f35b348015610724575f5ffd5b5061073f600480360381019061073a91906141f8565b61154e565b60405161074c91906141df565b60405180910390f35b348015610760575f5ffd5b50610769611594565b60405161077691906141df565b60405180910390f35b34801561078a575f5ffd5b5061079361159a565b005b3480156107a0575f5ffd5b506107a96115ad565b6040516107b691906142b6565b60405180910390f35b3480156107ca575f5ffd5b506107d36115d2565b6040516107e091906141df565b60405180910390f35b3480156107f4575f5ffd5b506107fd6115d8565b005b34801561080a575f5ffd5b5061081361164b565b60405161082091906142b6565b60405180910390f35b348015610834575f5ffd5b5061084f600480360381019061084a91906142fa565b611672565b005b34801561085c575f5ffd5b50610865611716565b604051610872919061405b565b60405180910390f35b348015610886575f5ffd5b5061088f611729565b60405161089c9190613f4e565b60405180910390f35b3480156108b0575f5ffd5b506108b96117b9565b6040516108c691906142b6565b60405180910390f35b3480156108da575f5ffd5b506108f560048036038101906108f091906140ff565b6117de565b005b348015610902575f5ffd5b5061091d60048036038101906109189190614003565b611b32565b60405161092a919061405b565b60405180910390f35b34801561093e575f5ffd5b50610947611b54565b60405161095491906141df565b60405180910390f35b348015610968575f5ffd5b50610983600480360381019061097e91906140ff565b611b5a565b005b348015610990575f5ffd5b506109ab60048036038101906109a691906142fa565b611bb6565b005b3480156109b8575f5ffd5b506109d360048036038101906109ce91906141f8565b611cbb565b005b3480156109e0575f5ffd5b506109fb60048036038101906109f691906141f8565b611cd0565b604051610a08919061405b565b60405180910390f35b348015610a1c575f5ffd5b50610a25611ced565b604051610a3291906141df565b60405180910390f35b348015610a46575f5ffd5b50610a616004803603810190610a5c91906141f8565b611cf3565b005b348015610a6e575f5ffd5b50610a77611f84565b604051610a8491906141df565b60405180910390f35b348015610a98575f5ffd5b50610ab36004803603810190610aae91906142fa565b611f8a565b005b348015610ac0575f5ffd5b50610ac9612018565b604051610ad6919061405b565b60405180910390f35b348015610aea575f5ffd5b50610b056004803603810190610b009190614325565b61202b565b604051610b1291906141df565b60405180910390f35b348015610b26575f5ffd5b50610b2f6120ad565b604051610b3c91906141df565b60405180910390f35b348015610b50575f5ffd5b50610b6b6004803603810190610b6691906142fa565b6120b3565b005b348015610b78575f5ffd5b50610b81612141565b604051610b8e919061405b565b60405180910390f35b348015610ba2575f5ffd5b50610bbd6004803603810190610bb891906141f8565b612154565b005b348015610bca575f5ffd5b50610be56004803603810190610be091906141f8565b612284565b005b348015610bf2575f5ffd5b50610bfb612308565b604051610c0891906141df565b60405180910390f35b348015610c1c575f5ffd5b50610c2561230e565b604051610c3291906142b6565b60405180910390f35b610c43612333565b600a60189054906101000a900460ff1615610c8a576040517fcfa6d87800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610cf3573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d179190614377565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396307f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d9c573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610dc09190614377565b6040518363ffffffff1660e01b8152600401610ddd9291906143a2565b6020604051808303815f875af1158015610df9573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e1d9190614377565b60065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610e8860065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660016123ba565b610ed3307f00000000000000000000000000000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff61244b565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610f1a3061154e565b5f5f610f2461164b565b426040518863ffffffff1660e01b8152600401610f4696959493929190614402565b60606040518083038185885af1158015610f62573d5f5f3e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610f879190614475565b50505060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b37f00000000000000000000000000000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016110269291906144c5565b6020604051808303815f875af1158015611042573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110669190614500565b506001600a60186101000a81548160ff02191690831515021790555043600b8190555042600c819055507f02ac8168caf2f254b394bd39e19417c5c28124ab89c9bc2d44921b19808e266960405160405180910390a1565b6060600480546110cd90614558565b80601f01602080910402602001604051908101604052809291908181526020018280546110f990614558565b80156111445780601f1061111b57610100808354040283529160200191611144565b820191905f5260205f20905b81548152906001019060200180831161112757829003601f168201915b5050505050905090565b5f5f61115861245d565b905061116581858561244b565b600191505092915050565b611178612333565b5f5f90505b838390508110156111c6576111b984848381811061119e5761119d614588565b5b90506020020160208101906111b391906141f8565b83612464565b808060010191505061117d565b50505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b5f600354905090565b611201612333565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611266576040517f9fabe1c100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160085f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fc7437ce8158bef32791d96ac3bc7bc4bfb58de297e65d1f290f147ffe25c0f9360085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff168260405161131d9291906143a2565b60405180910390a15050565b5f5f61133361245d565b90506113408582856124f5565b61134b858585612587565b60019150509392505050565b60135481565b600a60189054906101000a900460ff1681565b5f6012905090565b60095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6015602052805f5260405f205f915054906101000a900460ff1681565b60125481565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61dead81565b6016602052805f5260405f205f915054906101000a900460ff1681565b5f81565b611414612333565b5f600a60146101000a81548160ff0219169083151502179055507ff771b1e218dc92494b39e21852f9c24c3b448d6697c2b485cc1f0cff3c9ec7815f60405161145d919061405b565b60405180910390a1565b61146f612333565b80600a60166101000a81548160ff0219169083151502179055507f06cf69227e5c2b5a71319bc3784f6a5355ea0ba2a69bc4c39d64413dfa5a012b816040516114b8919061405b565b60405180910390a150565b6017602052805f5260405f205f915054906101000a900460ff1681565b6114e8612333565b5f600a60156101000a81548160ff0219169083151502179055507f381fb4c4aa72df83c60e7e567b9b6faf3fc2b05a6da932da9f071d63442c828f5f604051611531919061405b565b60405180910390a1565b600a60159054906101000a900460ff1681565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b600e5481565b6115a2612333565b6115ab5f612677565b565b60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600c5481565b6115e0612333565b600a60199054906101000a900460ff1661162f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611626906145ff565b60405180910390fd5b5f600a60196101000a81548160ff021916908315150217905550565b5f5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b61167a612333565b600b54430361168f5780601281905550611713565b6012548111156116cb576040517fcd4e616700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f6012549050816012819055507f5fcc0eea159d45a3b8d481be746c9beed251431a542a5fed4484be37ab783e8d828260405161170992919061461d565b60405180910390a1505b50565b600a60199054906101000a900460ff1681565b60606005805461173890614558565b80601f016020809104026020016040519081016040528092919081815260200182805461176490614558565b80156117af5780601f10611786576101008083540402835291602001916117af565b820191905f5260205f20905b81548152906001019060200180831161179257829003601f168201915b5050505050905090565b600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6117e6612333565b600a60199054906101000a900460ff16611835576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161182c9061468e565b60405180910390fd5b5f5f90505b83839050811015611b2c5760185f85858481811061185b5761185a614588565b5b905060200201602081019061187091906141f8565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615801561193657507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1684848381811061190857611907614588565b5b905060200201602081019061191d91906141f8565b73ffffffffffffffffffffffffffffffffffffffff1614155b801561199557503073ffffffffffffffffffffffffffffffffffffffff1684848381811061196757611966614588565b5b905060200201602081019061197c91906141f8565b73ffffffffffffffffffffffffffffffffffffffff1614155b80156119f457505f73ffffffffffffffffffffffffffffffffffffffff168484838181106119c6576119c5614588565b5b90506020020160208101906119db91906141f8565b73ffffffffffffffffffffffffffffffffffffffff1614155b8015611ae8575060165f858584818110611a1157611a10614588565b5b9050602002016020810190611a2691906141f8565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611ae7575060175f858584818110611a8a57611a89614588565b5b9050602002016020810190611a9f91906141f8565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b5b15611b1f57611b1e848483818110611b0357611b02614588565b5b9050602002016020810190611b1891906141f8565b836126ed565b5b808060010191505061183a565b50505050565b5f5f611b3c61245d565b9050611b49818585612587565b600191505092915050565b60145481565b611b62612333565b5f5f90505b83839050811015611bb057611ba3848483818110611b8857611b87614588565b5b9050602002016020810190611b9d91906141f8565b8361277e565b8080600101915050611b67565b50505050565b611bbe612333565b5f611bc76111f0565b9050620f4240600182611bda91906146d9565b611be49190614747565b821015611c1d576040517f1fbaba3500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6103e8600582611c2d91906146d9565b611c379190614747565b821115611c70576040517ffd7850ad00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f6011549050826011819055507f190dc7c30bc62ef30e35c5f5512ad715a1bd03230f2d89c965249246c8d8ecca8382604051611cae92919061461d565b60405180910390a1505050565b611cc3612333565b611ccd815f6126ed565b50565b6018602052805f5260405f205f915054906101000a900460ff1681565b600f5481565b611cfb612333565b5f3390505f5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611e16575f4791505f8211611d70576040517f4870bf9100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff1682604051611d94906147a4565b5f6040518083038185875af1925050503d805f8114611dce576040519150601f19603f3d011682016040523d82523d5f602084013e611dd3565b606091505b50508091505080611e10576040517f6730ca4a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50611f46565b8273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401611e4f91906142b6565b602060405180830381865afa158015611e6a573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611e8e91906147b8565b90505f8111611ec9576040517fdf95788300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b8152600401611f049291906144c5565b6020604051808303815f875af1158015611f20573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611f449190614500565b505b7f07c81a5e6d155913a9ed2ce53630058179c89fc94bb5de130620b0245c9f6a0b8382604051611f779291906144c5565b60405180910390a1505050565b600b5481565b611f92612333565b601454811115611fce576040517fcd4e616700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f6014549050816014819055507f8fd531ce6f3cbc5b8cc01a0413b630e3f11569780ee5cf8d0c78e03bca30bc25828260405161200c92919061461d565b60405180910390a15050565b600a60149054906101000a900460ff1681565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b60115481565b6120bb612333565b6013548111156120f7576040517fcd4e616700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f6013549050816013819055507f125b37650f21d088600cef1223439f6a8bd70800debfd486c503a8a2d19d4b01828260405161213592919061461d565b60405180910390a15050565b600a60169054906101000a900460ff1681565b61215c612333565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036121c1576040517f9fabe1c100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160075f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fe20a721838fcbbb3840bd5d97dde1ffeb479fe73d75736fa6fdfc0f220aae00560075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16826040516122789291906143a2565b60405180910390a15050565b61228c612333565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036122fc575f6040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081526004016122f391906142b6565b60405180910390fd5b61230581612677565b50565b60105481565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61233b61245d565b73ffffffffffffffffffffffffffffffffffffffff1661235961164b565b73ffffffffffffffffffffffffffffffffffffffff16146123b85761237c61245d565b6040517f118cdaa70000000000000000000000000000000000000000000000000000000081526004016123af91906142b6565b60405180910390fd5b565b8060185f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055507fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab828260405161243f9291906147e3565b60405180910390a15050565b612458838383600161280f565b505050565b5f33905090565b8060175f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055507f4b89c347592b1d537e066cb4ed98d87696ae35164745d7e370e4add16941dc9282826040516124e99291906147e3565b60405180910390a15050565b5f612500848461202b565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146125815781811015612572578281836040517ffb8f41b20000000000000000000000000000000000000000000000000000000081526004016125699392919061480a565b60405180910390fd5b61258084848484035f61280f565b5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036125f7575f6040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016125ee91906142b6565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612667575f6040517fec442f0500000000000000000000000000000000000000000000000000000000815260040161265e91906142b6565b60405180910390fd5b6126728383836129de565b505050565b5f61268061164b565b90505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146126ca576126bf815f61277e565b6126c9815f612464565b5b6126d582600161277e565b6126e0826001612464565b6126e9826136fc565b5050565b8060155f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055507ff7f8b40d08076851dfb7cfd6c584ae9a829a570f264abee45e0d7ca342ae8dc882826040516127729291906147e3565b60405180910390a15050565b8060165f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055507f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df782826040516128039291906147e3565b60405180910390a15050565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff160361287f575f6040517fe602df0500000000000000000000000000000000000000000000000000000000815260040161287691906142b6565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036128ef575f6040517f94280d620000000000000000000000000000000000000000000000000000000081526004016128e691906142b6565b60405180910390fd5b8160025f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555080156129d8578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516129cf91906141df565b60405180910390a35b50505050565b5f3390505f32905060155f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615612a67576040517fe6a6c0d400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8473ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161480612ae8575060155f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b612b1e576040517fe6a6c0d400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8473ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161480612b8357508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b80612bd5575060155f8273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b612c0b576040517fe6a6c0d400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600a60189054906101000a900460ff1680612c6c575060175f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b80612cbd575060175f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b612cf3576040517f8dda39df00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f600a60149054906101000a900460ff168015612d1d5750600a60179054906101000a900460ff16155b8015612dc1575060175f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680612dbf575060175f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b155b9050801561338c57612dd161164b565b73ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614158015612e3f5750612e0f61164b565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015612e7757505f73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015612eb1575061dead73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b1561338b57600a60159054906101000a900460ff16156130d5577f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614158015612f74575060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b156130d457600343612f86919061483f565b60195f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20541080156130195750600343612fd9919061483f565b60195f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054105b61304f576040517fc069bb4000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b4360195f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055504360195f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b5b60185f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015613172575060175f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561320757600e548411156131b3576040517fb19dae1400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6010546131bf8661154e565b856131ca9190614872565b1115613202576040517fd867451100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61338a565b60185f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680156132a4575060175f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156132ea57600f548411156132e5576040517fe2a90e1400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b613389565b60175f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16613388576010546133448661154e565b8561334f9190614872565b1115613387576040517fd867451100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b5b5b5b5b5f600a60169054906101000a900460ff1680156133b65750600a60179054906101000a900460ff16155b801561345a575060165f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680613458575060165f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b155b90508015613653575f5f905060185f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680156134bd57505f601354115b156134e3576064601354876134d291906146d9565b6134dc9190614747565b905061362f565b60185f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16801561353a57505f601254115b156135605760646012548761354f91906146d9565b6135599190614747565b905061362e565b60185f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161580156135fe575060185f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b801561360b57505f601454115b1561362d5760646014548761362091906146d9565b61362a9190614747565b90505b5b5b5f811115613651578086613643919061483f565b95506136508830836137bd565b5b505b5f61365d3061154e565b90505f60115482101590508280156136bc575060185f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b80156136c55750805b156136e657600d544311156136e5576136dd826139d9565b43600d819055505b5b6136f18989896137bd565b505050505050505050565b5f5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361380d578060035f8282546138019190614872565b925050819055506138dd565b5f60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015613897578381836040517fe450d38c00000000000000000000000000000000000000000000000000000000815260040161388e9392919061480a565b60405180910390fd5b81810360015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603613924578060035f828254039250508190555061396f565b8060015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516139cc91906141df565b60405180910390a3505050565b6001600a60176101000a81548160ff0219169083151502179055505f5f600267ffffffffffffffff811115613a1157613a106148a5565b5b604051908082528060200260200182016040528015613a3f5781602001602082028036833780820191505090505b50905030815f81518110613a5657613a55614588565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015613af9573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613b1d9190614377565b81600181518110613b3157613b30614588565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250505f6014601154613b7b91906146d9565b905080841115613b89578093505b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663791ac947855f8530426040518663ffffffff1660e01b8152600401613bea959493929190614989565b5f604051808303815f87803b158015613c01575f5ffd5b505af1158015613c13573d5f5f3e3d5ffd5b505050505f4790505f6103e861013b83613c2d91906146d9565b613c379190614747565b90505f6103e860b484613c4a91906146d9565b613c549190614747565b90505f6103e8606485613c6791906146d9565b613c719190614747565b90505f6103e861019586613c8591906146d9565b613c8f9190614747565b905060075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1684604051613cd6906147a4565b5f6040518083038185875af1925050503d805f8114613d10576040519150601f19603f3d011682016040523d82523d5f602084013e613d15565b606091505b50508098505060095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1683604051613d60906147a4565b5f6040518083038185875af1925050503d805f8114613d9a576040519150601f19603f3d011682016040523d82523d5f602084013e613d9f565b606091505b505080985050600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1682604051613dea906147a4565b5f6040518083038185875af1925050503d805f8114613e24576040519150601f19603f3d011682016040523d82523d5f602084013e613e29565b606091505b50508098505060085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681604051613e74906147a4565b5f6040518083038185875af1925050503d805f8114613eae576040519150601f19603f3d011682016040523d82523d5f602084013e613eb3565b606091505b50508098505050505050505050505f600a60176101000a81548160ff02191690831515021790555050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f613f2082613ede565b613f2a8185613ee8565b9350613f3a818560208601613ef8565b613f4381613f06565b840191505092915050565b5f6020820190508181035f830152613f668184613f16565b905092915050565b5f5ffd5b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f613f9f82613f76565b9050919050565b613faf81613f95565b8114613fb9575f5ffd5b50565b5f81359050613fca81613fa6565b92915050565b5f819050919050565b613fe281613fd0565b8114613fec575f5ffd5b50565b5f81359050613ffd81613fd9565b92915050565b5f5f6040838503121561401957614018613f6e565b5b5f61402685828601613fbc565b925050602061403785828601613fef565b9150509250929050565b5f8115159050919050565b61405581614041565b82525050565b5f60208201905061406e5f83018461404c565b92915050565b5f5ffd5b5f5ffd5b5f5ffd5b5f5f83601f84011261409557614094614074565b5b8235905067ffffffffffffffff8111156140b2576140b1614078565b5b6020830191508360208202830111156140ce576140cd61407c565b5b9250929050565b6140de81614041565b81146140e8575f5ffd5b50565b5f813590506140f9816140d5565b92915050565b5f5f5f6040848603121561411657614115613f6e565b5b5f84013567ffffffffffffffff81111561413357614132613f72565b5b61413f86828701614080565b93509350506020614152868287016140eb565b9150509250925092565b5f819050919050565b5f61417f61417a61417584613f76565b61415c565b613f76565b9050919050565b5f61419082614165565b9050919050565b5f6141a182614186565b9050919050565b6141b181614197565b82525050565b5f6020820190506141ca5f8301846141a8565b92915050565b6141d981613fd0565b82525050565b5f6020820190506141f25f8301846141d0565b92915050565b5f6020828403121561420d5761420c613f6e565b5b5f61421a84828501613fbc565b91505092915050565b5f5f5f6060848603121561423a57614239613f6e565b5b5f61424786828701613fbc565b935050602061425886828701613fbc565b925050604061426986828701613fef565b9150509250925092565b5f60ff82169050919050565b61428881614273565b82525050565b5f6020820190506142a15f83018461427f565b92915050565b6142b081613f95565b82525050565b5f6020820190506142c95f8301846142a7565b92915050565b5f602082840312156142e4576142e3613f6e565b5b5f6142f1848285016140eb565b91505092915050565b5f6020828403121561430f5761430e613f6e565b5b5f61431c84828501613fef565b91505092915050565b5f5f6040838503121561433b5761433a613f6e565b5b5f61434885828601613fbc565b925050602061435985828601613fbc565b9150509250929050565b5f8151905061437181613fa6565b92915050565b5f6020828403121561438c5761438b613f6e565b5b5f61439984828501614363565b91505092915050565b5f6040820190506143b55f8301856142a7565b6143c260208301846142a7565b9392505050565b5f819050919050565b5f6143ec6143e76143e2846143c9565b61415c565b613fd0565b9050919050565b6143fc816143d2565b82525050565b5f60c0820190506144155f8301896142a7565b61442260208301886141d0565b61442f60408301876143f3565b61443c60608301866143f3565b61444960808301856142a7565b61445660a08301846141d0565b979650505050505050565b5f8151905061446f81613fd9565b92915050565b5f5f5f6060848603121561448c5761448b613f6e565b5b5f61449986828701614461565b93505060206144aa86828701614461565b92505060406144bb86828701614461565b9150509250925092565b5f6040820190506144d85f8301856142a7565b6144e560208301846141d0565b9392505050565b5f815190506144fa816140d5565b92915050565b5f6020828403121561451557614514613f6e565b5b5f614522848285016144ec565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061456f57607f821691505b6020821081036145825761458161452b565b5b50919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f416c72656164792044697361626c6564000000000000000000000000000000005f82015250565b5f6145e9601083613ee8565b91506145f4826145b5565b602082019050919050565b5f6020820190508181035f830152614616816145dd565b9050919050565b5f6040820190506146305f8301856141d0565b61463d60208301846141d0565b9392505050565b7f43616e277420416464206d6f726520626f7473206e6f770000000000000000005f82015250565b5f614678601783613ee8565b915061468382614644565b602082019050919050565b5f6020820190508181035f8301526146a58161466c565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6146e382613fd0565b91506146ee83613fd0565b92508282026146fc81613fd0565b91508282048414831517614713576147126146ac565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61475182613fd0565b915061475c83613fd0565b92508261476c5761476b61471a565b5b828204905092915050565b5f81905092915050565b50565b5f61478f5f83614777565b915061479a82614781565b5f82019050919050565b5f6147ae82614784565b9150819050919050565b5f602082840312156147cd576147cc613f6e565b5b5f6147da84828501614461565b91505092915050565b5f6040820190506147f65f8301856142a7565b614803602083018461404c565b9392505050565b5f60608201905061481d5f8301866142a7565b61482a60208301856141d0565b61483760408301846141d0565b949350505050565b5f61484982613fd0565b915061485483613fd0565b925082820390508181111561486c5761486b6146ac565b5b92915050565b5f61487c82613fd0565b915061488783613fd0565b925082820190508082111561489f5761489e6146ac565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61490481613f95565b82525050565b5f61491583836148fb565b60208301905092915050565b5f602082019050919050565b5f614937826148d2565b61494181856148dc565b935061494c836148ec565b805f5b8381101561497c578151614963888261490a565b975061496e83614921565b92505060018101905061494f565b5085935050505092915050565b5f60a08201905061499c5f8301886141d0565b6149a960208301876143f3565b81810360408301526149bb818661492d565b90506149ca60608301856142a7565b6149d760808301846141d0565b969550505050505056fea264697066735822122099150a52ef53585f39df1f9864cdf7b90e87bcee9e4c9c0af9d1a1c26e7eaa7864736f6c634300081b0033