[ { "inputs": [ { "internalType": "string", "name": "_name", "type": "string" }, { "internalType": "string", "name": "_symbol", "type": "string" }, { "internalType": "address", "name": "_marketingWallet", "type": "address" } ], "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": "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": false, "internalType": "uint256", "name": "tokensSwapped", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "ethReceived", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "tokensIntoLiquidity", "type": "uint256" } ], "name": "SwapAndLiquify", "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": "oldWallet", "type": "address" } ], "name": "marketingWalletUpdated", "type": "event" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "_isExcludedMaxTransactionAmount", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_blocks", "type": "uint256" } ], "name": "addLiquidityAndStartTrading", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "internalType": "address[]", "name": "addresses", "type": "address[]" }, { "internalType": "uint256[]", "name": "amounts", "type": "uint256[]" } ], "name": "airdrop", "outputs": [], "stateMutability": "nonpayable", "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": "blocks", "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": [ { "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": "excludeFromMaxTransaction", "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": [], "name": "limitsInEffect", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "manualsend", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "manualswap", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "maxSwapAmount", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "maxTransactionAmount", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "maxWallet", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "owner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "removeLimits", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "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": "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": [ { "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" } ], "name": "updateBuyFees", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_buy", "type": "uint256" }, { "internalType": "uint256", "name": "_sell", "type": "uint256" } ], "name": "updateFees", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newMarketingWallet", "type": "address" } ], "name": "updateMarketingWallet", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "newAmount", "type": "uint256" } ], "name": "updateMaxSwap", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "newNum", "type": "uint256" } ], "name": "updateMaxTxnAmount", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "newNum", "type": "uint256" } ], "name": "updateMaxWalletAmount", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_marketingFee", "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": [], "stateMutability": "nonpayable", "type": "function" }, { "stateMutability": "payable", "type": "receive" } ]
60c06040526001600b60006101000a81548160ff0219169083151502179055506000600b60016101000a81548160ff0219169083151502179055506000600b60026101000a81548160ff0219169083151502179055503480156200006257600080fd5b5060405162005bc038038062005bc0833981810160405281019062000088919062000bf2565b828281600390816200009b919062000ed7565b508060049081620000ad919062000ed7565b505050620000d0620000c4620004bb60201b60201c565b620004c360201b60201c565b60007360ae616a2155ee3d9a68541ba4544862310933d49050620000fc8160016200058960201b60201c565b8073ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200017c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001a2919062000fbe565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff166373b295c26040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200020a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000230919062000fbe565b6040518363ffffffff1660e01b81526004016200024f92919062001001565b6020604051808303816000875af11580156200026f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000295919062000fbe565b73ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff1681525050620002dd60a05160016200058960201b60201c565b620002f260a05160016200067360201b60201c565b6a01a784379d99db420000006007819055506a01a784379d99db4200000060098190555069021e19e0c9bab240000060088190555069d3c21bcecceda1000000600a8190555081600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506200039b6200038d6200071460201b60201c565b60016200073e60201b60201c565b620003d0600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660016200073e60201b60201c565b620003e33060016200073e60201b60201c565b620003f861dead60016200073e60201b60201c565b6200041a6200040c6200071460201b60201c565b60016200058960201b60201c565b6200044f600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660016200058960201b60201c565b620004623060016200058960201b60201c565b6200047761dead60016200058960201b60201c565b62000494306a2f2638310ba0e8d90000006200087860201b60201c565b620004b1336a23919aabbc6bea0b0000006200087860201b60201c565b50505050620011f5565b600033905090565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b62000599620004bb60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16620005bf6200071460201b60201c565b73ffffffffffffffffffffffffffffffffffffffff161462000618576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200060f906200108f565b60405180910390fd5b80601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b80601360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6200074e620004bb60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16620007746200071460201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1614620007cd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620007c4906200108f565b60405180910390fd5b80601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7826040516200086c9190620010ce565b60405180910390a25050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603620008ea576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620008e1906200113b565b60405180910390fd5b620008fe60008383620009f060201b60201c565b80600260008282546200091291906200118c565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546200096991906200118c565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051620009d09190620011d8565b60405180910390a3620009ec60008383620009f560201b60201c565b5050565b505050565b505050565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b62000a638262000a18565b810181811067ffffffffffffffff8211171562000a855762000a8462000a29565b5b80604052505050565b600062000a9a620009fa565b905062000aa8828262000a58565b919050565b600067ffffffffffffffff82111562000acb5762000aca62000a29565b5b62000ad68262000a18565b9050602081019050919050565b60005b8381101562000b0357808201518184015260208101905062000ae6565b60008484015250505050565b600062000b2662000b208462000aad565b62000a8e565b90508281526020810184848401111562000b455762000b4462000a13565b5b62000b5284828562000ae3565b509392505050565b600082601f83011262000b725762000b7162000a0e565b5b815162000b8484826020860162000b0f565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000bba8262000b8d565b9050919050565b62000bcc8162000bad565b811462000bd857600080fd5b50565b60008151905062000bec8162000bc1565b92915050565b60008060006060848603121562000c0e5762000c0d62000a04565b5b600084015167ffffffffffffffff81111562000c2f5762000c2e62000a09565b5b62000c3d8682870162000b5a565b935050602084015167ffffffffffffffff81111562000c615762000c6062000a09565b5b62000c6f8682870162000b5a565b925050604062000c828682870162000bdb565b9150509250925092565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168062000cdf57607f821691505b60208210810362000cf55762000cf462000c97565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b60006008830262000d5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000d20565b62000d6b868362000d20565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600062000db862000db262000dac8462000d83565b62000d8d565b62000d83565b9050919050565b6000819050919050565b62000dd48362000d97565b62000dec62000de38262000dbf565b84845462000d2d565b825550505050565b600090565b62000e0362000df4565b62000e1081848462000dc9565b505050565b5b8181101562000e385762000e2c60008262000df9565b60018101905062000e16565b5050565b601f82111562000e875762000e518162000cfb565b62000e5c8462000d10565b8101602085101562000e6c578190505b62000e8462000e7b8562000d10565b83018262000e15565b50505b505050565b600082821c905092915050565b600062000eac6000198460080262000e8c565b1980831691505092915050565b600062000ec7838362000e99565b9150826002028217905092915050565b62000ee28262000c8c565b67ffffffffffffffff81111562000efe5762000efd62000a29565b5b62000f0a825462000cc6565b62000f1782828562000e3c565b600060209050601f83116001811462000f4f576000841562000f3a578287015190505b62000f46858262000eb9565b86555062000fb6565b601f19841662000f5f8662000cfb565b60005b8281101562000f895784890151825560018201915060208501945060208101905062000f62565b8683101562000fa9578489015162000fa5601f89168262000e99565b8355505b6001600288020188555050505b505050505050565b60006020828403121562000fd75762000fd662000a04565b5b600062000fe78482850162000bdb565b91505092915050565b62000ffb8162000bad565b82525050565b600060408201905062001018600083018562000ff0565b62001027602083018462000ff0565b9392505050565b600082825260208201905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000620010776020836200102e565b915062001084826200103f565b602082019050919050565b60006020820190508181036000830152620010aa8162001068565b9050919050565b60008115159050919050565b620010c881620010b1565b82525050565b6000602082019050620010e56000830184620010bd565b92915050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b600062001123601f836200102e565b91506200113082620010eb565b602082019050919050565b60006020820190508181036000830152620011568162001114565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000620011998262000d83565b9150620011a68362000d83565b9250828201905080821115620011c157620011c06200115d565b5b92915050565b620011d28162000d83565b82525050565b6000602082019050620011ef6000830184620011c7565b92915050565b60805160a05161496d6200125360003960008181610edb015281816116d40152611b1d015260008181610beb01528181611a3501528181611a6301528181611b5901528181612ecd01528181612fae0152612fd5015261496d6000f3fe6080604052600436106102815760003560e01c8063881dce601161014f578063bbc0c742116100c1578063d85ba0631161007a578063d85ba06314610970578063dd62ed3e1461099b578063e2f45605146109d8578063eba4c33314610a03578063f2fde38b14610a2c578063f8b45b0514610a5557610288565b8063bbc0c74214610874578063c02466681461089f578063c18bc195146108c8578063c8c8ebe4146108f1578063cce987d41461091c578063d257b34f1461094757610288565b80639a7a23d6116101135780639a7a23d61461074f578063a457c2d714610778578063a9059cbb146107b5578063aacebbe3146107f2578063adbd89871461081b578063b62496f51461083757610288565b8063881dce601461067c5780638da5cb5b146106a5578063924de9b7146106d057806395d89b41146106f9578063967ff23e1461072457610288565b806349bd5a5e116101f35780636fc3eaec116101ac5780636fc3eaec146105a857806370a08231146105bf578063715018a6146105fc57806371fc468814610613578063751039fc1461063c5780637571336a1461065357610288565b806349bd5a5e146104aa5780634a62bb65146104d557806367243482146105005780636a486a8e146105295780636db79437146105545780636ddd17131461057d57610288565b806318160ddd1161024557806318160ddd14610386578063203e727e146103b157806323b872dd146103da57806327c8f83514610417578063313ce56714610442578063395093511461046d57610288565b806306fdde031461028d578063095ea7b3146102b857806310d5de53146102f5578063150074a3146103325780631694505e1461035b57610288565b3661028857005b600080fd5b34801561029957600080fd5b506102a2610a80565b6040516102af9190613526565b60405180910390f35b3480156102c457600080fd5b506102df60048036038101906102da91906135e6565b610b12565b6040516102ec9190613641565b60405180910390f35b34801561030157600080fd5b5061031c6004803603810190610317919061365c565b610b30565b6040516103299190613641565b60405180910390f35b34801561033e57600080fd5b5061035960048036038101906103549190613689565b610b50565b005b34801561036757600080fd5b50610370610be9565b60405161037d9190613715565b60405180910390f35b34801561039257600080fd5b5061039b610c0d565b6040516103a8919061373f565b60405180910390f35b3480156103bd57600080fd5b506103d860048036038101906103d39190613689565b610c17565b005b3480156103e657600080fd5b5061040160048036038101906103fc919061375a565b610d26565b60405161040e9190613641565b60405180910390f35b34801561042357600080fd5b5061042c610e1e565b60405161043991906137bc565b60405180910390f35b34801561044e57600080fd5b50610457610e24565b60405161046491906137f3565b60405180910390f35b34801561047957600080fd5b50610494600480360381019061048f91906135e6565b610e2d565b6040516104a19190613641565b60405180910390f35b3480156104b657600080fd5b506104bf610ed9565b6040516104cc91906137bc565b60405180910390f35b3480156104e157600080fd5b506104ea610efd565b6040516104f79190613641565b60405180910390f35b34801561050c57600080fd5b50610527600480360381019061052291906138c9565b610f10565b005b34801561053557600080fd5b5061053e610fbd565b60405161054b919061373f565b60405180910390f35b34801561056057600080fd5b5061057b6004803603810190610576919061394a565b610fc3565b005b34801561058957600080fd5b50610592611051565b60405161059f9190613641565b60405180910390f35b3480156105b457600080fd5b506105bd611064565b005b3480156105cb57600080fd5b506105e660048036038101906105e1919061365c565b6110f7565b6040516105f3919061373f565b60405180910390f35b34801561060857600080fd5b5061061161113f565b005b34801561061f57600080fd5b5061063a60048036038101906106359190613689565b6111c7565b005b34801561064857600080fd5b5061065161124d565b005b34801561065f57600080fd5b5061067a600480360381019061067591906139b6565b6112e6565b005b34801561068857600080fd5b506106a3600480360381019061069e9190613689565b6113bd565b005b3480156106b157600080fd5b506106ba6114fb565b6040516106c791906137bc565b60405180910390f35b3480156106dc57600080fd5b506106f760048036038101906106f291906139f6565b611525565b005b34801561070557600080fd5b5061070e6115be565b60405161071b9190613526565b60405180910390f35b34801561073057600080fd5b50610739611650565b604051610746919061373f565b60405180910390f35b34801561075b57600080fd5b50610776600480360381019061077191906139b6565b611656565b005b34801561078457600080fd5b5061079f600480360381019061079a91906135e6565b61176e565b6040516107ac9190613641565b60405180910390f35b3480156107c157600080fd5b506107dc60048036038101906107d791906135e6565b611859565b6040516107e99190613641565b60405180910390f35b3480156107fe57600080fd5b506108196004803603810190610814919061365c565b611877565b005b61083560048036038101906108309190613689565b6119b3565b005b34801561084357600080fd5b5061085e6004803603810190610859919061365c565b611c48565b60405161086b9190613641565b60405180910390f35b34801561088057600080fd5b50610889611c68565b6040516108969190613641565b60405180910390f35b3480156108ab57600080fd5b506108c660048036038101906108c191906139b6565b611c7b565b005b3480156108d457600080fd5b506108ef60048036038101906108ea9190613689565b611da0565b005b3480156108fd57600080fd5b50610906611eaf565b604051610913919061373f565b60405180910390f35b34801561092857600080fd5b50610931611eb5565b60405161093e919061373f565b60405180910390f35b34801561095357600080fd5b5061096e60048036038101906109699190613689565b611ebb565b005b34801561097c57600080fd5b50610985611f54565b604051610992919061373f565b60405180910390f35b3480156109a757600080fd5b506109c260048036038101906109bd9190613a23565b611f5a565b6040516109cf919061373f565b60405180910390f35b3480156109e457600080fd5b506109ed611fe1565b6040516109fa919061373f565b60405180910390f35b348015610a0f57600080fd5b50610a2a6004803603810190610a259190613689565b611fe7565b005b348015610a3857600080fd5b50610a536004803603810190610a4e919061365c565b61206d565b005b348015610a6157600080fd5b50610a6a612164565b604051610a77919061373f565b60405180910390f35b606060038054610a8f90613a92565b80601f0160208091040260200160405190810160405280929190818152602001828054610abb90613a92565b8015610b085780601f10610add57610100808354040283529160200191610b08565b820191906000526020600020905b815481529060010190602001808311610aeb57829003601f168201915b5050505050905090565b6000610b26610b1f61216a565b8484612172565b6001905092915050565b60126020528060005260406000206000915054906101000a900460ff1681565b610b5861216a565b73ffffffffffffffffffffffffffffffffffffffff16610b766114fb565b73ffffffffffffffffffffffffffffffffffffffff1614610bcc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bc390613b0f565b60405180910390fd5b670de0b6b3a764000081610be09190613b5e565b600a8190555050565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000600254905090565b610c1f61216a565b73ffffffffffffffffffffffffffffffffffffffff16610c3d6114fb565b73ffffffffffffffffffffffffffffffffffffffff1614610c93576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c8a90613b0f565b60405180910390fd5b670de0b6b3a76400006103e86001610ca9610c0d565b610cb39190613b5e565b610cbd9190613bcf565b610cc79190613bcf565b811015610d09576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d0090613c72565b60405180910390fd5b670de0b6b3a764000081610d1d9190613b5e565b60078190555050565b6000610d3384848461233b565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610d7e61216a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610dfe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610df590613d04565b60405180910390fd5b610e1285610e0a61216a565b858403612172565b60019150509392505050565b61dead81565b60006012905090565b6000610ecf610e3a61216a565b848460016000610e4861216a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610eca9190613d24565b612172565b6001905092915050565b7f000000000000000000000000000000000000000000000000000000000000000081565b600b60009054906101000a900460ff1681565b600084849050118015610f2857508383905082829050145b610f3157600080fd5b600033905060005b85859050811015610fb557610fa282878784818110610f5b57610f5a613d58565b5b9050602002016020810190610f70919061365c565b670de0b6b3a7640000878786818110610f8c57610f8b613d58565b5b90506020020135610f9d9190613b5e565b61233b565b8080610fad90613d87565b915050610f39565b505050505050565b60105481565b610fcb61216a565b73ffffffffffffffffffffffffffffffffffffffff16610fe96114fb565b73ffffffffffffffffffffffffffffffffffffffff161461103f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161103690613b0f565b60405180910390fd5b81600f81905550806010819055505050565b600b60029054906101000a900460ff1681565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16476040516110ac90613e00565b60006040518083038185875af1925050503d80600081146110e9576040519150601f19603f3d011682016040523d82523d6000602084013e6110ee565b606091505b50508091505050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61114761216a565b73ffffffffffffffffffffffffffffffffffffffff166111656114fb565b73ffffffffffffffffffffffffffffffffffffffff16146111bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111b290613b0f565b60405180910390fd5b6111c56000612d68565b565b6111cf61216a565b73ffffffffffffffffffffffffffffffffffffffff166111ed6114fb565b73ffffffffffffffffffffffffffffffffffffffff1614611243576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161123a90613b0f565b60405180910390fd5b80600f8190555050565b61125561216a565b73ffffffffffffffffffffffffffffffffffffffff166112736114fb565b73ffffffffffffffffffffffffffffffffffffffff16146112c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112c090613b0f565b60405180910390fd5b6000600b60006101000a81548160ff021916908315150217905550565b6112ee61216a565b73ffffffffffffffffffffffffffffffffffffffff1661130c6114fb565b73ffffffffffffffffffffffffffffffffffffffff1614611362576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161135990613b0f565b60405180910390fd5b80601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166113fe61216a565b73ffffffffffffffffffffffffffffffffffffffff16148061145957506114236114fb565b73ffffffffffffffffffffffffffffffffffffffff1661144161216a565b73ffffffffffffffffffffffffffffffffffffffff16145b611498576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161148f90613e61565b60405180910390fd5b6114a1306110f7565b81111580156114b05750600081115b6114ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114e690613ecd565b60405180910390fd5b6114f881612e2e565b50565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b61152d61216a565b73ffffffffffffffffffffffffffffffffffffffff1661154b6114fb565b73ffffffffffffffffffffffffffffffffffffffff16146115a1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161159890613b0f565b60405180910390fd5b80600b60026101000a81548160ff02191690831515021790555050565b6060600480546115cd90613a92565b80601f01602080910402602001604051908101604052809291908181526020018280546115f990613a92565b80156116465780601f1061161b57610100808354040283529160200191611646565b820191906000526020600020905b81548152906001019060200180831161162957829003601f168201915b5050505050905090565b600e5481565b61165e61216a565b73ffffffffffffffffffffffffffffffffffffffff1661167c6114fb565b73ffffffffffffffffffffffffffffffffffffffff16146116d2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116c990613b0f565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611760576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161175790613f5f565b60405180910390fd5b61176a828261306b565b5050565b6000806001600061177d61216a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508281101561183a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161183190613ff1565b60405180910390fd5b61184e61184561216a565b85858403612172565b600191505092915050565b600061186d61186661216a565b848461233b565b6001905092915050565b61187f61216a565b73ffffffffffffffffffffffffffffffffffffffff1661189d6114fb565b73ffffffffffffffffffffffffffffffffffffffff16146118f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118ea90613b0f565b60405180910390fd5b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167fa751787977eeb3902e30e1d19ca00c6ad274a1f622c31a206e32366700b0567460405160405180910390a380600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6119bb61216a565b73ffffffffffffffffffffffffffffffffffffffff166119d96114fb565b73ffffffffffffffffffffffffffffffffffffffff1614611a2f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a2690613b0f565b60405180910390fd5b611a61307f0000000000000000000000000000000000000000000000000000000000000000611a5c610c0d565b612172565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663f91b3f724730611aa8306110f7565b600080611ab36114fb565b426040518863ffffffff1660e01b8152600401611ad59695949392919061404c565b60606040518083038185885af1158015611af3573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611b1891906140c2565b5050507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663095ea7b37f00000000000000000000000000000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401611bb6929190614115565b6020604051808303816000875af1158015611bd5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bf99190614153565b5080600e819055506001600b60016101000a81548160ff0219169083151502179055506001600b60026101000a81548160ff02191690831515021790555043600c8190555042600d8190555050565b60136020528060005260406000206000915054906101000a900460ff1681565b600b60019054906101000a900460ff1681565b611c8361216a565b73ffffffffffffffffffffffffffffffffffffffff16611ca16114fb565b73ffffffffffffffffffffffffffffffffffffffff1614611cf7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cee90613b0f565b60405180910390fd5b80601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df782604051611d949190613641565b60405180910390a25050565b611da861216a565b73ffffffffffffffffffffffffffffffffffffffff16611dc66114fb565b73ffffffffffffffffffffffffffffffffffffffff1614611e1c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e1390613b0f565b60405180910390fd5b670de0b6b3a76400006103e86001611e32610c0d565b611e3c9190613b5e565b611e469190613bcf565b611e509190613bcf565b811015611e92576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e89906141f2565b60405180910390fd5b670de0b6b3a764000081611ea69190613b5e565b60098190555050565b60075481565b600a5481565b611ec361216a565b73ffffffffffffffffffffffffffffffffffffffff16611ee16114fb565b73ffffffffffffffffffffffffffffffffffffffff1614611f37576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f2e90613b0f565b60405180910390fd5b670de0b6b3a764000081611f4b9190613b5e565b60088190555050565b600f5481565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60085481565b611fef61216a565b73ffffffffffffffffffffffffffffffffffffffff1661200d6114fb565b73ffffffffffffffffffffffffffffffffffffffff1614612063576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161205a90613b0f565b60405180910390fd5b8060108190555050565b61207561216a565b73ffffffffffffffffffffffffffffffffffffffff166120936114fb565b73ffffffffffffffffffffffffffffffffffffffff16146120e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120e090613b0f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603612158576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161214f90614284565b60405180910390fd5b61216181612d68565b50565b60095481565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036121e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121d890614316565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612250576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612247906143a8565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161232e919061373f565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036123aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123a19061443a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612419576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612410906144cc565b60405180910390fd5b600081036124325761242d8383600061310c565b612d63565b600b60009054906101000a900460ff16156129695761244f6114fb565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156124bd575061248d6114fb565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156124f65750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015612530575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156125495750600560149054906101000a900460ff16155b156129685743600e54600c5461255f9190613d24565b1061257957600a601081905550600a600f8190555061258a565b60006010819055506000600f819055505b600b60019054906101000a900460ff1661267f57601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061263f5750601160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b61267e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161267590614538565b60405180910390fd5b5b601360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156127225750601260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156127c95760075481111561276c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612763906145ca565b60405180910390fd5b600954612778836110f7565b826127839190613d24565b11156127c4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127bb90614636565b60405180910390fd5b612967565b601360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16801561286c5750601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156128bb576007548111156128b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128ad906146c8565b60405180910390fd5b612966565b601260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661296557600954612918836110f7565b826129239190613d24565b1115612964576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161295b90614636565b60405180910390fd5b5b5b5b5b5b6000612974306110f7565b9050600060085482101590508080156129995750600b60029054906101000a900460ff165b80156129b25750600560149054906101000a900460ff16155b8015612a085750601360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015612a5e5750601160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015612ab45750601160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612b4c57600360146000438152602001908152602001600020541015612b4b576001600560146101000a81548160ff021916908315150217905550612af861338b565b6000600560146101000a81548160ff02191690831515021790555060016014600043815260200190815260200160002054612b339190613d24565b60146000438152602001908152602001600020819055505b5b6000600560149054906101000a900460ff16159050601160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680612c025750601160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15612c0c57600090505b60008115612d5357601360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015612c6f57506000601054115b15612ca357612c9c6064612c8e6010548861346090919063ffffffff16565b61347690919063ffffffff16565b9050612d2f565b601360008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015612cfe57506000600f54115b15612d2e57612d2b6064612d1d600f548861346090919063ffffffff16565b61347690919063ffffffff16565b90505b5b6000811115612d4457612d4387308361310c565b5b8085612d5091906146e8565b94505b612d5e87878761310c565b505050505b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000600267ffffffffffffffff811115612e4b57612e4a61471c565b5b604051908082528060200260200182016040528015612e795781602001602082028036833780820191505090505b5090503081600081518110612e9157612e90613d58565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166373b295c26040518163ffffffff1660e01b8152600401602060405180830381865afa158015612f36573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f5a9190614760565b81600181518110612f6e57612f6d613d58565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612fd3307f000000000000000000000000000000000000000000000000000000000000000084612172565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663762b15628360008430426040518663ffffffff1660e01b815260040161303595949392919061484b565b600060405180830381600087803b15801561304f57600080fd5b505af1158015613063573d6000803e3d6000fd5b505050505050565b80601360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361317b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016131729061443a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036131ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016131e1906144cc565b60405180910390fd5b6131f583838361348c565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561327b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161327290614917565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461330e9190613d24565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051613372919061373f565b60405180910390a3613385848484613491565b50505050565b6000613396306110f7565b905060008082036133a857505061345e565b600a548211156133b857600a5491505b60008290506133c681612e2e565b6000479050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168160405161341190613e00565b60006040518083038185875af1925050503d806000811461344e576040519150601f19603f3d011682016040523d82523d6000602084013e613453565b606091505b505080935050505050505b565b6000818361346e9190613b5e565b905092915050565b600081836134849190613bcf565b905092915050565b505050565b505050565b600081519050919050565b600082825260208201905092915050565b60005b838110156134d05780820151818401526020810190506134b5565b60008484015250505050565b6000601f19601f8301169050919050565b60006134f882613496565b61350281856134a1565b93506135128185602086016134b2565b61351b816134dc565b840191505092915050565b6000602082019050818103600083015261354081846134ed565b905092915050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061357d82613552565b9050919050565b61358d81613572565b811461359857600080fd5b50565b6000813590506135aa81613584565b92915050565b6000819050919050565b6135c3816135b0565b81146135ce57600080fd5b50565b6000813590506135e0816135ba565b92915050565b600080604083850312156135fd576135fc613548565b5b600061360b8582860161359b565b925050602061361c858286016135d1565b9150509250929050565b60008115159050919050565b61363b81613626565b82525050565b60006020820190506136566000830184613632565b92915050565b60006020828403121561367257613671613548565b5b60006136808482850161359b565b91505092915050565b60006020828403121561369f5761369e613548565b5b60006136ad848285016135d1565b91505092915050565b6000819050919050565b60006136db6136d66136d184613552565b6136b6565b613552565b9050919050565b60006136ed826136c0565b9050919050565b60006136ff826136e2565b9050919050565b61370f816136f4565b82525050565b600060208201905061372a6000830184613706565b92915050565b613739816135b0565b82525050565b60006020820190506137546000830184613730565b92915050565b60008060006060848603121561377357613772613548565b5b60006137818682870161359b565b93505060206137928682870161359b565b92505060406137a3868287016135d1565b9150509250925092565b6137b681613572565b82525050565b60006020820190506137d160008301846137ad565b92915050565b600060ff82169050919050565b6137ed816137d7565b82525050565b600060208201905061380860008301846137e4565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f8401126138335761383261380e565b5b8235905067ffffffffffffffff8111156138505761384f613813565b5b60208301915083602082028301111561386c5761386b613818565b5b9250929050565b60008083601f8401126138895761388861380e565b5b8235905067ffffffffffffffff8111156138a6576138a5613813565b5b6020830191508360208202830111156138c2576138c1613818565b5b9250929050565b600080600080604085870312156138e3576138e2613548565b5b600085013567ffffffffffffffff8111156139015761390061354d565b5b61390d8782880161381d565b9450945050602085013567ffffffffffffffff8111156139305761392f61354d565b5b61393c87828801613873565b925092505092959194509250565b6000806040838503121561396157613960613548565b5b600061396f858286016135d1565b9250506020613980858286016135d1565b9150509250929050565b61399381613626565b811461399e57600080fd5b50565b6000813590506139b08161398a565b92915050565b600080604083850312156139cd576139cc613548565b5b60006139db8582860161359b565b92505060206139ec858286016139a1565b9150509250929050565b600060208284031215613a0c57613a0b613548565b5b6000613a1a848285016139a1565b91505092915050565b60008060408385031215613a3a57613a39613548565b5b6000613a488582860161359b565b9250506020613a598582860161359b565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680613aaa57607f821691505b602082108103613abd57613abc613a63565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613af96020836134a1565b9150613b0482613ac3565b602082019050919050565b60006020820190508181036000830152613b2881613aec565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613b69826135b0565b9150613b74836135b0565b9250828202613b82816135b0565b91508282048414831517613b9957613b98613b2f565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613bda826135b0565b9150613be5836135b0565b925082613bf557613bf4613ba0565b5b828204905092915050565b7f43616e6e6f7420736574206d61785472616e73616374696f6e416d6f756e742060008201527f6c6f776572207468616e20302e31250000000000000000000000000000000000602082015250565b6000613c5c602f836134a1565b9150613c6782613c00565b604082019050919050565b60006020820190508181036000830152613c8b81613c4f565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b6000613cee6028836134a1565b9150613cf982613c92565b604082019050919050565b60006020820190508181036000830152613d1d81613ce1565b9050919050565b6000613d2f826135b0565b9150613d3a836135b0565b9250828201905080821115613d5257613d51613b2f565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000613d92826135b0565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613dc457613dc3613b2f565b5b600182019050919050565b600081905092915050565b50565b6000613dea600083613dcf565b9150613df582613dda565b600082019050919050565b6000613e0b82613ddd565b9150819050919050565b7f4f6e6c79206f776e6572206f72206d61726b6574696e672077616c6c65740000600082015250565b6000613e4b601e836134a1565b9150613e5682613e15565b602082019050919050565b60006020820190508181036000830152613e7a81613e3e565b9050919050565b7f57726f6e6720616d6f756e740000000000000000000000000000000000000000600082015250565b6000613eb7600c836134a1565b9150613ec282613e81565b602082019050919050565b60006020820190508181036000830152613ee681613eaa565b9050919050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060008201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b6000613f496039836134a1565b9150613f5482613eed565b604082019050919050565b60006020820190508181036000830152613f7881613f3c565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000613fdb6025836134a1565b9150613fe682613f7f565b604082019050919050565b6000602082019050818103600083015261400a81613fce565b9050919050565b6000819050919050565b600061403661403161402c84614011565b6136b6565b6135b0565b9050919050565b6140468161401b565b82525050565b600060c08201905061406160008301896137ad565b61406e6020830188613730565b61407b604083018761403d565b614088606083018661403d565b61409560808301856137ad565b6140a260a0830184613730565b979650505050505050565b6000815190506140bc816135ba565b92915050565b6000806000606084860312156140db576140da613548565b5b60006140e9868287016140ad565b93505060206140fa868287016140ad565b925050604061410b868287016140ad565b9150509250925092565b600060408201905061412a60008301856137ad565b6141376020830184613730565b9392505050565b60008151905061414d8161398a565b92915050565b60006020828403121561416957614168613548565b5b60006141778482850161413e565b91505092915050565b7f43616e6e6f7420736574206d617857616c6c6574206c6f776572207468616e2060008201527f302e312500000000000000000000000000000000000000000000000000000000602082015250565b60006141dc6024836134a1565b91506141e782614180565b604082019050919050565b6000602082019050818103600083015261420b816141cf565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b600061426e6026836134a1565b915061427982614212565b604082019050919050565b6000602082019050818103600083015261429d81614261565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006143006024836134a1565b915061430b826142a4565b604082019050919050565b6000602082019050818103600083015261432f816142f3565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006143926022836134a1565b915061439d82614336565b604082019050919050565b600060208201905081810360008301526143c181614385565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006144246025836134a1565b915061442f826143c8565b604082019050919050565b6000602082019050818103600083015261445381614417565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006144b66023836134a1565b91506144c18261445a565b604082019050919050565b600060208201905081810360008301526144e5816144a9565b9050919050565b7f54726164696e67206973206e6f74206163746976652e00000000000000000000600082015250565b60006145226016836134a1565b915061452d826144ec565b602082019050919050565b6000602082019050818103600083015261455181614515565b9050919050565b7f427579207472616e7366657220616d6f756e742065786365656473207468652060008201527f6d61785472616e73616374696f6e416d6f756e742e0000000000000000000000602082015250565b60006145b46035836134a1565b91506145bf82614558565b604082019050919050565b600060208201905081810360008301526145e3816145a7565b9050919050565b7f4d61782077616c6c657420657863656564656400000000000000000000000000600082015250565b60006146206013836134a1565b915061462b826145ea565b602082019050919050565b6000602082019050818103600083015261464f81614613565b9050919050565b7f53656c6c207472616e7366657220616d6f756e7420657863656564732074686560008201527f206d61785472616e73616374696f6e416d6f756e742e00000000000000000000602082015250565b60006146b26036836134a1565b91506146bd82614656565b604082019050919050565b600060208201905081810360008301526146e1816146a5565b9050919050565b60006146f3826135b0565b91506146fe836135b0565b925082820390508181111561471657614715613b2f565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60008151905061475a81613584565b92915050565b60006020828403121561477657614775613548565b5b60006147848482850161474b565b91505092915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6147c281613572565b82525050565b60006147d483836147b9565b60208301905092915050565b6000602082019050919050565b60006147f88261478d565b6148028185614798565b935061480d836147a9565b8060005b8381101561483e57815161482588826147c8565b9750614830836147e0565b925050600181019050614811565b5085935050505092915050565b600060a0820190506148606000830188613730565b61486d602083018761403d565b818103604083015261487f81866147ed565b905061488e60608301856137ad565b61489b6080830184613730565b9695505050505050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b60006149016026836134a1565b915061490c826148a5565b604082019050919050565b60006020820190508181036000830152614930816148f4565b905091905056fea2646970667358221220675aa5002d4efdd6de37e08092ee2e0b7088c55c9094ab19f1643e71f20babee64736f6c63430008130033000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000cdfe104c44224739a70220dcd8f62c4c430ab0ac000000000000000000000000000000000000000000000000000000000000000552616d656e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000352414d0000000000000000000000000000000000000000000000000000000000