[ { "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" } ]
60a06040526001600c5f6101000a81548160ff0219169083151502179055505f600c60016101000a81548160ff0219169083151502179055505f600c60026101000a81548160ff0219169083151502179055505f600e5f6101000a81548160ff02191690831515021790555034801562000077575f80fd5b506040518060400160405280600881526020017f4f70656e4d696e640000000000000000000000000000000000000000000000008152506040518060400160405280600481526020017f4f4d4e44000000000000000000000000000000000000000000000000000000008152508160039081620000f5919062000d20565b50806004908162000107919062000d20565b5050506200012a6200011e6200059460201b60201c565b6200059b60201b60201c565b5f737a250d5630b4cf539739df2c5dacb4c659f2488d9050620001558160016200065e60201b60201c565b8073ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001d3573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001f9919062000e69565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200025f573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000285919062000e69565b6040518363ffffffff1660e01b8152600401620002a492919062000eaa565b6020604051808303815f875af1158015620002c1573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620002e7919062000e69565b60065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506200035a60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660016200065e60201b60201c565b6200038e60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660016200074560201b60201c565b5f600590505f80600590505f8069d3c21bcecceda1000000905069021e19e0c9bab240000060098190555069021e19e0c9bab2400000600b81905550612710600182620003dc919062000f02565b620003e8919062000f79565b600a8190555084601081905550836011819055506011546010546200040e919062000fb0565b600f81905550826013819055508160148190555060145460135462000434919062000fb0565b60128190555073c17e92f038d077a48ad6f3e2bbf438e9231a7dde60075f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073c17e92f038d077a48ad6f3e2bbf438e9231a7dde60085f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555062000504620004f6620007e360201b60201c565b60016200080b60201b60201c565b620005173060016200080b60201b60201c565b6200052c61dead60016200080b60201b60201c565b6200054e62000540620007e360201b60201c565b60016200065e60201b60201c565b620005613060016200065e60201b60201c565b6200057661dead60016200065e60201b60201c565b6200058833826200094260201b60201c565b50505050505062001139565b5f33905090565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6200066e6200059460201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1662000694620007e360201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1614620006ed576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620006e49062001048565b60405180910390fd5b8060195f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b80601a5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6200081b6200059460201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1662000841620007e360201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16146200089a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620008919062001048565b60405180910390fd5b8060185f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df78260405162000936919062001084565b60405180910390a25050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603620009b3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620009aa90620010ed565b60405180910390fd5b620009c65f838362000ab260201b60201c565b8060025f828254620009d9919062000fb0565b92505081905550805f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825462000a2d919062000fb0565b925050819055508173ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405162000a9391906200111e565b60405180910390a362000aae5f838362000ab760201b60201c565b5050565b505050565b505050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168062000b3857607f821691505b60208210810362000b4e5762000b4d62000af3565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f6008830262000bb27fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000b75565b62000bbe868362000b75565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f62000c0862000c0262000bfc8462000bd6565b62000bdf565b62000bd6565b9050919050565b5f819050919050565b62000c238362000be8565b62000c3b62000c328262000c0f565b84845462000b81565b825550505050565b5f90565b62000c5162000c43565b62000c5e81848462000c18565b505050565b5b8181101562000c855762000c795f8262000c47565b60018101905062000c64565b5050565b601f82111562000cd45762000c9e8162000b54565b62000ca98462000b66565b8101602085101562000cb9578190505b62000cd162000cc88562000b66565b83018262000c63565b50505b505050565b5f82821c905092915050565b5f62000cf65f198460080262000cd9565b1980831691505092915050565b5f62000d10838362000ce5565b9150826002028217905092915050565b62000d2b8262000abc565b67ffffffffffffffff81111562000d475762000d4662000ac6565b5b62000d53825462000b20565b62000d6082828562000c89565b5f60209050601f83116001811462000d96575f841562000d81578287015190505b62000d8d858262000d03565b86555062000dfc565b601f19841662000da68662000b54565b5f5b8281101562000dcf5784890151825560018201915060208501945060208101905062000da8565b8683101562000def578489015162000deb601f89168262000ce5565b8355505b6001600288020188555050505b505050505050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f62000e338262000e08565b9050919050565b62000e458162000e27565b811462000e50575f80fd5b50565b5f8151905062000e638162000e3a565b92915050565b5f6020828403121562000e815762000e8062000e04565b5b5f62000e908482850162000e53565b91505092915050565b62000ea48162000e27565b82525050565b5f60408201905062000ebf5f83018562000e99565b62000ece602083018462000e99565b9392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f62000f0e8262000bd6565b915062000f1b8362000bd6565b925082820262000f2b8162000bd6565b9150828204841483151762000f455762000f4462000ed5565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f62000f858262000bd6565b915062000f928362000bd6565b92508262000fa55762000fa462000f4c565b5b828204905092915050565b5f62000fbc8262000bd6565b915062000fc98362000bd6565b925082820190508082111562000fe45762000fe362000ed5565b5b92915050565b5f82825260208201905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6200103060208362000fea565b91506200103d8262000ffa565b602082019050919050565b5f6020820190508181035f830152620010618162001022565b9050919050565b5f8115159050919050565b6200107e8162001068565b82525050565b5f602082019050620010995f83018462001073565b92915050565b7f45524332303a206d696e7420746f20746865207a65726f2061646472657373005f82015250565b5f620010d5601f8362000fea565b9150620010e2826200109f565b602082019050919050565b5f6020820190508181035f8301526200110681620010c7565b9050919050565b620011188162000bd6565b82525050565b5f602082019050620011335f8301846200110d565b92915050565b608051614f166200116e5f395f8181610df7015281816129fa0152818161349801528181613577015261359e0152614f165ff3fe60806040526004361061031d575f3560e01c80638a8c523c116101aa578063b70143c9116100f6578063d85ba06311610094578063e6819ba71161006e578063e6819ba714610ba8578063e884f26014610be4578063f1b9ad6b14610c0e578063f2fde38b14610c3657610324565b8063d85ba06314610b18578063dd62ed3e14610b42578063e2f4560514610b7e57610324565b8063c0246668116100d0578063c024666814610a62578063c6616ba114610a8a578063c876d0b914610ab2578063d257b34f14610adc57610324565b8063b70143c9146109e8578063b819a1a914610a10578063bbc0c74214610a3857610324565b80639c3b4fdc11610163578063a457c2d71161013d578063a457c2d71461090a578063a72f458614610946578063a9059cbb14610970578063b62496f5146109ac57610324565b80639c3b4fdc1461088c5780639fccce32146108b6578063a0d82dc5146108e057610324565b80638a8c523c146107a85780638da5cb5b146107be57806392136913146107e8578063924de9b71461081257806395d89b411461083a5780639a7a23d61461086457610324565b806349bd5a5e116102695780636a486a8e11610222578063715018a6116101fc578063715018a6146107145780637437681e1461072a578063751039fc146107545780637bce5a041461077e57610324565b80636a486a8e146106845780636ddd1713146106ae57806370a08231146106d857610324565b806349bd5a5e1461057a5780634a62bb65146105a45780634fbee193146105ce57806361528e271461060a578063644130d81461063457806366ca9b831461065c57610324565b8063217580a2116102d657806330a136ad116102b057806330a136ad146104c05780633103b39e146104ea578063313ce56714610514578063395093511461053e57610324565b8063217580a21461043257806323b872dd1461045a57806327c8f8351461049657610324565b806302dbd8f81461032857806306fdde0314610350578063095ea7b31461037a5780631694505e146103b657806318160ddd146103e0578063203e727e1461040a57610324565b3661032457005b5f80fd5b348015610333575f80fd5b5061034e60048036038101906103499190613af2565b610c5e565b005b34801561035b575f80fd5b50610364610d48565b6040516103719190613bba565b60405180910390f35b348015610385575f80fd5b506103a0600480360381019061039b9190613c34565b610dd8565b6040516103ad9190613c8c565b60405180910390f35b3480156103c1575f80fd5b506103ca610df5565b6040516103d79190613d00565b60405180910390f35b3480156103eb575f80fd5b506103f4610e19565b6040516104019190613d28565b60405180910390f35b348015610415575f80fd5b50610430600480360381019061042b9190613d41565b610e22565b005b34801561043d575f80fd5b5061045860048036038101906104539190613d41565b610f31565b005b348015610465575f80fd5b50610480600480360381019061047b9190613d6c565b611040565b60405161048d9190613c8c565b60405180910390f35b3480156104a1575f80fd5b506104aa611132565b6040516104b79190613dcb565b60405180910390f35b3480156104cb575f80fd5b506104d4611138565b6040516104e19190613d28565b60405180910390f35b3480156104f5575f80fd5b506104fe61113e565b60405161050b9190613dcb565b60405180910390f35b34801561051f575f80fd5b50610528611163565b6040516105359190613dff565b60405180910390f35b348015610549575f80fd5b50610564600480360381019061055f9190613c34565b61116b565b6040516105719190613c8c565b60405180910390f35b348015610585575f80fd5b5061058e611212565b60405161059b9190613dcb565b60405180910390f35b3480156105af575f80fd5b506105b8611237565b6040516105c59190613c8c565b60405180910390f35b3480156105d9575f80fd5b506105f460048036038101906105ef9190613e18565b611249565b6040516106019190613c8c565b60405180910390f35b348015610615575f80fd5b5061061e61129b565b60405161062b9190613d28565b60405180910390f35b34801561063f575f80fd5b5061065a60048036038101906106559190613e6d565b6112a1565b005b348015610667575f80fd5b50610682600480360381019061067d9190613af2565b611375565b005b34801561068f575f80fd5b5061069861145f565b6040516106a59190613d28565b60405180910390f35b3480156106b9575f80fd5b506106c2611465565b6040516106cf9190613c8c565b60405180910390f35b3480156106e3575f80fd5b506106fe60048036038101906106f99190613e18565b611478565b60405161070b9190613d28565b60405180910390f35b34801561071f575f80fd5b506107286114bd565b005b348015610735575f80fd5b5061073e611544565b60405161074b9190613d28565b60405180910390f35b34801561075f575f80fd5b5061076861154a565b6040516107759190613c8c565b60405180910390f35b348015610789575f80fd5b506107926115e7565b60405161079f9190613d28565b60405180910390f35b3480156107b3575f80fd5b506107bc6115ed565b005b3480156107c9575f80fd5b506107d26116a1565b6040516107df9190613dcb565b60405180910390f35b3480156107f3575f80fd5b506107fc6116c9565b6040516108099190613d28565b60405180910390f35b34801561081d575f80fd5b5061083860048036038101906108339190613eab565b6116cf565b005b348015610845575f80fd5b5061084e611768565b60405161085b9190613bba565b60405180910390f35b34801561086f575f80fd5b5061088a60048036038101906108859190613e6d565b6117f8565b005b348015610897575f80fd5b506108a0611911565b6040516108ad9190613d28565b60405180910390f35b3480156108c1575f80fd5b506108ca611917565b6040516108d79190613d28565b60405180910390f35b3480156108eb575f80fd5b506108f461191d565b6040516109019190613d28565b60405180910390f35b348015610915575f80fd5b50610930600480360381019061092b9190613c34565b611923565b60405161093d9190613c8c565b60405180910390f35b348015610951575f80fd5b5061095a611a09565b6040516109679190613dcb565b60405180910390f35b34801561097b575f80fd5b5061099660048036038101906109919190613c34565b611a2e565b6040516109a39190613c8c565b60405180910390f35b3480156109b7575f80fd5b506109d260048036038101906109cd9190613e18565b611a4b565b6040516109df9190613c8c565b60405180910390f35b3480156109f3575f80fd5b50610a0e6004803603810190610a099190613d41565b611a68565b005b348015610a1b575f80fd5b50610a366004803603810190610a319190613e18565b611b29565b005b348015610a43575f80fd5b50610a4c611c63565b604051610a599190613c8c565b60405180910390f35b348015610a6d575f80fd5b50610a886004803603810190610a839190613e6d565b611c76565b005b348015610a95575f80fd5b50610ab06004803603810190610aab9190613ed6565b611d98565b005b348015610abd575f80fd5b50610ac6611eee565b604051610ad39190613c8c565b60405180910390f35b348015610ae7575f80fd5b50610b026004803603810190610afd9190613d41565b611f00565b604051610b0f9190613c8c565b60405180910390f35b348015610b23575f80fd5b50610b2c612054565b604051610b399190613d28565b60405180910390f35b348015610b4d575f80fd5b50610b686004803603810190610b639190613f3a565b61205a565b604051610b759190613d28565b60405180910390f35b348015610b89575f80fd5b50610b926120dc565b604051610b9f9190613d28565b60405180910390f35b348015610bb3575f80fd5b50610bce6004803603810190610bc99190613e18565b6120e2565b604051610bdb9190613c8c565b60405180910390f35b348015610bef575f80fd5b50610bf86120ff565b604051610c059190613c8c565b60405180910390f35b348015610c19575f80fd5b50610c346004803603810190610c2f9190613e18565b61219c565b005b348015610c41575f80fd5b50610c5c6004803603810190610c579190613e18565b6122d6565b005b610c666123cc565b73ffffffffffffffffffffffffffffffffffffffff16610c846116a1565b73ffffffffffffffffffffffffffffffffffffffff1614610cda576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cd190613fc2565b60405180910390fd5b8160138190555080601481905550601454601354610cf8919061400d565b601281905550604b6012541115610d44576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d3b9061408a565b60405180910390fd5b5050565b606060038054610d57906140d5565b80601f0160208091040260200160405190810160405280929190818152602001828054610d83906140d5565b8015610dce5780601f10610da557610100808354040283529160200191610dce565b820191905f5260205f20905b815481529060010190602001808311610db157829003601f168201915b5050505050905090565b5f610deb610de46123cc565b84846123d3565b6001905092915050565b7f000000000000000000000000000000000000000000000000000000000000000081565b5f600254905090565b610e2a6123cc565b73ffffffffffffffffffffffffffffffffffffffff16610e486116a1565b73ffffffffffffffffffffffffffffffffffffffff1614610e9e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e9590613fc2565b60405180910390fd5b670de0b6b3a76400006103e86001610eb4610e19565b610ebe9190614105565b610ec89190614173565b610ed29190614173565b811015610f14576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f0b906141ed565b60405180910390fd5b670de0b6b3a764000081610f289190614105565b60098190555050565b610f396123cc565b73ffffffffffffffffffffffffffffffffffffffff16610f576116a1565b73ffffffffffffffffffffffffffffffffffffffff1614610fad576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fa490613fc2565b60405180910390fd5b670de0b6b3a76400006103e86005610fc3610e19565b610fcd9190614105565b610fd79190614173565b610fe19190614173565b811015611023576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161101a9061427b565b60405180910390fd5b670de0b6b3a7640000816110379190614105565b600b8190555050565b5f61104c848484612596565b5f60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6110936123cc565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905082811015611112576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161110990614309565b60405180910390fd5b6111268561111e6123cc565b8584036123d3565b60019150509392505050565b61dead81565b600b5481565b60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f6012905090565b5f6112086111776123cc565b848460015f6111846123cc565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611203919061400d565b6123d3565b6001905092915050565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600c5f9054906101000a900460ff1681565b5f60185f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b60155481565b6112a96123cc565b73ffffffffffffffffffffffffffffffffffffffff166112c76116a1565b73ffffffffffffffffffffffffffffffffffffffff161461131d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161131490613fc2565b60405180910390fd5b8060195f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b61137d6123cc565b73ffffffffffffffffffffffffffffffffffffffff1661139b6116a1565b73ffffffffffffffffffffffffffffffffffffffff16146113f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113e890613fc2565b60405180910390fd5b816010819055508060118190555060115460105461140f919061400d565b600f81905550604b600f54111561145b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114529061408a565b60405180910390fd5b5050565b60125481565b600c60029054906101000a900460ff1681565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6114c56123cc565b73ffffffffffffffffffffffffffffffffffffffff166114e36116a1565b73ffffffffffffffffffffffffffffffffffffffff1614611539576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161153090613fc2565b60405180910390fd5b6115425f61329a565b565b60095481565b5f6115536123cc565b73ffffffffffffffffffffffffffffffffffffffff166115716116a1565b73ffffffffffffffffffffffffffffffffffffffff16146115c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115be90613fc2565b60405180910390fd5b5f600c5f6101000a81548160ff0219169083151502179055506001905090565b60105481565b6115f56123cc565b73ffffffffffffffffffffffffffffffffffffffff166116136116a1565b73ffffffffffffffffffffffffffffffffffffffff1614611669576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161166090613fc2565b60405180910390fd5b6001600c60016101000a81548160ff0219169083151502179055506001600c60026101000a81548160ff021916908315150217905550565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60135481565b6116d76123cc565b73ffffffffffffffffffffffffffffffffffffffff166116f56116a1565b73ffffffffffffffffffffffffffffffffffffffff161461174b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161174290613fc2565b60405180910390fd5b80600c60026101000a81548160ff02191690831515021790555050565b606060048054611777906140d5565b80601f01602080910402602001604051908101604052809291908181526020018280546117a3906140d5565b80156117ee5780601f106117c5576101008083540402835291602001916117ee565b820191905f5260205f20905b8154815290600101906020018083116117d157829003601f168201915b5050505050905090565b6118006123cc565b73ffffffffffffffffffffffffffffffffffffffff1661181e6116a1565b73ffffffffffffffffffffffffffffffffffffffff1614611874576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161186b90613fc2565b60405180910390fd5b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611903576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118fa90614397565b60405180910390fd5b61190d828261335d565b5050565b60115481565b60165481565b60145481565b5f8060015f6119306123cc565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050828110156119ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119e190614425565b60405180910390fd5b6119fe6119f56123cc565b858584036123d3565b600191505092915050565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f611a41611a3a6123cc565b8484612596565b6001905092915050565b601a602052805f5260405f205f915054906101000a900460ff1681565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611aa86123cc565b73ffffffffffffffffffffffffffffffffffffffff1614611ac7575f80fd5b611ad030611478565b8111158015611ade57505f81115b611b1d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b149061448d565b60405180910390fd5b611b26816133fb565b50565b611b316123cc565b73ffffffffffffffffffffffffffffffffffffffff16611b4f6116a1565b73ffffffffffffffffffffffffffffffffffffffff1614611ba5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b9c90613fc2565b60405180910390fd5b60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f9e3da7e72199adc414f24e73d3985f288cce5edbc5c370e29af583afdd78c2c260405160405180910390a38060085f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600c60019054906101000a900460ff1681565b611c7e6123cc565b73ffffffffffffffffffffffffffffffffffffffff16611c9c6116a1565b73ffffffffffffffffffffffffffffffffffffffff1614611cf2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ce990613fc2565b60405180910390fd5b8060185f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df782604051611d8c9190613c8c565b60405180910390a25050565b611da06123cc565b73ffffffffffffffffffffffffffffffffffffffff16611dbe6116a1565b73ffffffffffffffffffffffffffffffffffffffff1614611e14576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e0b90613fc2565b60405180910390fd5b8360108190555082601181905550601154601054611e32919061400d565b600f819055508160138190555080601481905550601454601354611e56919061400d565b601281905550604b600f541115611ea2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e999061408a565b60405180910390fd5b604b6012541115611ee8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611edf9061408a565b60405180910390fd5b50505050565b600e5f9054906101000a900460ff1681565b5f611f096123cc565b73ffffffffffffffffffffffffffffffffffffffff16611f276116a1565b73ffffffffffffffffffffffffffffffffffffffff1614611f7d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f7490613fc2565b60405180910390fd5b620186a06001611f8b610e19565b611f959190614105565b611f9f9190614173565b821015611fe1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fd89061451b565b60405180910390fd5b6103e86005611fee610e19565b611ff89190614105565b6120029190614173565b821115612044576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161203b906145a9565b60405180910390fd5b81600a8190555060019050919050565b600f5481565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b600a5481565b6019602052805f5260405f205f915054906101000a900460ff1681565b5f6121086123cc565b73ffffffffffffffffffffffffffffffffffffffff166121266116a1565b73ffffffffffffffffffffffffffffffffffffffff161461217c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161217390613fc2565b60405180910390fd5b5f600e5f6101000a81548160ff0219169083151502179055506001905090565b6121a46123cc565b73ffffffffffffffffffffffffffffffffffffffff166121c26116a1565b73ffffffffffffffffffffffffffffffffffffffff1614612218576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161220f90613fc2565b60405180910390fd5b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f455cf943964d06e77e44126ecca5a66b2c9721f4576a31f8693127282c55700f60405160405180910390a38060075f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6122de6123cc565b73ffffffffffffffffffffffffffffffffffffffff166122fc6116a1565b73ffffffffffffffffffffffffffffffffffffffff1614612352576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161234990613fc2565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036123c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123b790614637565b60405180910390fd5b6123c98161329a565b50565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612441576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612438906146c5565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036124af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124a690614753565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516125899190613d28565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612604576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125fb906147e1565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612672576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126699061486f565b60405180910390fd5b60175f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16156126fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126f3906148d7565b60405180910390fd5b60175f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615612786576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161277d9061493f565b60405180910390fd5b5f810361279d5761279883835f61362e565b613295565b600c5f9054906101000a900460ff1615612e45576127b96116a1565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561282757506127f76116a1565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561285f57505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015612899575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156128b25750600660149054906101000a900460ff16155b15612e4457600c60019054906101000a900460ff166129a65760185f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680612966575060185f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b6129a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161299c906149a7565b60405180910390fd5b5b600e5f9054906101000a900460ff1615612b6a576129c26116a1565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614158015612a4957507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015612aa2575060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15612b695743600d5f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205410612b26576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b1d90614a5b565b60405180910390fd5b43600d5f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b5b601a5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015612c07575060195f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15612cae57600954811115612c51576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c4890614ae9565b60405180910390fd5b600b54612c5d83611478565b82612c68919061400d565b1115612ca9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ca090614b51565b60405180910390fd5b612e43565b601a5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015612d4b575060195f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15612d9a57600954811115612d95576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d8c90614bdf565b60405180910390fd5b612e42565b60195f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16612e4157600b54612df483611478565b82612dff919061400d565b1115612e40576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e3790614b51565b60405180910390fd5b5b5b5b5b5b5f612e4f30611478565b90505f600a548210159050808015612e735750600c60029054906101000a900460ff165b8015612e8c5750600660149054906101000a900460ff16155b8015612edf5750601a5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015612f32575060185f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015612f85575060185f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15612fc8576001600660146101000a81548160ff021916908315150217905550612fad6138a3565b5f600660146101000a81548160ff0219169083151502179055505b5f600660149054906101000a900460ff1615905060185f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680613077575060185f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b15613080575f90505b5f811561328557601a5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680156130de57505f601254115b156131765761310b60646130fd60125488613a7290919063ffffffff16565b613a8790919063ffffffff16565b90506012546014548261311e9190614105565b6131289190614173565b60165f828254613138919061400d565b92505081905550601254601354826131509190614105565b61315a9190614173565b60155f82825461316a919061400d565b92505081905550613262565b601a5f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680156131cd57505f600f54115b15613261576131fa60646131ec600f5488613a7290919063ffffffff16565b613a8790919063ffffffff16565b9050600f546011548261320d9190614105565b6132179190614173565b60165f828254613227919061400d565b92505081905550600f546010548261323f9190614105565b6132499190614173565b60155f828254613259919061400d565b925050819055505b5b5f8111156132765761327587308361362e565b5b80856132829190614bfd565b94505b61329087878761362e565b505050505b505050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b80601a5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b5f600267ffffffffffffffff81111561341757613416614c30565b5b6040519080825280602002602001820160405280156134455781602001602082028036833780820191505090505b50905030815f8151811061345c5761345b614c5d565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156134ff573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906135239190614c9e565b8160018151811061353757613536614c5d565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061359c307f0000000000000000000000000000000000000000000000000000000000000000846123d3565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b81526004016135fd959493929190614db9565b5f604051808303815f87803b158015613614575f80fd5b505af1158015613626573d5f803e3d5ffd5b505050505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361369c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613693906147e1565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361370a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016137019061486f565b60405180910390fd5b613715838383613a9c565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015613798576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161378f90614e81565b60405180910390fd5b8181035f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550815f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254613826919061400d565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161388a9190613d28565b60405180910390a361389d848484613aa1565b50505050565b5f6138ad30611478565b90505f6016546015546138c0919061400d565b90505f8083036138d257505050613a70565b6014600a546138e19190614105565b8311156138fa576014600a546138f79190614105565b92505b5f479050613907846133fb565b5f61391b8247613aa690919063ffffffff16565b90505f6139458561393760165485613a7290919063ffffffff16565b613a8790919063ffffffff16565b90505f6015819055505f60168190555060085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168160405161399a90614ecc565b5f6040518083038185875af1925050503d805f81146139d4576040519150601f19603f3d011682016040523d82523d5f602084013e6139d9565b606091505b50508094505060075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1647604051613a2490614ecc565b5f6040518083038185875af1925050503d805f8114613a5e576040519150601f19603f3d011682016040523d82523d5f602084013e613a63565b606091505b5050809450505050505050505b565b5f8183613a7f9190614105565b905092915050565b5f8183613a949190614173565b905092915050565b505050565b505050565b5f8183613ab39190614bfd565b905092915050565b5f80fd5b5f819050919050565b613ad181613abf565b8114613adb575f80fd5b50565b5f81359050613aec81613ac8565b92915050565b5f8060408385031215613b0857613b07613abb565b5b5f613b1585828601613ade565b9250506020613b2685828601613ade565b9150509250929050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015613b67578082015181840152602081019050613b4c565b5f8484015250505050565b5f601f19601f8301169050919050565b5f613b8c82613b30565b613b968185613b3a565b9350613ba6818560208601613b4a565b613baf81613b72565b840191505092915050565b5f6020820190508181035f830152613bd28184613b82565b905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f613c0382613bda565b9050919050565b613c1381613bf9565b8114613c1d575f80fd5b50565b5f81359050613c2e81613c0a565b92915050565b5f8060408385031215613c4a57613c49613abb565b5b5f613c5785828601613c20565b9250506020613c6885828601613ade565b9150509250929050565b5f8115159050919050565b613c8681613c72565b82525050565b5f602082019050613c9f5f830184613c7d565b92915050565b5f819050919050565b5f613cc8613cc3613cbe84613bda565b613ca5565b613bda565b9050919050565b5f613cd982613cae565b9050919050565b5f613cea82613ccf565b9050919050565b613cfa81613ce0565b82525050565b5f602082019050613d135f830184613cf1565b92915050565b613d2281613abf565b82525050565b5f602082019050613d3b5f830184613d19565b92915050565b5f60208284031215613d5657613d55613abb565b5b5f613d6384828501613ade565b91505092915050565b5f805f60608486031215613d8357613d82613abb565b5b5f613d9086828701613c20565b9350506020613da186828701613c20565b9250506040613db286828701613ade565b9150509250925092565b613dc581613bf9565b82525050565b5f602082019050613dde5f830184613dbc565b92915050565b5f60ff82169050919050565b613df981613de4565b82525050565b5f602082019050613e125f830184613df0565b92915050565b5f60208284031215613e2d57613e2c613abb565b5b5f613e3a84828501613c20565b91505092915050565b613e4c81613c72565b8114613e56575f80fd5b50565b5f81359050613e6781613e43565b92915050565b5f8060408385031215613e8357613e82613abb565b5b5f613e9085828601613c20565b9250506020613ea185828601613e59565b9150509250929050565b5f60208284031215613ec057613ebf613abb565b5b5f613ecd84828501613e59565b91505092915050565b5f805f8060808587031215613eee57613eed613abb565b5b5f613efb87828801613ade565b9450506020613f0c87828801613ade565b9350506040613f1d87828801613ade565b9250506060613f2e87828801613ade565b91505092959194509250565b5f8060408385031215613f5057613f4f613abb565b5b5f613f5d85828601613c20565b9250506020613f6e85828601613c20565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f613fac602083613b3a565b9150613fb782613f78565b602082019050919050565b5f6020820190508181035f830152613fd981613fa0565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61401782613abf565b915061402283613abf565b925082820190508082111561403a57614039613fe0565b5b92915050565b7f4d757374206b656570206665657320617420373525206f72206c6573730000005f82015250565b5f614074601d83613b3a565b915061407f82614040565b602082019050919050565b5f6020820190508181035f8301526140a181614068565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806140ec57607f821691505b6020821081036140ff576140fe6140a8565b5b50919050565b5f61410f82613abf565b915061411a83613abf565b925082820261412881613abf565b9150828204841483151761413f5761413e613fe0565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61417d82613abf565b915061418883613abf565b92508261419857614197614146565b5b828204905092915050565b7f43616e6e6f7420736574206d61785478206c6f776572207468616e20302e31255f82015250565b5f6141d7602083613b3a565b91506141e2826141a3565b602082019050919050565b5f6020820190508181035f830152614204816141cb565b9050919050565b7f43616e6e6f7420736574206d617857616c6c657473206c6f776572207468616e5f8201527f20302e3525000000000000000000000000000000000000000000000000000000602082015250565b5f614265602583613b3a565b91506142708261420b565b604082019050919050565b5f6020820190508181035f83015261429281614259565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320615f8201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b5f6142f3602883613b3a565b91506142fe82614299565b604082019050919050565b5f6020820190508181035f830152614320816142e7565b9050919050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d205f8201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b5f614381603983613b3a565b915061438c82614327565b604082019050919050565b5f6020820190508181035f8301526143ae81614375565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f61440f602583613b3a565b915061441a826143b5565b604082019050919050565b5f6020820190508181035f83015261443c81614403565b9050919050565b7f57726f6e6720616d6f756e7400000000000000000000000000000000000000005f82015250565b5f614477600c83613b3a565b915061448282614443565b602082019050919050565b5f6020820190508181035f8301526144a48161446b565b9050919050565b7f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e5f8201527f20302e3030312520746f74616c20737570706c792e0000000000000000000000602082015250565b5f614505603583613b3a565b9150614510826144ab565b604082019050919050565b5f6020820190508181035f830152614532816144f9565b9050919050565b7f5377617020616d6f756e742063616e6e6f7420626520686967686572207468615f8201527f6e20302e352520746f74616c20737570706c792e000000000000000000000000602082015250565b5f614593603483613b3a565b915061459e82614539565b604082019050919050565b5f6020820190508181035f8301526145c081614587565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f614621602683613b3a565b915061462c826145c7565b604082019050919050565b5f6020820190508181035f83015261464e81614615565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6146af602483613b3a565b91506146ba82614655565b604082019050919050565b5f6020820190508181035f8301526146dc816146a3565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f61473d602283613b3a565b9150614748826146e3565b604082019050919050565b5f6020820190508181035f83015261476a81614731565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f6147cb602583613b3a565b91506147d682614771565b604082019050919050565b5f6020820190508181035f8301526147f8816147bf565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f614859602383613b3a565b9150614864826147ff565b604082019050919050565b5f6020820190508181035f8301526148868161484d565b9050919050565b7f5b66726f6d5d20626c61636b206c6973740000000000000000000000000000005f82015250565b5f6148c1601183613b3a565b91506148cc8261488d565b602082019050919050565b5f6020820190508181035f8301526148ee816148b5565b9050919050565b7f5b746f5d20626c61636b206c69737400000000000000000000000000000000005f82015250565b5f614929600f83613b3a565b9150614934826148f5565b602082019050919050565b5f6020820190508181035f8301526149568161491d565b9050919050565b7f54726164696e67206973206e6f74206163746976652e000000000000000000005f82015250565b5f614991601683613b3a565b915061499c8261495d565b602082019050919050565b5f6020820190508181035f8301526149be81614985565b9050919050565b7f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c5f8201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b60208201527f20616c6c6f7765642e0000000000000000000000000000000000000000000000604082015250565b5f614a45604983613b3a565b9150614a50826149c5565b606082019050919050565b5f6020820190508181035f830152614a7281614a39565b9050919050565b7f427579207472616e7366657220616d6f756e74206578636565647320746865205f8201527f6d617854782e0000000000000000000000000000000000000000000000000000602082015250565b5f614ad3602683613b3a565b9150614ade82614a79565b604082019050919050565b5f6020820190508181035f830152614b0081614ac7565b9050919050565b7f4d61782077616c6c6574206578636565646564000000000000000000000000005f82015250565b5f614b3b601383613b3a565b9150614b4682614b07565b602082019050919050565b5f6020820190508181035f830152614b6881614b2f565b9050919050565b7f53656c6c207472616e7366657220616d6f756e742065786365656473207468655f8201527f206d617854782e00000000000000000000000000000000000000000000000000602082015250565b5f614bc9602783613b3a565b9150614bd482614b6f565b604082019050919050565b5f6020820190508181035f830152614bf681614bbd565b9050919050565b5f614c0782613abf565b9150614c1283613abf565b9250828203905081811115614c2a57614c29613fe0565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050614c9881613c0a565b92915050565b5f60208284031215614cb357614cb2613abb565b5b5f614cc084828501614c8a565b91505092915050565b5f819050919050565b5f614cec614ce7614ce284614cc9565b613ca5565b613abf565b9050919050565b614cfc81614cd2565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b614d3481613bf9565b82525050565b5f614d458383614d2b565b60208301905092915050565b5f602082019050919050565b5f614d6782614d02565b614d718185614d0c565b9350614d7c83614d1c565b805f5b83811015614dac578151614d938882614d3a565b9750614d9e83614d51565b925050600181019050614d7f565b5085935050505092915050565b5f60a082019050614dcc5f830188613d19565b614dd96020830187614cf3565b8181036040830152614deb8186614d5d565b9050614dfa6060830185613dbc565b614e076080830184613d19565b9695505050505050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f614e6b602683613b3a565b9150614e7682614e11565b604082019050919050565b5f6020820190508181035f830152614e9881614e5f565b9050919050565b5f81905092915050565b50565b5f614eb75f83614e9f565b9150614ec282614ea9565b5f82019050919050565b5f614ed682614eac565b915081905091905056fea2646970667358221220e92f95da3f75a5ba6ce274e7019fe2f460e7cd70e9fa8a0b7f6f8f43b3227abe64736f6c63430008170033