[ { "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": "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": "_whitelist", "type": "address[]" } ], "name": "AddLP", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "_isExcludedMaxTransactionAmount", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "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": "startTrading", "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": "_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": "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" }, { "inputs": [ { "internalType": "address", "name": "_whitelist", "type": "address" }, { "internalType": "bool", "name": "isWL", "type": "bool" } ], "name": "whitelistContract", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "stateMutability": "payable", "type": "receive" } ]
60c06040526001600b5f6101000a81548160ff0219169083151502179055505f600b60016101000a81548160ff0219169083151502179055505f600b60026101000a81548160ff0219169083151502179055503480156200005e575f80fd5b506040518060400160405280600881526020017f4465546f722041490000000000000000000000000000000000000000000000008152506040518060400160405280600481526020017f44544f52000000000000000000000000000000000000000000000000000000008152508160039081620000dc919062000c98565b508060049081620000ee919062000c98565b5050506200011162000105620004de60201b60201c565b620004e560201b60201c565b5f737a250d5630b4cf539739df2c5dacb4c659f2488d90506200013c816001620005a860201b60201c565b8073ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001ba573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001e0919062000de1565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000246573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200026c919062000de1565b6040518363ffffffff1660e01b81526004016200028b92919062000e22565b6020604051808303815f875af1158015620002a8573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620002ce919062000de1565b73ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff16815250506200031660a0516001620005a860201b60201c565b6200032b60a05160016200068f60201b60201c565b5f6a52b7d2dcc80cd2e400000090506a01a784379d99db420000006007819055506a01a784379d99db42000000600981905550692a5a058fc295ed00000060088190555069d3c21bcecceda1000000600a819055503360065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f620003ec6064620003dd605f856200072d60201b90919060201c565b6200074460201b90919060201c565b90505f6200041a60646200040b6005866200072d60201b90919060201c565b6200074460201b90919060201c565b90506200042e30836200075b60201b60201c565b6200044033826200075b60201b60201c565b6200046262000454620008cb60201b60201c565b6001620008f360201b60201c565b62000475306001620008f360201b60201c565b6200048a61dead6001620008f360201b60201c565b620004ac6200049e620008cb60201b60201c565b6001620005a860201b60201c565b620004bf306001620005a860201b60201c565b620004d461dead6001620005a860201b60201c565b50505050620010b1565b5f33905090565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b620005b8620004de60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16620005de620008cb60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff161462000637576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200062e9062000eab565b60405180910390fd5b8060125f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b8060135f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b5f81836200073c919062000ef8565b905092915050565b5f818362000753919062000f6f565b905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603620007cc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620007c39062000ff4565b60405180910390fd5b620007df5f838362000a2a60201b60201c565b8060025f828254620007f2919062001014565b92505081905550805f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825462000846919062001014565b925050819055508173ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051620008ac91906200105f565b60405180910390a3620008c75f838362000a2f60201b60201c565b5050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b62000903620004de60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1662000929620008cb60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff161462000982576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620009799062000eab565b60405180910390fd5b8060115f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df78260405162000a1e919062001096565b60405180910390a25050565b505050565b505050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168062000ab057607f821691505b60208210810362000ac65762000ac562000a6b565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f6008830262000b2a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000aed565b62000b36868362000aed565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f62000b8062000b7a62000b748462000b4e565b62000b57565b62000b4e565b9050919050565b5f819050919050565b62000b9b8362000b60565b62000bb362000baa8262000b87565b84845462000af9565b825550505050565b5f90565b62000bc962000bbb565b62000bd681848462000b90565b505050565b5b8181101562000bfd5762000bf15f8262000bbf565b60018101905062000bdc565b5050565b601f82111562000c4c5762000c168162000acc565b62000c218462000ade565b8101602085101562000c31578190505b62000c4962000c408562000ade565b83018262000bdb565b50505b505050565b5f82821c905092915050565b5f62000c6e5f198460080262000c51565b1980831691505092915050565b5f62000c88838362000c5d565b9150826002028217905092915050565b62000ca38262000a34565b67ffffffffffffffff81111562000cbf5762000cbe62000a3e565b5b62000ccb825462000a98565b62000cd882828562000c01565b5f60209050601f83116001811462000d0e575f841562000cf9578287015190505b62000d05858262000c7b565b86555062000d74565b601f19841662000d1e8662000acc565b5f5b8281101562000d475784890151825560018201915060208501945060208101905062000d20565b8683101562000d67578489015162000d63601f89168262000c5d565b8355505b6001600288020188555050505b505050505050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f62000dab8262000d80565b9050919050565b62000dbd8162000d9f565b811462000dc8575f80fd5b50565b5f8151905062000ddb8162000db2565b92915050565b5f6020828403121562000df95762000df862000d7c565b5b5f62000e088482850162000dcb565b91505092915050565b62000e1c8162000d9f565b82525050565b5f60408201905062000e375f83018562000e11565b62000e46602083018462000e11565b9392505050565b5f82825260208201905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f62000e9360208362000e4d565b915062000ea08262000e5d565b602082019050919050565b5f6020820190508181035f83015262000ec48162000e85565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f62000f048262000b4e565b915062000f118362000b4e565b925082820262000f218162000b4e565b9150828204841483151762000f3b5762000f3a62000ecb565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f62000f7b8262000b4e565b915062000f888362000b4e565b92508262000f9b5762000f9a62000f42565b5b828204905092915050565b7f45524332303a206d696e7420746f20746865207a65726f2061646472657373005f82015250565b5f62000fdc601f8362000e4d565b915062000fe98262000fa6565b602082019050919050565b5f6020820190508181035f8301526200100d8162000fce565b9050919050565b5f620010208262000b4e565b91506200102d8362000b4e565b925082820190508082111562001048576200104762000ecb565b5b92915050565b620010598162000b4e565b82525050565b5f602082019050620010745f8301846200104e565b92915050565b5f8115159050919050565b62001090816200107a565b82525050565b5f602082019050620010ab5f83018462001085565b92915050565b60805160a0516149f96200110b5f395f8181610f50015281816116b70152611e7e01525f8181610ba401528181611d9901528181611dc701528181611eba01528181612ecf01528181612fae0152612fd501526149f95ff3fe608060405260043610610280575f3560e01c8063881dce601161014e578063bbc0c742116100c0578063d257b34f11610079578063d257b34f14610935578063d85ba0631461095d578063dd62ed3e14610987578063e2f45605146109c3578063f2fde38b146109ed578063f8b45b0514610a1557610287565b8063bbc0c7421461084b578063c024666814610875578063c18bc1951461089d578063c856dd30146108c5578063c8c8ebe4146108e1578063cce987d41461090b57610287565b80639a7a23d6116101125780639a7a23d61461071f578063a457c2d714610747578063a672990c14610783578063a9059cbb146107ab578063aacebbe3146107e7578063b62496f51461080f57610287565b8063881dce60146106515780638da5cb5b14610679578063924de9b7146106a357806395d89b41146106cb578063967ff23e146106f557610287565b806339509351116101f25780636ddd1713116101ab5780636ddd1713146105815780636fc3eaec146105ab57806370a08231146105c1578063715018a6146105fd578063751039fc146106135780637571336a1461062957610287565b8063395093511461047757806349bd5a5e146104b35780634a62bb65146104dd57806367243482146105075780636a486a8e1461052f5780636db794371461055957610287565b806318160ddd1161024457806318160ddd1461037f578063203e727e146103a957806323b872dd146103d157806327c8f8351461040d578063293230b814610437578063313ce5671461044d57610287565b806306fdde031461028b578063095ea7b3146102b557806310d5de53146102f1578063150074a31461032d5780631694505e1461035557610287565b3661028757005b5f80fd5b348015610296575f80fd5b5061029f610a3f565b6040516102ac9190613503565b60405180910390f35b3480156102c0575f80fd5b506102db60048036038101906102d691906135c1565b610acf565b6040516102e89190613619565b60405180910390f35b3480156102fc575f80fd5b5061031760048036038101906103129190613632565b610aec565b6040516103249190613619565b60405180910390f35b348015610338575f80fd5b50610353600480360381019061034e919061365d565b610b09565b005b348015610360575f80fd5b50610369610ba2565b60405161037691906136e3565b60405180910390f35b34801561038a575f80fd5b50610393610bc6565b6040516103a0919061370b565b60405180910390f35b3480156103b4575f80fd5b506103cf60048036038101906103ca919061365d565b610bcf565b005b3480156103dc575f80fd5b506103f760048036038101906103f29190613724565b610cde565b6040516104049190613619565b60405180910390f35b348015610418575f80fd5b50610421610dd0565b60405161042e9190613783565b60405180910390f35b348015610442575f80fd5b5061044b610dd6565b005b348015610458575f80fd5b50610461610e9f565b60405161046e91906137b7565b60405180910390f35b348015610482575f80fd5b5061049d600480360381019061049891906135c1565b610ea7565b6040516104aa9190613619565b60405180910390f35b3480156104be575f80fd5b506104c7610f4e565b6040516104d49190613783565b60405180910390f35b3480156104e8575f80fd5b506104f1610f72565b6040516104fe9190613619565b60405180910390f35b348015610512575f80fd5b5061052d60048036038101906105289190613886565b610f84565b005b34801561053a575f80fd5b5061054361102d565b604051610550919061370b565b60405180910390f35b348015610564575f80fd5b5061057f600480360381019061057a9190613904565b611033565b005b34801561058c575f80fd5b50610595611149565b6040516105a29190613619565b60405180910390f35b3480156105b6575f80fd5b506105bf61115c565b005b3480156105cc575f80fd5b506105e760048036038101906105e29190613632565b6111ea565b6040516105f4919061370b565b60405180910390f35b348015610608575f80fd5b5061061161122f565b005b34801561061e575f80fd5b506106276112b6565b005b348015610634575f80fd5b5061064f600480360381019061064a919061396c565b61134d565b005b34801561065c575f80fd5b506106776004803603810190610672919061365d565b611421565b005b348015610684575f80fd5b5061068d6114e2565b60405161069a9190613783565b60405180910390f35b3480156106ae575f80fd5b506106c960048036038101906106c491906139aa565b61150a565b005b3480156106d6575f80fd5b506106df6115a3565b6040516106ec9190613503565b60405180910390f35b348015610700575f80fd5b50610709611633565b604051610716919061370b565b60405180910390f35b34801561072a575f80fd5b506107456004803603810190610740919061396c565b611639565b005b348015610752575f80fd5b5061076d600480360381019061076891906135c1565b611751565b60405161077a9190613619565b60405180910390f35b34801561078e575f80fd5b506107a960048036038101906107a4919061396c565b611837565b005b3480156107b6575f80fd5b506107d160048036038101906107cc91906135c1565b61195f565b6040516107de9190613619565b60405180910390f35b3480156107f2575f80fd5b5061080d60048036038101906108089190613632565b61197c565b005b34801561081a575f80fd5b5061083560048036038101906108309190613632565b611ab6565b6040516108429190613619565b60405180910390f35b348015610856575f80fd5b5061085f611ad3565b60405161086c9190613619565b60405180910390f35b348015610880575f80fd5b5061089b6004803603810190610896919061396c565b611ae6565b005b3480156108a8575f80fd5b506108c360048036038101906108be919061365d565b611c08565b005b6108df60048036038101906108da9190613b0d565b611d17565b005b3480156108ec575f80fd5b506108f5611f9d565b604051610902919061370b565b60405180910390f35b348015610916575f80fd5b5061091f611fa3565b60405161092c919061370b565b60405180910390f35b348015610940575f80fd5b5061095b6004803603810190610956919061365d565b611fa9565b005b348015610968575f80fd5b50610971612042565b60405161097e919061370b565b60405180910390f35b348015610992575f80fd5b506109ad60048036038101906109a89190613b54565b612048565b6040516109ba919061370b565b60405180910390f35b3480156109ce575f80fd5b506109d76120ca565b6040516109e4919061370b565b60405180910390f35b3480156109f8575f80fd5b50610a136004803603810190610a0e9190613632565b6120d0565b005b348015610a20575f80fd5b50610a296121c6565b604051610a36919061370b565b60405180910390f35b606060038054610a4e90613bbf565b80601f0160208091040260200160405190810160405280929190818152602001828054610a7a90613bbf565b8015610ac55780601f10610a9c57610100808354040283529160200191610ac5565b820191905f5260205f20905b815481529060010190602001808311610aa857829003601f168201915b5050505050905090565b5f610ae2610adb6121cc565b84846121d3565b6001905092915050565b6012602052805f5260405f205f915054906101000a900460ff1681565b610b116121cc565b73ffffffffffffffffffffffffffffffffffffffff16610b2f6114e2565b73ffffffffffffffffffffffffffffffffffffffff1614610b85576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b7c90613c39565b60405180910390fd5b670de0b6b3a764000081610b999190613c84565b600a8190555050565b7f000000000000000000000000000000000000000000000000000000000000000081565b5f600254905090565b610bd76121cc565b73ffffffffffffffffffffffffffffffffffffffff16610bf56114e2565b73ffffffffffffffffffffffffffffffffffffffff1614610c4b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c4290613c39565b60405180910390fd5b670de0b6b3a76400006103e86001610c61610bc6565b610c6b9190613c84565b610c759190613cf2565b610c7f9190613cf2565b811015610cc1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cb890613d92565b60405180910390fd5b670de0b6b3a764000081610cd59190613c84565b60078190555050565b5f610cea848484612396565b5f60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610d316121cc565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905082811015610db0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610da790613e20565b60405180910390fd5b610dc485610dbc6121cc565b8584036121d3565b60019150509392505050565b61dead81565b610dde6121cc565b73ffffffffffffffffffffffffffffffffffffffff16610dfc6114e2565b73ffffffffffffffffffffffffffffffffffffffff1614610e52576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e4990613c39565b60405180910390fd5b5f600e819055506001600b60016101000a81548160ff0219169083151502179055506001600b60026101000a81548160ff02191690831515021790555043600c8190555042600d81905550565b5f6012905090565b5f610f44610eb36121cc565b848460015f610ec06121cc565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610f3f9190613e3e565b6121d3565b6001905092915050565b7f000000000000000000000000000000000000000000000000000000000000000081565b600b5f9054906101000a900460ff1681565b5f84849050118015610f9b57508383905082829050145b610fa3575f80fd5b5f3390505f5b858590508110156110255761101282878784818110610fcb57610fca613e71565b5b9050602002016020810190610fe09190613632565b670de0b6b3a7640000878786818110610ffc57610ffb613e71565b5b9050602002013561100d9190613c84565b612396565b808061101d90613e9e565b915050610fa9565b505050505050565b60105481565b61103b6121cc565b73ffffffffffffffffffffffffffffffffffffffff166110596114e2565b73ffffffffffffffffffffffffffffffffffffffff16146110af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110a690613c39565b60405180910390fd5b60058211156110f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110ea90613f2f565b60405180910390fd5b6005811115611137576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161112e90613f2f565b60405180910390fd5b81600f81905550806010819055505050565b600b60029054906101000a900460ff1681565b5f60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16476040516111a290613f7a565b5f6040518083038185875af1925050503d805f81146111dc576040519150601f19603f3d011682016040523d82523d5f602084013e6111e1565b606091505b50508091505050565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6112376121cc565b73ffffffffffffffffffffffffffffffffffffffff166112556114e2565b73ffffffffffffffffffffffffffffffffffffffff16146112ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112a290613c39565b60405180910390fd5b6112b45f612d6f565b565b6112be6121cc565b73ffffffffffffffffffffffffffffffffffffffff166112dc6114e2565b73ffffffffffffffffffffffffffffffffffffffff1614611332576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161132990613c39565b60405180910390fd5b5f600b5f6101000a81548160ff021916908315150217905550565b6113556121cc565b73ffffffffffffffffffffffffffffffffffffffff166113736114e2565b73ffffffffffffffffffffffffffffffffffffffff16146113c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113c090613c39565b60405180910390fd5b8060125f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166114616121cc565b73ffffffffffffffffffffffffffffffffffffffff1614611480575f80fd5b611489306111ea565b811115801561149757505f81115b6114d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114cd90613fd8565b60405180910390fd5b6114df81612e32565b50565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6115126121cc565b73ffffffffffffffffffffffffffffffffffffffff166115306114e2565b73ffffffffffffffffffffffffffffffffffffffff1614611586576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161157d90613c39565b60405180910390fd5b80600b60026101000a81548160ff02191690831515021790555050565b6060600480546115b290613bbf565b80601f01602080910402602001604051908101604052809291908181526020018280546115de90613bbf565b80156116295780601f1061160057610100808354040283529160200191611629565b820191905f5260205f20905b81548152906001019060200180831161160c57829003601f168201915b5050505050905090565b600e5481565b6116416121cc565b73ffffffffffffffffffffffffffffffffffffffff1661165f6114e2565b73ffffffffffffffffffffffffffffffffffffffff16146116b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116ac90613c39565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611743576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161173a90614066565b60405180910390fd5b61174d8282613065565b5050565b5f8060015f61175e6121cc565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905082811015611818576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161180f906140f4565b60405180910390fd5b61182c6118236121cc565b858584036121d3565b600191505092915050565b61183f6121cc565b73ffffffffffffffffffffffffffffffffffffffff1661185d6114e2565b73ffffffffffffffffffffffffffffffffffffffff16146118b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118aa90613c39565b60405180910390fd5b8060125f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508060115f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b5f61197261196b6121cc565b8484612396565b6001905092915050565b6119846121cc565b73ffffffffffffffffffffffffffffffffffffffff166119a26114e2565b73ffffffffffffffffffffffffffffffffffffffff16146119f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119ef90613c39565b60405180910390fd5b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167fa751787977eeb3902e30e1d19ca00c6ad274a1f622c31a206e32366700b0567460405160405180910390a38060065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6013602052805f5260405f205f915054906101000a900460ff1681565b600b60019054906101000a900460ff1681565b611aee6121cc565b73ffffffffffffffffffffffffffffffffffffffff16611b0c6114e2565b73ffffffffffffffffffffffffffffffffffffffff1614611b62576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b5990613c39565b60405180910390fd5b8060115f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df782604051611bfc9190613619565b60405180910390a25050565b611c106121cc565b73ffffffffffffffffffffffffffffffffffffffff16611c2e6114e2565b73ffffffffffffffffffffffffffffffffffffffff1614611c84576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c7b90613c39565b60405180910390fd5b670de0b6b3a76400006103e86005611c9a610bc6565b611ca49190613c84565b611cae9190613cf2565b611cb89190613cf2565b811015611cfa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cf190614182565b60405180910390fd5b670de0b6b3a764000081611d0e9190613c84565b60098190555050565b611d1f6121cc565b73ffffffffffffffffffffffffffffffffffffffff16611d3d6114e2565b73ffffffffffffffffffffffffffffffffffffffff1614611d93576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d8a90613c39565b60405180910390fd5b611dc5307f0000000000000000000000000000000000000000000000000000000000000000611dc0610bc6565b6121d3565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663f305d7194730611e0c306111ea565b5f80611e166114e2565b426040518863ffffffff1660e01b8152600401611e38969594939291906141d9565b60606040518083038185885af1158015611e54573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190611e79919061424c565b5050507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663095ea7b37f00000000000000000000000000000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401611f1792919061429c565b6020604051808303815f875af1158015611f33573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611f5791906142d7565b505f5b8151811015611f9957611f88828281518110611f7957611f78613e71565b5b60200260200101516001611837565b80611f9290613e9e565b9050611f5a565b5050565b60075481565b600a5481565b611fb16121cc565b73ffffffffffffffffffffffffffffffffffffffff16611fcf6114e2565b73ffffffffffffffffffffffffffffffffffffffff1614612025576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161201c90613c39565b60405180910390fd5b670de0b6b3a7640000816120399190613c84565b60088190555050565b600f5481565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b60085481565b6120d86121cc565b73ffffffffffffffffffffffffffffffffffffffff166120f66114e2565b73ffffffffffffffffffffffffffffffffffffffff161461214c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161214390613c39565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036121ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121b190614372565b60405180910390fd5b6121c381612d6f565b50565b60095481565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612241576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161223890614400565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036122af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122a69061448e565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051612389919061370b565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612404576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123fb9061451c565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612472576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612469906145aa565b60405180910390fd5b5f81036124895761248483835f613103565b612d6a565b600b5f9054906101000a900460ff1615612994576124a56114e2565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561251357506124e36114e2565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561254b57505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015612585575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561259e5750600560149054906101000a900460ff16155b156129935743600e54600c546125b49190613e3e565b106125ca57601e601081905550601e600f819055505b600b60019054906101000a900460ff166126b95760115f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680612679575060115f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b6126b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126af90614612565b60405180910390fd5b5b60135f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015612756575060125f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156127fd576007548111156127a0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612797906146a0565b60405180910390fd5b6009546127ac836111ea565b826127b79190613e3e565b11156127f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127ef90614708565b60405180910390fd5b612992565b60135f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16801561289a575060125f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156128e9576007548111156128e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128db90614796565b60405180910390fd5b612991565b60125f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1661299057600954612943836111ea565b8261294e9190613e3e565b111561298f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161298690614708565b60405180910390fd5b5b5b5b5b5b5f61299e306111ea565b90505f60085482101590508080156129c25750600b60029054906101000a900460ff165b80156129db5750600560149054906101000a900460ff16155b8015612a2e575060135f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015612a81575060115f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015612ad4575060115f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15612b6557600360145f4381526020019081526020015f20541015612b64576001600560146101000a81548160ff021916908315150217905550612b16613378565b5f600560146101000a81548160ff021916908315150217905550600160145f4381526020019081526020015f2054612b4e9190613e3e565b60145f4381526020019081526020015f20819055505b5b5f600560149054906101000a900460ff1615905060115f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680612c14575060115f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b15612c1d575f90505b5f8115612d5a5760135f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015612c7b57505f601054115b15612caf57612ca86064612c9a6010548861344590919063ffffffff16565b61345a90919063ffffffff16565b9050612d37565b60135f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015612d0657505f600f54115b15612d3657612d336064612d25600f548861344590919063ffffffff16565b61345a90919063ffffffff16565b90505b5b5f811115612d4b57612d4a873083613103565b5b8085612d5791906147b4565b94505b612d65878787613103565b505050505b505050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f600267ffffffffffffffff811115612e4e57612e4d6139d5565b5b604051908082528060200260200182016040528015612e7c5781602001602082028036833780820191505090505b50905030815f81518110612e9357612e92613e71565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612f36573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612f5a91906147fb565b81600181518110612f6e57612f6d613e71565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612fd3307f0000000000000000000000000000000000000000000000000000000000000000846121d3565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b81526004016130349594939291906148dd565b5f604051808303815f87803b15801561304b575f80fd5b505af115801561305d573d5f803e3d5ffd5b505050505050565b8060135f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603613171576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016131689061451c565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036131df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016131d6906145aa565b60405180910390fd5b6131ea83838361346f565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490508181101561326d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613264906149a5565b60405180910390fd5b8181035f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550815f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546132fb9190613e3e565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161335f919061370b565b60405180910390a3613372848484613474565b50505050565b5f613382306111ea565b90505f808203613393575050613443565b600a548211156133a357600a5491505b5f8290506133b081612e32565b5f47905060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16816040516133f990613f7a565b5f6040518083038185875af1925050503d805f8114613433576040519150601f19603f3d011682016040523d82523d5f602084013e613438565b606091505b505080935050505050505b565b5f81836134529190613c84565b905092915050565b5f81836134679190613cf2565b905092915050565b505050565b505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156134b0578082015181840152602081019050613495565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6134d582613479565b6134df8185613483565b93506134ef818560208601613493565b6134f8816134bb565b840191505092915050565b5f6020820190508181035f83015261351b81846134cb565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61355d82613534565b9050919050565b61356d81613553565b8114613577575f80fd5b50565b5f8135905061358881613564565b92915050565b5f819050919050565b6135a08161358e565b81146135aa575f80fd5b50565b5f813590506135bb81613597565b92915050565b5f80604083850312156135d7576135d661352c565b5b5f6135e48582860161357a565b92505060206135f5858286016135ad565b9150509250929050565b5f8115159050919050565b613613816135ff565b82525050565b5f60208201905061362c5f83018461360a565b92915050565b5f602082840312156136475761364661352c565b5b5f6136548482850161357a565b91505092915050565b5f602082840312156136725761367161352c565b5b5f61367f848285016135ad565b91505092915050565b5f819050919050565b5f6136ab6136a66136a184613534565b613688565b613534565b9050919050565b5f6136bc82613691565b9050919050565b5f6136cd826136b2565b9050919050565b6136dd816136c3565b82525050565b5f6020820190506136f65f8301846136d4565b92915050565b6137058161358e565b82525050565b5f60208201905061371e5f8301846136fc565b92915050565b5f805f6060848603121561373b5761373a61352c565b5b5f6137488682870161357a565b93505060206137598682870161357a565b925050604061376a868287016135ad565b9150509250925092565b61377d81613553565b82525050565b5f6020820190506137965f830184613774565b92915050565b5f60ff82169050919050565b6137b18161379c565b82525050565b5f6020820190506137ca5f8301846137a8565b92915050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f8401126137f1576137f06137d0565b5b8235905067ffffffffffffffff81111561380e5761380d6137d4565b5b60208301915083602082028301111561382a576138296137d8565b5b9250929050565b5f8083601f840112613846576138456137d0565b5b8235905067ffffffffffffffff811115613863576138626137d4565b5b60208301915083602082028301111561387f5761387e6137d8565b5b9250929050565b5f805f806040858703121561389e5761389d61352c565b5b5f85013567ffffffffffffffff8111156138bb576138ba613530565b5b6138c7878288016137dc565b9450945050602085013567ffffffffffffffff8111156138ea576138e9613530565b5b6138f687828801613831565b925092505092959194509250565b5f806040838503121561391a5761391961352c565b5b5f613927858286016135ad565b9250506020613938858286016135ad565b9150509250929050565b61394b816135ff565b8114613955575f80fd5b50565b5f8135905061396681613942565b92915050565b5f80604083850312156139825761398161352c565b5b5f61398f8582860161357a565b92505060206139a085828601613958565b9150509250929050565b5f602082840312156139bf576139be61352c565b5b5f6139cc84828501613958565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b613a0b826134bb565b810181811067ffffffffffffffff82111715613a2a57613a296139d5565b5b80604052505050565b5f613a3c613523565b9050613a488282613a02565b919050565b5f67ffffffffffffffff821115613a6757613a666139d5565b5b602082029050602081019050919050565b5f613a8a613a8584613a4d565b613a33565b90508083825260208201905060208402830185811115613aad57613aac6137d8565b5b835b81811015613ad65780613ac2888261357a565b845260208401935050602081019050613aaf565b5050509392505050565b5f82601f830112613af457613af36137d0565b5b8135613b04848260208601613a78565b91505092915050565b5f60208284031215613b2257613b2161352c565b5b5f82013567ffffffffffffffff811115613b3f57613b3e613530565b5b613b4b84828501613ae0565b91505092915050565b5f8060408385031215613b6a57613b6961352c565b5b5f613b778582860161357a565b9250506020613b888582860161357a565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680613bd657607f821691505b602082108103613be957613be8613b92565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f613c23602083613483565b9150613c2e82613bef565b602082019050919050565b5f6020820190508181035f830152613c5081613c17565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f613c8e8261358e565b9150613c998361358e565b9250828202613ca78161358e565b91508282048414831517613cbe57613cbd613c57565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f613cfc8261358e565b9150613d078361358e565b925082613d1757613d16613cc5565b5b828204905092915050565b7f43616e6e6f7420736574206d61785472616e73616374696f6e416d6f756e74205f8201527f6c6f776572207468616e20302e31250000000000000000000000000000000000602082015250565b5f613d7c602f83613483565b9150613d8782613d22565b604082019050919050565b5f6020820190508181035f830152613da981613d70565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320615f8201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b5f613e0a602883613483565b9150613e1582613db0565b604082019050919050565b5f6020820190508181035f830152613e3781613dfe565b9050919050565b5f613e488261358e565b9150613e538361358e565b9250828201905080821115613e6b57613e6a613c57565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f613ea88261358e565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613eda57613ed9613c57565b5b600182019050919050565b7f45786365656420746865206c696d6974000000000000000000000000000000005f82015250565b5f613f19601083613483565b9150613f2482613ee5565b602082019050919050565b5f6020820190508181035f830152613f4681613f0d565b9050919050565b5f81905092915050565b50565b5f613f655f83613f4d565b9150613f7082613f57565b5f82019050919050565b5f613f8482613f5a565b9150819050919050565b7f57726f6e6720616d6f756e7400000000000000000000000000000000000000005f82015250565b5f613fc2600c83613483565b9150613fcd82613f8e565b602082019050919050565b5f6020820190508181035f830152613fef81613fb6565b9050919050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d205f8201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b5f614050603983613483565b915061405b82613ff6565b604082019050919050565b5f6020820190508181035f83015261407d81614044565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f6140de602583613483565b91506140e982614084565b604082019050919050565b5f6020820190508181035f83015261410b816140d2565b9050919050565b7f43616e6e6f7420736574206d617857616c6c6574206c6f776572207468616e205f8201527f302e352500000000000000000000000000000000000000000000000000000000602082015250565b5f61416c602483613483565b915061417782614112565b604082019050919050565b5f6020820190508181035f83015261419981614160565b9050919050565b5f819050919050565b5f6141c36141be6141b9846141a0565b613688565b61358e565b9050919050565b6141d3816141a9565b82525050565b5f60c0820190506141ec5f830189613774565b6141f960208301886136fc565b61420660408301876141ca565b61421360608301866141ca565b6142206080830185613774565b61422d60a08301846136fc565b979650505050505050565b5f8151905061424681613597565b92915050565b5f805f606084860312156142635761426261352c565b5b5f61427086828701614238565b935050602061428186828701614238565b925050604061429286828701614238565b9150509250925092565b5f6040820190506142af5f830185613774565b6142bc60208301846136fc565b9392505050565b5f815190506142d181613942565b92915050565b5f602082840312156142ec576142eb61352c565b5b5f6142f9848285016142c3565b91505092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f61435c602683613483565b915061436782614302565b604082019050919050565b5f6020820190508181035f83015261438981614350565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6143ea602483613483565b91506143f582614390565b604082019050919050565b5f6020820190508181035f830152614417816143de565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f614478602283613483565b91506144838261441e565b604082019050919050565b5f6020820190508181035f8301526144a58161446c565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f614506602583613483565b9150614511826144ac565b604082019050919050565b5f6020820190508181035f830152614533816144fa565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f614594602383613483565b915061459f8261453a565b604082019050919050565b5f6020820190508181035f8301526145c181614588565b9050919050565b7f54726164696e67206973206e6f74206163746976652e000000000000000000005f82015250565b5f6145fc601683613483565b9150614607826145c8565b602082019050919050565b5f6020820190508181035f830152614629816145f0565b9050919050565b7f427579207472616e7366657220616d6f756e74206578636565647320746865205f8201527f6d61785472616e73616374696f6e416d6f756e742e0000000000000000000000602082015250565b5f61468a603583613483565b915061469582614630565b604082019050919050565b5f6020820190508181035f8301526146b78161467e565b9050919050565b7f4d61782077616c6c6574206578636565646564000000000000000000000000005f82015250565b5f6146f2601383613483565b91506146fd826146be565b602082019050919050565b5f6020820190508181035f83015261471f816146e6565b9050919050565b7f53656c6c207472616e7366657220616d6f756e742065786365656473207468655f8201527f206d61785472616e73616374696f6e416d6f756e742e00000000000000000000602082015250565b5f614780603683613483565b915061478b82614726565b604082019050919050565b5f6020820190508181035f8301526147ad81614774565b9050919050565b5f6147be8261358e565b91506147c98361358e565b92508282039050818111156147e1576147e0613c57565b5b92915050565b5f815190506147f581613564565b92915050565b5f602082840312156148105761480f61352c565b5b5f61481d848285016147e7565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61485881613553565b82525050565b5f614869838361484f565b60208301905092915050565b5f602082019050919050565b5f61488b82614826565b6148958185614830565b93506148a083614840565b805f5b838110156148d05781516148b7888261485e565b97506148c283614875565b9250506001810190506148a3565b5085935050505092915050565b5f60a0820190506148f05f8301886136fc565b6148fd60208301876141ca565b818103604083015261490f8186614881565b905061491e6060830185613774565b61492b60808301846136fc565b9695505050505050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f61498f602683613483565b915061499a82614935565b604082019050919050565b5f6020820190508181035f8301526149bc81614983565b905091905056fea26469706673582212205fdf544b282eb9bfd0d8bd0a76ed2e61d0b93403cb2bb2c030c9833da279688464736f6c63430008150033