Loading
[ { "inputs": [], "stateMutability": "nonpayable", "type": "constructor" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "spender", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "Approval", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "sniper", "type": "address" } ], "name": "BoughtEarly", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "newWallet", "type": "address" }, { "indexed": true, "internalType": "address", "name": "olDevsWalletallet", "type": "address" } ], "name": "DevsWalletUpdated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "account", "type": "address" }, { "indexed": false, "internalType": "bool", "name": "isExcluded", "type": "bool" } ], "name": "ExcludeFromFees", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "previousOwner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "OwnershipTransferred", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "pair", "type": "address" }, { "indexed": true, "internalType": "bool", "name": "value", "type": "bool" } ], "name": "SetAutomatedMarketMakerPair", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": 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": true, "internalType": "address", "name": "newAddress", "type": "address" }, { "indexed": true, "internalType": "address", "name": "oldAddress", "type": "address" } ], "name": "UpdateUniswapV2Router", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "newWallet", "type": "address" }, { "indexed": true, "internalType": "address", "name": "olDevsWalletallet", "type": "address" } ], "name": "marketerWalletUpdated", "type": "event" }, { "inputs": [], "name": "DevsWallet", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "_isExcludedmaxTx", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "address", "name": "spender", "type": "address" } ], "name": "allowance", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "approve", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "automatedMarketMakerPairs", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "buyDevFee", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "buyMarketingFee", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "buyTotalFees", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "deadAddress", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "decimals", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "subtractedValue", "type": "uint256" } ], "name": "decreaseAllowance", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "disableTransferDelay", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "enableTrading", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "bool", "name": "excluded", "type": "bool" } ], "name": "excludeFromFees", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "updAds", "type": "address" }, { "internalType": "bool", "name": "isEx", "type": "bool" } ], "name": "excludeFrommaxTx", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "addedValue", "type": "uint256" } ], "name": "increaseAllowance", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "isExcludedFromFees", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "limitsInEffect", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "manualSwap", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "marketerWallet", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "maxTx", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "maxWallets", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "owner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "removeLimits", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "sellDevFee", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "sellMarketingFee", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "sellTotalFees", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "pair", "type": "address" }, { "internalType": "bool", "name": "value", "type": "bool" } ], "name": "setAutomatedMarketMakerPair", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "swapEnabled", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "swapTokensAtAmount", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "tokensForDev", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "tokensForMarkets", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "tradingActive", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "recipient", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "transfer", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "transferDelayEnabled", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "address", "name": "recipient", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "transferFrom", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "transferOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "uniswapV2Pair", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "uniswapV2Router", "outputs": [ { "internalType": "contract IUniswapV2Router02", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_marketingFee", "type": "uint256" }, { "internalType": "uint256", "name": "_devFee", "type": "uint256" } ], "name": "updateBuyFees", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newWallet", "type": "address" } ], "name": "updateDevsWallet", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_buyMarketingFee", "type": "uint256" }, { "internalType": "uint256", "name": "_buyDevFee", "type": "uint256" }, { "internalType": "uint256", "name": "_sellMarketingFee", "type": "uint256" }, { "internalType": "uint256", "name": "_sellDevFee", "type": "uint256" } ], "name": "updateFees", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "newNum", "type": "uint256" } ], "name": "updateMaxTxnAmount", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_marketingFee", "type": "uint256" }, { "internalType": "uint256", "name": "_devFee", "type": "uint256" } ], "name": "updateSellFees", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bool", "name": "enabled", "type": "bool" } ], "name": "updateSwapEnabled", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "newAmount", "type": "uint256" } ], "name": "updateSwapTokensAtAmount", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newmarketerWallet", "type": "address" } ], "name": "updatemarketerWallet", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "newNum", "type": "uint256" } ], "name": "updatemaxWalletsAmount", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "stateMutability": "payable", "type": "receive" } ]
60a06040526001600c5f6101000a81548160ff0219169083151502179055506001600c60016101000a81548160ff0219169083151502179055506001600c60026101000a81548160ff0219169083151502179055505f600e5f6101000a81548160ff021916908315150217905550348015610078575f5ffd5b506040518060400160405280600981526020017f566f727465782e4f5300000000000000000000000000000000000000000000008152506040518060400160405280600681526020017f564f52544558000000000000000000000000000000000000000000000000000081525081600390816100f49190610cb2565b5080600490816101049190610cb2565b50505061012361011861056a60201b60201c565b61057160201b60201c565b5f737a250d5630b4cf539739df2c5dacb4c659f2488d905061014c81600161063460201b60201c565b8073ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101c9573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101ed9190610ddf565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610252573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102769190610ddf565b6040518363ffffffff1660e01b8152600401610293929190610e19565b6020604051808303815f875af11580156102af573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102d39190610ddf565b60065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061034460065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600161063460201b60201c565b61037660065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600161071460201b60201c565b5f600590505f5f90505f600590505f5f90505f6a52b7d2dcc80cd2e400000090506a52b7d2dcc80cd2e40000006009819055506a52b7d2dcc80cd2e4000000600b819055506127106003826103cb9190610e6d565b6103d59190610edb565b600a8190555084601081905550836011819055506011546010546103f99190610f0b565b600f81905550826013819055508160148190555060145460135461041d9190610f0b565b60128190555073e5f360729c95ac5bb843ecb745589e8bcd76b38260075f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073e5f360729c95ac5bb843ecb745589e8bcd76b38260085f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506104e96104dc6107b260201b60201c565b60016107da60201b60201c565b6104fa3060016107da60201b60201c565b61050d61dead60016107da60201b60201c565b61052b61051e6107b260201b60201c565b600161063460201b60201c565b61053c30600161063460201b60201c565b61054f61dead600161063460201b60201c565b61055f338261090860201b60201c565b505050505050611079565b5f33905090565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b61064261056a60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff166106666107b260201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16146106bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106b390610f98565b60405180910390fd5b8060195f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b80601a5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6107e861056a60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1661080c6107b260201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1614610862576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161085990610f98565b60405180910390fd5b8060185f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7826040516108fc9190610fd0565b60405180910390a25050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610976576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161096d90611033565b60405180910390fd5b6109875f8383610a6b60201b60201c565b8060025f8282546109989190610f0b565b92505081905550805f5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546109ea9190610f0b565b925050819055508173ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610a4e9190611060565b60405180910390a3610a675f8383610a7060201b60201c565b5050565b505050565b505050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680610af057607f821691505b602082108103610b0357610b02610aac565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302610b657fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82610b2a565b610b6f8683610b2a565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f610bb3610bae610ba984610b87565b610b90565b610b87565b9050919050565b5f819050919050565b610bcc83610b99565b610be0610bd882610bba565b848454610b36565b825550505050565b5f5f905090565b610bf7610be8565b610c02818484610bc3565b505050565b5b81811015610c2557610c1a5f82610bef565b600181019050610c08565b5050565b601f821115610c6a57610c3b81610b09565b610c4484610b1b565b81016020851015610c53578190505b610c67610c5f85610b1b565b830182610c07565b50505b505050565b5f82821c905092915050565b5f610c8a5f1984600802610c6f565b1980831691505092915050565b5f610ca28383610c7b565b9150826002028217905092915050565b610cbb82610a75565b67ffffffffffffffff811115610cd457610cd3610a7f565b5b610cde8254610ad9565b610ce9828285610c29565b5f60209050601f831160018114610d1a575f8415610d08578287015190505b610d128582610c97565b865550610d79565b601f198416610d2886610b09565b5f5b82811015610d4f57848901518255600182019150602085019450602081019050610d2a565b86831015610d6c5784890151610d68601f891682610c7b565b8355505b6001600288020188555050505b505050505050565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610dae82610d85565b9050919050565b610dbe81610da4565b8114610dc8575f5ffd5b50565b5f81519050610dd981610db5565b92915050565b5f60208284031215610df457610df3610d81565b5b5f610e0184828501610dcb565b91505092915050565b610e1381610da4565b82525050565b5f604082019050610e2c5f830185610e0a565b610e396020830184610e0a565b9392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f610e7782610b87565b9150610e8283610b87565b9250828202610e9081610b87565b91508282048414831517610ea757610ea6610e40565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f610ee582610b87565b9150610ef083610b87565b925082610f0057610eff610eae565b5b828204905092915050565b5f610f1582610b87565b9150610f2083610b87565b9250828201905080821115610f3857610f37610e40565b5b92915050565b5f82825260208201905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f610f82602083610f3e565b9150610f8d82610f4e565b602082019050919050565b5f6020820190508181035f830152610faf81610f76565b9050919050565b5f8115159050919050565b610fca81610fb6565b82525050565b5f602082019050610fe35f830184610fc1565b92915050565b7f45524332303a206d696e7420746f20746865207a65726f2061646472657373005f82015250565b5f61101d601f83610f3e565b915061102882610fe9565b602082019050919050565b5f6020820190508181035f83015261104a81611011565b9050919050565b61105a81610b87565b82525050565b5f6020820190506110735f830184611051565b92915050565b608051614eff6110ad5f395f8181610df7015281816129fa0152818161349b0152818161357a01526135a10152614eff5ff3fe60806040526004361061031d575f3560e01c80638a8c523c116101aa578063b70143c9116100f6578063d85ba06311610094578063e6819ba71161006e578063e6819ba714610ba8578063e884f26014610be4578063f1b9ad6b14610c0e578063f2fde38b14610c3657610324565b8063d85ba06314610b18578063dd62ed3e14610b42578063e2f4560514610b7e57610324565b8063c0246668116100d0578063c024666814610a62578063c6616ba114610a8a578063c876d0b914610ab2578063d257b34f14610adc57610324565b8063b70143c9146109e8578063b819a1a914610a10578063bbc0c74214610a3857610324565b80639c3b4fdc11610163578063a457c2d71161013d578063a457c2d71461090a578063a72f458614610946578063a9059cbb14610970578063b62496f5146109ac57610324565b80639c3b4fdc1461088c5780639fccce32146108b6578063a0d82dc5146108e057610324565b80638a8c523c146107a85780638da5cb5b146107be57806392136913146107e8578063924de9b71461081257806395d89b411461083a5780639a7a23d61461086457610324565b806349bd5a5e116102695780636a486a8e11610222578063715018a6116101fc578063715018a6146107145780637437681e1461072a578063751039fc146107545780637bce5a041461077e57610324565b80636a486a8e146106845780636ddd1713146106ae57806370a08231146106d857610324565b806349bd5a5e1461057a5780634a62bb65146105a45780634fbee193146105ce57806361528e271461060a578063644130d81461063457806366ca9b831461065c57610324565b8063217580a2116102d657806330a136ad116102b057806330a136ad146104c05780633103b39e146104ea578063313ce56714610514578063395093511461053e57610324565b8063217580a21461043257806323b872dd1461045a57806327c8f8351461049657610324565b806302dbd8f81461032857806306fdde0314610350578063095ea7b31461037a5780631694505e146103b657806318160ddd146103e0578063203e727e1461040a57610324565b3661032457005b5f5ffd5b348015610333575f5ffd5b5061034e60048036038101906103499190613af5565b610c5e565b005b34801561035b575f5ffd5b50610364610d48565b6040516103719190613ba3565b60405180910390f35b348015610385575f5ffd5b506103a0600480360381019061039b9190613c1d565b610dd8565b6040516103ad9190613c75565b60405180910390f35b3480156103c1575f5ffd5b506103ca610df5565b6040516103d79190613ce9565b60405180910390f35b3480156103eb575f5ffd5b506103f4610e19565b6040516104019190613d11565b60405180910390f35b348015610415575f5ffd5b50610430600480360381019061042b9190613d2a565b610e22565b005b34801561043d575f5ffd5b5061045860048036038101906104539190613d2a565b610f31565b005b348015610465575f5ffd5b50610480600480360381019061047b9190613d55565b611040565b60405161048d9190613c75565b60405180910390f35b3480156104a1575f5ffd5b506104aa611132565b6040516104b79190613db4565b60405180910390f35b3480156104cb575f5ffd5b506104d4611138565b6040516104e19190613d11565b60405180910390f35b3480156104f5575f5ffd5b506104fe61113e565b60405161050b9190613db4565b60405180910390f35b34801561051f575f5ffd5b50610528611163565b6040516105359190613de8565b60405180910390f35b348015610549575f5ffd5b50610564600480360381019061055f9190613c1d565b61116b565b6040516105719190613c75565b60405180910390f35b348015610585575f5ffd5b5061058e611212565b60405161059b9190613db4565b60405180910390f35b3480156105af575f5ffd5b506105b8611237565b6040516105c59190613c75565b60405180910390f35b3480156105d9575f5ffd5b506105f460048036038101906105ef9190613e01565b611249565b6040516106019190613c75565b60405180910390f35b348015610615575f5ffd5b5061061e61129b565b60405161062b9190613d11565b60405180910390f35b34801561063f575f5ffd5b5061065a60048036038101906106559190613e56565b6112a1565b005b348015610667575f5ffd5b50610682600480360381019061067d9190613af5565b611375565b005b34801561068f575f5ffd5b5061069861145f565b6040516106a59190613d11565b60405180910390f35b3480156106b9575f5ffd5b506106c2611465565b6040516106cf9190613c75565b60405180910390f35b3480156106e3575f5ffd5b506106fe60048036038101906106f99190613e01565b611478565b60405161070b9190613d11565b60405180910390f35b34801561071f575f5ffd5b506107286114bd565b005b348015610735575f5ffd5b5061073e611544565b60405161074b9190613d11565b60405180910390f35b34801561075f575f5ffd5b5061076861154a565b6040516107759190613c75565b60405180910390f35b348015610789575f5ffd5b506107926115e7565b60405161079f9190613d11565b60405180910390f35b3480156107b3575f5ffd5b506107bc6115ed565b005b3480156107c9575f5ffd5b506107d26116a1565b6040516107df9190613db4565b60405180910390f35b3480156107f3575f5ffd5b506107fc6116c9565b6040516108099190613d11565b60405180910390f35b34801561081d575f5ffd5b5061083860048036038101906108339190613e94565b6116cf565b005b348015610845575f5ffd5b5061084e611768565b60405161085b9190613ba3565b60405180910390f35b34801561086f575f5ffd5b5061088a60048036038101906108859190613e56565b6117f8565b005b348015610897575f5ffd5b506108a0611911565b6040516108ad9190613d11565b60405180910390f35b3480156108c1575f5ffd5b506108ca611917565b6040516108d79190613d11565b60405180910390f35b3480156108eb575f5ffd5b506108f461191d565b6040516109019190613d11565b60405180910390f35b348015610915575f5ffd5b50610930600480360381019061092b9190613c1d565b611923565b60405161093d9190613c75565b60405180910390f35b348015610951575f5ffd5b5061095a611a09565b6040516109679190613db4565b60405180910390f35b34801561097b575f5ffd5b5061099660048036038101906109919190613c1d565b611a2e565b6040516109a39190613c75565b60405180910390f35b3480156109b7575f5ffd5b506109d260048036038101906109cd9190613e01565b611a4b565b6040516109df9190613c75565b60405180910390f35b3480156109f3575f5ffd5b50610a0e6004803603810190610a099190613d2a565b611a68565b005b348015610a1b575f5ffd5b50610a366004803603810190610a319190613e01565b611b29565b005b348015610a43575f5ffd5b50610a4c611c63565b604051610a599190613c75565b60405180910390f35b348015610a6d575f5ffd5b50610a886004803603810190610a839190613e56565b611c76565b005b348015610a95575f5ffd5b50610ab06004803603810190610aab9190613ebf565b611d98565b005b348015610abd575f5ffd5b50610ac6611eee565b604051610ad39190613c75565b60405180910390f35b348015610ae7575f5ffd5b50610b026004803603810190610afd9190613d2a565b611f00565b604051610b0f9190613c75565b60405180910390f35b348015610b23575f5ffd5b50610b2c612054565b604051610b399190613d11565b60405180910390f35b348015610b4d575f5ffd5b50610b686004803603810190610b639190613f23565b61205a565b604051610b759190613d11565b60405180910390f35b348015610b89575f5ffd5b50610b926120dc565b604051610b9f9190613d11565b60405180910390f35b348015610bb3575f5ffd5b50610bce6004803603810190610bc99190613e01565b6120e2565b604051610bdb9190613c75565b60405180910390f35b348015610bef575f5ffd5b50610bf86120ff565b604051610c059190613c75565b60405180910390f35b348015610c19575f5ffd5b50610c346004803603810190610c2f9190613e01565b61219c565b005b348015610c41575f5ffd5b50610c5c6004803603810190610c579190613e01565b6122d6565b005b610c666123cc565b73ffffffffffffffffffffffffffffffffffffffff16610c846116a1565b73ffffffffffffffffffffffffffffffffffffffff1614610cda576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cd190613fab565b60405180910390fd5b8160138190555080601481905550601454601354610cf89190613ff6565b601281905550604b6012541115610d44576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d3b90614073565b60405180910390fd5b5050565b606060038054610d57906140be565b80601f0160208091040260200160405190810160405280929190818152602001828054610d83906140be565b8015610dce5780601f10610da557610100808354040283529160200191610dce565b820191905f5260205f20905b815481529060010190602001808311610db157829003601f168201915b5050505050905090565b5f610deb610de46123cc565b84846123d3565b6001905092915050565b7f000000000000000000000000000000000000000000000000000000000000000081565b5f600254905090565b610e2a6123cc565b73ffffffffffffffffffffffffffffffffffffffff16610e486116a1565b73ffffffffffffffffffffffffffffffffffffffff1614610e9e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e9590613fab565b60405180910390fd5b670de0b6b3a76400006103e86001610eb4610e19565b610ebe91906140ee565b610ec8919061415c565b610ed2919061415c565b811015610f14576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f0b906141d6565b60405180910390fd5b670de0b6b3a764000081610f2891906140ee565b60098190555050565b610f396123cc565b73ffffffffffffffffffffffffffffffffffffffff16610f576116a1565b73ffffffffffffffffffffffffffffffffffffffff1614610fad576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fa490613fab565b60405180910390fd5b670de0b6b3a76400006103e86005610fc3610e19565b610fcd91906140ee565b610fd7919061415c565b610fe1919061415c565b811015611023576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161101a90614264565b60405180910390fd5b670de0b6b3a76400008161103791906140ee565b600b8190555050565b5f61104c848484612596565b5f60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6110936123cc565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905082811015611112576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611109906142f2565b60405180910390fd5b6111268561111e6123cc565b8584036123d3565b60019150509392505050565b61dead81565b600b5481565b60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f6012905090565b5f6112086111776123cc565b848460015f6111846123cc565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546112039190613ff6565b6123d3565b6001905092915050565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600c5f9054906101000a900460ff1681565b5f60185f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b60155481565b6112a96123cc565b73ffffffffffffffffffffffffffffffffffffffff166112c76116a1565b73ffffffffffffffffffffffffffffffffffffffff161461131d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161131490613fab565b60405180910390fd5b8060195f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b61137d6123cc565b73ffffffffffffffffffffffffffffffffffffffff1661139b6116a1565b73ffffffffffffffffffffffffffffffffffffffff16146113f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113e890613fab565b60405180910390fd5b816010819055508060118190555060115460105461140f9190613ff6565b600f81905550604b600f54111561145b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161145290614073565b60405180910390fd5b5050565b60125481565b600c60029054906101000a900460ff1681565b5f5f5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6114c56123cc565b73ffffffffffffffffffffffffffffffffffffffff166114e36116a1565b73ffffffffffffffffffffffffffffffffffffffff1614611539576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161153090613fab565b60405180910390fd5b6115425f61329d565b565b60095481565b5f6115536123cc565b73ffffffffffffffffffffffffffffffffffffffff166115716116a1565b73ffffffffffffffffffffffffffffffffffffffff16146115c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115be90613fab565b60405180910390fd5b5f600c5f6101000a81548160ff0219169083151502179055506001905090565b60105481565b6115f56123cc565b73ffffffffffffffffffffffffffffffffffffffff166116136116a1565b73ffffffffffffffffffffffffffffffffffffffff1614611669576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161166090613fab565b60405180910390fd5b6001600c60016101000a81548160ff0219169083151502179055506001600c60026101000a81548160ff021916908315150217905550565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60135481565b6116d76123cc565b73ffffffffffffffffffffffffffffffffffffffff166116f56116a1565b73ffffffffffffffffffffffffffffffffffffffff161461174b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161174290613fab565b60405180910390fd5b80600c60026101000a81548160ff02191690831515021790555050565b606060048054611777906140be565b80601f01602080910402602001604051908101604052809291908181526020018280546117a3906140be565b80156117ee5780601f106117c5576101008083540402835291602001916117ee565b820191905f5260205f20905b8154815290600101906020018083116117d157829003601f168201915b5050505050905090565b6118006123cc565b73ffffffffffffffffffffffffffffffffffffffff1661181e6116a1565b73ffffffffffffffffffffffffffffffffffffffff1614611874576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161186b90613fab565b60405180910390fd5b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611903576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118fa90614380565b60405180910390fd5b61190d8282613360565b5050565b60115481565b60165481565b60145481565b5f5f60015f6119306123cc565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050828110156119ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119e19061440e565b60405180910390fd5b6119fe6119f56123cc565b858584036123d3565b600191505092915050565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f611a41611a3a6123cc565b8484612596565b6001905092915050565b601a602052805f5260405f205f915054906101000a900460ff1681565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611aa86123cc565b73ffffffffffffffffffffffffffffffffffffffff1614611ac7575f5ffd5b611ad030611478565b8111158015611ade57505f81115b611b1d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b1490614476565b60405180910390fd5b611b26816133fe565b50565b611b316123cc565b73ffffffffffffffffffffffffffffffffffffffff16611b4f6116a1565b73ffffffffffffffffffffffffffffffffffffffff1614611ba5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b9c90613fab565b60405180910390fd5b60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f9e3da7e72199adc414f24e73d3985f288cce5edbc5c370e29af583afdd78c2c260405160405180910390a38060085f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600c60019054906101000a900460ff1681565b611c7e6123cc565b73ffffffffffffffffffffffffffffffffffffffff16611c9c6116a1565b73ffffffffffffffffffffffffffffffffffffffff1614611cf2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ce990613fab565b60405180910390fd5b8060185f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df782604051611d8c9190613c75565b60405180910390a25050565b611da06123cc565b73ffffffffffffffffffffffffffffffffffffffff16611dbe6116a1565b73ffffffffffffffffffffffffffffffffffffffff1614611e14576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e0b90613fab565b60405180910390fd5b8360108190555082601181905550601154601054611e329190613ff6565b600f819055508160138190555080601481905550601454601354611e569190613ff6565b601281905550604b600f541115611ea2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e9990614073565b60405180910390fd5b604b6012541115611ee8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611edf90614073565b60405180910390fd5b50505050565b600e5f9054906101000a900460ff1681565b5f611f096123cc565b73ffffffffffffffffffffffffffffffffffffffff16611f276116a1565b73ffffffffffffffffffffffffffffffffffffffff1614611f7d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f7490613fab565b60405180910390fd5b620186a06001611f8b610e19565b611f9591906140ee565b611f9f919061415c565b821015611fe1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fd890614504565b60405180910390fd5b6103e86005611fee610e19565b611ff891906140ee565b612002919061415c565b821115612044576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161203b90614592565b60405180910390fd5b81600a8190555060019050919050565b600f5481565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b600a5481565b6019602052805f5260405f205f915054906101000a900460ff1681565b5f6121086123cc565b73ffffffffffffffffffffffffffffffffffffffff166121266116a1565b73ffffffffffffffffffffffffffffffffffffffff161461217c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161217390613fab565b60405180910390fd5b5f600e5f6101000a81548160ff0219169083151502179055506001905090565b6121a46123cc565b73ffffffffffffffffffffffffffffffffffffffff166121c26116a1565b73ffffffffffffffffffffffffffffffffffffffff1614612218576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161220f90613fab565b60405180910390fd5b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f455cf943964d06e77e44126ecca5a66b2c9721f4576a31f8693127282c55700f60405160405180910390a38060075f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6122de6123cc565b73ffffffffffffffffffffffffffffffffffffffff166122fc6116a1565b73ffffffffffffffffffffffffffffffffffffffff1614612352576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161234990613fab565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036123c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123b790614620565b60405180910390fd5b6123c98161329d565b50565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612441576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612438906146ae565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036124af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124a69061473c565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516125899190613d11565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612604576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125fb906147ca565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612672576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161266990614858565b60405180910390fd5b60175f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16156126fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126f3906148c0565b60405180910390fd5b60175f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615612786576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161277d90614928565b60405180910390fd5b5f810361279d5761279883835f613631565b613298565b600c5f9054906101000a900460ff1615612e45576127b96116a1565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561282757506127f76116a1565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561285f57505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015612899575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156128b25750600660149054906101000a900460ff16155b15612e4457600c60019054906101000a900460ff166129a65760185f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680612966575060185f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b6129a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161299c90614990565b60405180910390fd5b5b600e5f9054906101000a900460ff1615612b6a576129c26116a1565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614158015612a4957507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015612aa2575060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15612b695743600d5f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205410612b26576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b1d90614a44565b60405180910390fd5b43600d5f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b5b601a5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015612c07575060195f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15612cae57600954811115612c51576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c4890614ad2565b60405180910390fd5b600b54612c5d83611478565b82612c689190613ff6565b1115612ca9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ca090614b3a565b60405180910390fd5b612e43565b601a5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015612d4b575060195f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15612d9a57600954811115612d95576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d8c90614bc8565b60405180910390fd5b612e42565b60195f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16612e4157600b54612df483611478565b82612dff9190613ff6565b1115612e40576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e3790614b3a565b60405180910390fd5b5b5b5b5b5b5f612e4f30611478565b90505f600a548210159050808015612e735750600c60029054906101000a900460ff165b8015612e8c5750600660149054906101000a900460ff16155b8015612edf5750601a5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015612f32575060185f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015612f85575060185f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15612fc8576001600660146101000a81548160ff021916908315150217905550612fad6138a6565b5f600660146101000a81548160ff0219169083151502179055505b5f600660149054906101000a900460ff1615905060185f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680613077575060185f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b15613080575f90505b5f5f9050811561328857601a5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680156130e157505f601254115b156131795761310e606461310060125488613a7590919063ffffffff16565b613a8a90919063ffffffff16565b90506012546014548261312191906140ee565b61312b919061415c565b60165f82825461313b9190613ff6565b925050819055506012546013548261315391906140ee565b61315d919061415c565b60155f82825461316d9190613ff6565b92505081905550613265565b601a5f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680156131d057505f600f54115b15613264576131fd60646131ef600f5488613a7590919063ffffffff16565b613a8a90919063ffffffff16565b9050600f546011548261321091906140ee565b61321a919061415c565b60165f82825461322a9190613ff6565b92505081905550600f546010548261324291906140ee565b61324c919061415c565b60155f82825461325c9190613ff6565b925050819055505b5b5f81111561327957613278873083613631565b5b80856132859190614be6565b94505b613293878787613631565b505050505b505050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b80601a5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b5f600267ffffffffffffffff81111561341a57613419614c19565b5b6040519080825280602002602001820160405280156134485781602001602082028036833780820191505090505b50905030815f8151811061345f5761345e614c46565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015613502573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906135269190614c87565b8160018151811061353a57613539614c46565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061359f307f0000000000000000000000000000000000000000000000000000000000000000846123d3565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401613600959493929190614da2565b5f604051808303815f87803b158015613617575f5ffd5b505af1158015613629573d5f5f3e3d5ffd5b505050505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361369f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613696906147ca565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361370d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161370490614858565b60405180910390fd5b613718838383613a9f565b5f5f5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490508181101561379b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161379290614e6a565b60405180910390fd5b8181035f5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550815f5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546138299190613ff6565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161388d9190613d11565b60405180910390a36138a0848484613aa4565b50505050565b5f6138b030611478565b90505f6016546015546138c39190613ff6565b90505f5f83036138d557505050613a73565b6014600a546138e491906140ee565b8311156138fd576014600a546138fa91906140ee565b92505b5f47905061390a846133fe565b5f61391e8247613aa990919063ffffffff16565b90505f6139488561393a60165485613a7590919063ffffffff16565b613a8a90919063ffffffff16565b90505f6015819055505f60168190555060085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168160405161399d90614eb5565b5f6040518083038185875af1925050503d805f81146139d7576040519150601f19603f3d011682016040523d82523d5f602084013e6139dc565b606091505b50508094505060075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1647604051613a2790614eb5565b5f6040518083038185875af1925050503d805f8114613a61576040519150601f19603f3d011682016040523d82523d5f602084013e613a66565b606091505b5050809450505050505050505b565b5f8183613a8291906140ee565b905092915050565b5f8183613a97919061415c565b905092915050565b505050565b505050565b5f8183613ab69190614be6565b905092915050565b5f5ffd5b5f819050919050565b613ad481613ac2565b8114613ade575f5ffd5b50565b5f81359050613aef81613acb565b92915050565b5f5f60408385031215613b0b57613b0a613abe565b5b5f613b1885828601613ae1565b9250506020613b2985828601613ae1565b9150509250929050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f613b7582613b33565b613b7f8185613b3d565b9350613b8f818560208601613b4d565b613b9881613b5b565b840191505092915050565b5f6020820190508181035f830152613bbb8184613b6b565b905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f613bec82613bc3565b9050919050565b613bfc81613be2565b8114613c06575f5ffd5b50565b5f81359050613c1781613bf3565b92915050565b5f5f60408385031215613c3357613c32613abe565b5b5f613c4085828601613c09565b9250506020613c5185828601613ae1565b9150509250929050565b5f8115159050919050565b613c6f81613c5b565b82525050565b5f602082019050613c885f830184613c66565b92915050565b5f819050919050565b5f613cb1613cac613ca784613bc3565b613c8e565b613bc3565b9050919050565b5f613cc282613c97565b9050919050565b5f613cd382613cb8565b9050919050565b613ce381613cc9565b82525050565b5f602082019050613cfc5f830184613cda565b92915050565b613d0b81613ac2565b82525050565b5f602082019050613d245f830184613d02565b92915050565b5f60208284031215613d3f57613d3e613abe565b5b5f613d4c84828501613ae1565b91505092915050565b5f5f5f60608486031215613d6c57613d6b613abe565b5b5f613d7986828701613c09565b9350506020613d8a86828701613c09565b9250506040613d9b86828701613ae1565b9150509250925092565b613dae81613be2565b82525050565b5f602082019050613dc75f830184613da5565b92915050565b5f60ff82169050919050565b613de281613dcd565b82525050565b5f602082019050613dfb5f830184613dd9565b92915050565b5f60208284031215613e1657613e15613abe565b5b5f613e2384828501613c09565b91505092915050565b613e3581613c5b565b8114613e3f575f5ffd5b50565b5f81359050613e5081613e2c565b92915050565b5f5f60408385031215613e6c57613e6b613abe565b5b5f613e7985828601613c09565b9250506020613e8a85828601613e42565b9150509250929050565b5f60208284031215613ea957613ea8613abe565b5b5f613eb684828501613e42565b91505092915050565b5f5f5f5f60808587031215613ed757613ed6613abe565b5b5f613ee487828801613ae1565b9450506020613ef587828801613ae1565b9350506040613f0687828801613ae1565b9250506060613f1787828801613ae1565b91505092959194509250565b5f5f60408385031215613f3957613f38613abe565b5b5f613f4685828601613c09565b9250506020613f5785828601613c09565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f613f95602083613b3d565b9150613fa082613f61565b602082019050919050565b5f6020820190508181035f830152613fc281613f89565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61400082613ac2565b915061400b83613ac2565b925082820190508082111561402357614022613fc9565b5b92915050565b7f4d757374206b656570206665657320617420373525206f72206c6573730000005f82015250565b5f61405d601d83613b3d565b915061406882614029565b602082019050919050565b5f6020820190508181035f83015261408a81614051565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806140d557607f821691505b6020821081036140e8576140e7614091565b5b50919050565b5f6140f882613ac2565b915061410383613ac2565b925082820261411181613ac2565b9150828204841483151761412857614127613fc9565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61416682613ac2565b915061417183613ac2565b9250826141815761418061412f565b5b828204905092915050565b7f43616e6e6f7420736574206d61785478206c6f776572207468616e20302e31255f82015250565b5f6141c0602083613b3d565b91506141cb8261418c565b602082019050919050565b5f6020820190508181035f8301526141ed816141b4565b9050919050565b7f43616e6e6f7420736574206d617857616c6c657473206c6f776572207468616e5f8201527f20302e3525000000000000000000000000000000000000000000000000000000602082015250565b5f61424e602583613b3d565b9150614259826141f4565b604082019050919050565b5f6020820190508181035f83015261427b81614242565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320615f8201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b5f6142dc602883613b3d565b91506142e782614282565b604082019050919050565b5f6020820190508181035f830152614309816142d0565b9050919050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d205f8201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b5f61436a603983613b3d565b915061437582614310565b604082019050919050565b5f6020820190508181035f8301526143978161435e565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f6143f8602583613b3d565b91506144038261439e565b604082019050919050565b5f6020820190508181035f830152614425816143ec565b9050919050565b7f57726f6e6720616d6f756e7400000000000000000000000000000000000000005f82015250565b5f614460600c83613b3d565b915061446b8261442c565b602082019050919050565b5f6020820190508181035f83015261448d81614454565b9050919050565b7f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e5f8201527f20302e3030312520746f74616c20737570706c792e0000000000000000000000602082015250565b5f6144ee603583613b3d565b91506144f982614494565b604082019050919050565b5f6020820190508181035f83015261451b816144e2565b9050919050565b7f5377617020616d6f756e742063616e6e6f7420626520686967686572207468615f8201527f6e20302e352520746f74616c20737570706c792e000000000000000000000000602082015250565b5f61457c603483613b3d565b915061458782614522565b604082019050919050565b5f6020820190508181035f8301526145a981614570565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f61460a602683613b3d565b9150614615826145b0565b604082019050919050565b5f6020820190508181035f830152614637816145fe565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f614698602483613b3d565b91506146a38261463e565b604082019050919050565b5f6020820190508181035f8301526146c58161468c565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f614726602283613b3d565b9150614731826146cc565b604082019050919050565b5f6020820190508181035f8301526147538161471a565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f6147b4602583613b3d565b91506147bf8261475a565b604082019050919050565b5f6020820190508181035f8301526147e1816147a8565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f614842602383613b3d565b915061484d826147e8565b604082019050919050565b5f6020820190508181035f83015261486f81614836565b9050919050565b7f5b66726f6d5d20626c61636b206c6973740000000000000000000000000000005f82015250565b5f6148aa601183613b3d565b91506148b582614876565b602082019050919050565b5f6020820190508181035f8301526148d78161489e565b9050919050565b7f5b746f5d20626c61636b206c69737400000000000000000000000000000000005f82015250565b5f614912600f83613b3d565b915061491d826148de565b602082019050919050565b5f6020820190508181035f83015261493f81614906565b9050919050565b7f54726164696e67206973206e6f74206163746976652e000000000000000000005f82015250565b5f61497a601683613b3d565b915061498582614946565b602082019050919050565b5f6020820190508181035f8301526149a78161496e565b9050919050565b7f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c5f8201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b60208201527f20616c6c6f7765642e0000000000000000000000000000000000000000000000604082015250565b5f614a2e604983613b3d565b9150614a39826149ae565b606082019050919050565b5f6020820190508181035f830152614a5b81614a22565b9050919050565b7f427579207472616e7366657220616d6f756e74206578636565647320746865205f8201527f6d617854782e0000000000000000000000000000000000000000000000000000602082015250565b5f614abc602683613b3d565b9150614ac782614a62565b604082019050919050565b5f6020820190508181035f830152614ae981614ab0565b9050919050565b7f4d61782077616c6c6574206578636565646564000000000000000000000000005f82015250565b5f614b24601383613b3d565b9150614b2f82614af0565b602082019050919050565b5f6020820190508181035f830152614b5181614b18565b9050919050565b7f53656c6c207472616e7366657220616d6f756e742065786365656473207468655f8201527f206d617854782e00000000000000000000000000000000000000000000000000602082015250565b5f614bb2602783613b3d565b9150614bbd82614b58565b604082019050919050565b5f6020820190508181035f830152614bdf81614ba6565b9050919050565b5f614bf082613ac2565b9150614bfb83613ac2565b9250828203905081811115614c1357614c12613fc9565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050614c8181613bf3565b92915050565b5f60208284031215614c9c57614c9b613abe565b5b5f614ca984828501614c73565b91505092915050565b5f819050919050565b5f614cd5614cd0614ccb84614cb2565b613c8e565b613ac2565b9050919050565b614ce581614cbb565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b614d1d81613be2565b82525050565b5f614d2e8383614d14565b60208301905092915050565b5f602082019050919050565b5f614d5082614ceb565b614d5a8185614cf5565b9350614d6583614d05565b805f5b83811015614d95578151614d7c8882614d23565b9750614d8783614d3a565b925050600181019050614d68565b5085935050505092915050565b5f60a082019050614db55f830188613d02565b614dc26020830187614cdc565b8181036040830152614dd48186614d46565b9050614de36060830185613da5565b614df06080830184613d02565b9695505050505050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f614e54602683613b3d565b9150614e5f82614dfa565b604082019050919050565b5f6020820190508181035f830152614e8181614e48565b9050919050565b5f81905092915050565b50565b5f614ea05f83614e88565b9150614eab82614e92565b5f82019050919050565b5f614ebf82614e95565b915081905091905056fea264697066735822122044fe2455d56e1bc04c3367c90a297142e6fa4bb36e86d9efff850a8a0171dd6964736f6c634300081b0033