[ { "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": false, "internalType": "uint256", "name": "amountAVAX", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "amountBOG", "type": "uint256" } ], "name": "AutoLiquify", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "owner", "type": "address" } ], "name": "OwnershipTransferred", "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" }, { "inputs": [], "name": "BuyMarketingFee", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "BuyliquidityFee", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "DexPair", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "MASK", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_amount", "type": "uint256" } ], "name": "SwapBackAmount", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "Sweep", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "Token1", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "TransferEnabled", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "TransferLiquidityFee", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "TransferMarketingFee", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "WAVAX", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "_isFree", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "_maxTxAmount", "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": "_totalSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "holder", "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": "spender", "type": "address" } ], "name": "approveMax", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "adr", "type": "address" } ], "name": "authorize", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "autoLiquidityReceiver", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "holder", "type": "address" } ], "name": "checkFree", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "decimals", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "stateMutability": "pure", "type": "function" }, { "inputs": [], "name": "getCirculatingSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getFindDexPair", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "accuracy", "type": "uint256" } ], "name": "getLiquidityBacking", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getOwner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_transferAmount", "type": "uint256" } ], "name": "getSwapAmount", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getTotalFee", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "adr", "type": "address" } ], "name": "isAuthorized", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "target", "type": "uint256" }, { "internalType": "uint256", "name": "accuracy", "type": "uint256" } ], "name": "isOverLiquified", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "isOwner", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "liquidityFee", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "marketingFee", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "marketingFeeReceiver", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "pure", "type": "function" }, { "inputs": [], "name": "pair", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "renounceOwnership", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [], "name": "router", "outputs": [ { "internalType": "contract IDEXRouter", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_BuyMarketingFee", "type": "uint256" }, { "internalType": "uint256", "name": "_BuyliquidityFee", "type": "uint256" } ], "name": "setBuyFees", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_autoLiquidityReceiver", "type": "address" }, { "internalType": "address", "name": "_marketingFeeReceiver", "type": "address" } ], "name": "setFeeReceivers", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "holder", "type": "address" } ], "name": "setFree", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "holder", "type": "address" }, { "internalType": "bool", "name": "exempt", "type": "bool" } ], "name": "setIsFeeExempt", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "holder", "type": "address" }, { "internalType": "bool", "name": "exempt", "type": "bool" } ], "name": "setIsTxLimitExempt", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "setMaxWallet", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_marketingFee", "type": "uint256" }, { "internalType": "uint256", "name": "_liquidityFee", "type": "uint256" } ], "name": "setSellFees", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bool", "name": "_enabled", "type": "bool" }, { "internalType": "uint256", "name": "_maxPercTransfer", "type": "uint256" }, { "internalType": "uint256", "name": "_max", "type": "uint256" } ], "name": "setSwapBackSettings", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_target", "type": "uint256" }, { "internalType": "uint256", "name": "_denominator", "type": "uint256" } ], "name": "setTargetLiquidity", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_TransferMarketingFee", "type": "uint256" }, { "internalType": "uint256", "name": "_TransferLiquidityFee", "type": "uint256" } ], "name": "setTransFees", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "setTransferEnabled", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "setTxLimit", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "swapEnabled", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "swapPercentMax", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "swapThresholdMax", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "sweepToken", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "pure", "type": "function" }, { "inputs": [], "name": "totalBuyFee", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalFee", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalTransferFee", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "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 payable", "name": "adr", "type": "address" } ], "name": "transferOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "holder", "type": "address" } ], "name": "unSetFree", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "adr", "type": "address" } ], "name": "unauthorize", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "stateMutability": "payable", "type": "receive" } ]
608060405273b31f66aa3c1e785363f0875a1b74e27b85fd66c7600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073b31f66aa3c1e785363f0875a1b74e27b85fd66c7600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061dead600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061dead600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507360ae616a2155ee3d9a68541ba4544862310933d4600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506006600a6200021d919062000cd9565b633b9aca006200022e919062000d2a565b60095562000268600162000254603260095462000a1b60201b6200267c1790919060201c565b62000a3360201b620026921790919060201c565b600a55620002a260016200028e603260095462000a1b60201b6200267c1790919060201c565b62000a3360201b620026921790919060201c565b600b556001601260006101000a81548160ff02191690831515021790555060006013556000601455600060155560006016556000601755600060185560006019556000601a556000601b55612710601c5573b7b19b9e69a6301656f2532b731d6e2ac542b8e7601d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073b7b19b9e69a6301656f2532b731d6e2ac542b8e7601e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000601f5560646020556001602260146101000a81548160ff02191690831515021790555060646023556032600954620003d8919062000dba565b602455348015620003e857600080fd5b5033806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16602160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156200054e57600080fd5b505afa15801562000563573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000589919062000e5c565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16306040518363ffffffff1660e01b8152600401620005e792919062000e9f565b602060405180830381600087803b1580156200060257600080fd5b505af115801562000617573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200063d919062000e5c565b602260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600954600d60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166373b295c26040518163ffffffff1660e01b815260040160206040518083038186803b1580156200078b57600080fd5b505afa158015620007a0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620007c6919062000e5c565b600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600e60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600f60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555033601d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506200092d600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660095462000a4b60201b60201c565b5062000964602260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660095462000a4b60201b60201c565b50600954600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60095460405162000a0d919062000edd565b60405180910390a362000f57565b6000818362000a2b919062000dba565b905092915050565b6000818362000a43919062000efa565b905092915050565b600081600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405162000b2d919062000edd565b60405180910390a36001905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111562000bcd5780860481111562000ba55762000ba462000b3f565b5b600185161562000bb55780820291505b808102905062000bc58562000b6e565b945062000b85565b94509492505050565b60008262000be8576001905062000cbb565b8162000bf8576000905062000cbb565b816001811462000c11576002811462000c1c5762000c52565b600191505062000cbb565b60ff84111562000c315762000c3062000b3f565b5b8360020a91508482111562000c4b5762000c4a62000b3f565b5b5062000cbb565b5060208310610133831016604e8410600b841016171562000c8c5782820a90508381111562000c865762000c8562000b3f565b5b62000cbb565b62000c9b848484600162000b7b565b9250905081840481111562000cb55762000cb462000b3f565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b600062000ce68262000cc2565b915062000cf38362000ccc565b925062000d227fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000bd6565b905092915050565b600062000d378262000cc2565b915062000d448362000cc2565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000d805762000d7f62000b3f565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600062000dc78262000cc2565b915062000dd48362000cc2565b92508262000de75762000de662000d8b565b5b828204905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000e248262000df7565b9050919050565b62000e368162000e17565b811462000e4257600080fd5b50565b60008151905062000e568162000e2b565b92915050565b60006020828403121562000e755762000e7462000df2565b5b600062000e858482850162000e45565b91505092915050565b62000e998162000e17565b82525050565b600060408201905062000eb6600083018562000e8e565b62000ec5602083018462000e8e565b9392505050565b62000ed78162000cc2565b82525050565b600060208201905062000ef4600083018462000ecc565b92915050565b600062000f078262000cc2565b915062000f148362000cc2565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111562000f4c5762000f4b62000b3f565b5b828201905092915050565b6145158062000f676000396000f3fe6080604052600436106103d25760003560e01c806372460e7f116101fd578063b2d8f20811610118578063e91f214e116100ab578063f24da8921161007a578063f24da89214610e53578063f2fde38b14610e7c578063f84ba65d14610ea5578063f887ea4014610ece578063fe9fbb8014610ef9576103d9565b8063e91f214e14610da9578063e96fada214610dd4578063ea19e4a814610dff578063f0b37c0414610e2a576103d9565b8063d0889358116100e7578063d088935814610cdd578063d51ed1c814610d06578063db2d251014610d43578063dd62ed3e14610d6c576103d9565b8063b2d8f20814610c35578063b6a5d7de14610c5e578063c9e8a11e14610c87578063ca33e64c14610cb2576103d9565b80638fabfda9116101905780639fd8234e1161015f5780639fd8234e14610b7b578063a4b45c0014610ba4578063a8aa1b3114610bcd578063a9059cbb14610bf8576103d9565b80638fabfda914610acf57806395d89b4114610afa57806396a8797e14610b2557806398118cb414610b50576103d9565b80637d1db4a5116101cc5780637d1db4a514610a2557806382247ec014610a50578063893d20e814610a7b57806389ef69f614610aa6576103d9565b806372460e7f1461097957806373b295c2146109a457806375fce015146109cf5780637ae316d0146109fa576103d9565b80633eaaf86b116102ed5780635d0044ca116102805780636ddd17131161024f5780636ddd1713146108f05780637088fb7f1461091b57806370a0823114610932578063715018a61461096f576103d9565b80635d0044ca14610848578063610d628314610871578063658d4b7f1461089c5780636b67c4df146108c5576103d9565b806355555210116102bc578063555552101461078c578063571ac8b0146107b757806359b107b9146107f45780635c85974f1461081f576103d9565b80633eaaf86b1461070857806342fcef561461073357806349f16ad11461075e578063532cce1814610775576103d9565b8063201e7991116103655780632f54bf6e116103345780632f54bf6e1461063a578063313ce567146106775780633425c001146106a25780633c997e25146106cb576103d9565b8063201e79911461056c57806323b872dd14610595578063296020e7146105d25780632b112e491461060f576103d9565b80631161ae39116103a15780631161ae39146104ae57806318160ddd146104eb5780631afc2b3a146105165780631df4ccfc14610541576103d9565b806306fdde03146103de57806307c89fe814610409578063095ea7b3146104465780630e22493214610483576103d9565b366103d957005b600080fd5b3480156103ea57600080fd5b506103f3610f36565b60405161040091906139b8565b60405180910390f35b34801561041557600080fd5b50610430600480360381019061042b9190613a3d565b610f73565b60405161043d9190613a85565b60405180910390f35b34801561045257600080fd5b5061046d60048036038101906104689190613ad6565b611011565b60405161047a9190613a85565b60405180910390f35b34801561048f57600080fd5b50610498611103565b6040516104a59190613b25565b60405180910390f35b3480156104ba57600080fd5b506104d560048036038101906104d09190613b40565b611109565b6040516104e29190613a85565b60405180910390f35b3480156104f757600080fd5b5061050061111e565b60405161050d9190613b25565b60405180910390f35b34801561052257600080fd5b5061052b611128565b6040516105389190613b25565b60405180910390f35b34801561054d57600080fd5b5061055661112e565b6040516105639190613b25565b60405180910390f35b34801561057857600080fd5b50610593600480360381019061058e9190613b40565b611134565b005b3480156105a157600080fd5b506105bc60048036038101906105b79190613b80565b61118e565b6040516105c99190613a85565b60405180910390f35b3480156105de57600080fd5b506105f960048036038101906105f49190613a3d565b611370565b6040516106069190613a85565b60405180910390f35b34801561061b57600080fd5b50610624611390565b6040516106319190613b25565b60405180910390f35b34801561064657600080fd5b50610661600480360381019061065c9190613a3d565b611412565b60405161066e9190613a85565b60405180910390f35b34801561068357600080fd5b5061068c61146b565b6040516106999190613bef565b60405180910390f35b3480156106ae57600080fd5b506106c960048036038101906106c49190613a3d565b611474565b005b3480156106d757600080fd5b506106f260048036038101906106ed9190613c0a565b611517565b6040516106ff9190613b25565b60405180910390f35b34801561071457600080fd5b5061071d61155f565b60405161072a9190613b25565b60405180910390f35b34801561073f57600080fd5b50610748611565565b6040516107559190613c46565b60405180910390f35b34801561076a57600080fd5b5061077361158f565b005b34801561078157600080fd5b5061078a6115f4565b005b34801561079857600080fd5b506107a1611760565b6040516107ae9190613b25565b60405180910390f35b3480156107c357600080fd5b506107de60048036038101906107d99190613a3d565b611766565b6040516107eb9190613a85565b60405180910390f35b34801561080057600080fd5b5061080961177b565b6040516108169190613b25565b60405180910390f35b34801561082b57600080fd5b5061084660048036038101906108419190613c0a565b611781565b005b34801561085457600080fd5b5061086f600480360381019061086a9190613c0a565b6117ef565b005b34801561087d57600080fd5b5061088661185d565b6040516108939190613b25565b60405180910390f35b3480156108a857600080fd5b506108c360048036038101906108be9190613c8d565b611863565b005b3480156108d157600080fd5b506108da611906565b6040516108e79190613b25565b60405180910390f35b3480156108fc57600080fd5b5061090561190c565b6040516109129190613a85565b60405180910390f35b34801561092757600080fd5b5061093061191f565b005b34801561093e57600080fd5b5061095960048036038101906109549190613a3d565b6119b6565b6040516109669190613b25565b60405180910390f35b6109776119ff565b005b34801561098557600080fd5b5061098e611a74565b60405161099b9190613c46565b60405180910390f35b3480156109b057600080fd5b506109b9611a9a565b6040516109c69190613c46565b60405180910390f35b3480156109db57600080fd5b506109e4611ac0565b6040516109f19190613a85565b60405180910390f35b348015610a0657600080fd5b50610a0f611ad3565b604051610a1c9190613b25565b60405180910390f35b348015610a3157600080fd5b50610a3a611add565b604051610a479190613b25565b60405180910390f35b348015610a5c57600080fd5b50610a65611ae3565b604051610a729190613b25565b60405180910390f35b348015610a8757600080fd5b50610a90611ae9565b604051610a9d9190613c46565b60405180910390f35b348015610ab257600080fd5b50610acd6004803603810190610ac89190613a3d565b611b12565b005b348015610adb57600080fd5b50610ae4611bb5565b604051610af19190613b25565b60405180910390f35b348015610b0657600080fd5b50610b0f611bbb565b604051610b1c91906139b8565b60405180910390f35b348015610b3157600080fd5b50610b3a611bf8565b604051610b479190613c46565b60405180910390f35b348015610b5c57600080fd5b50610b65611c1e565b604051610b729190613b25565b60405180910390f35b348015610b8757600080fd5b50610ba26004803603810190610b9d9190613b40565b611c24565b005b348015610bb057600080fd5b50610bcb6004803603810190610bc69190613ccd565b611cb7565b005b348015610bd957600080fd5b50610be2611d85565b604051610bef9190613c46565b60405180910390f35b348015610c0457600080fd5b50610c1f6004803603810190610c1a9190613ad6565b611dab565b604051610c2c9190613a85565b60405180910390f35b348015610c4157600080fd5b50610c5c6004803603810190610c579190613b40565b611dc0565b005b348015610c6a57600080fd5b50610c856004803603810190610c809190613a3d565b611e53565b005b348015610c9357600080fd5b50610c9c611ef5565b604051610ca99190613b25565b60405180910390f35b348015610cbe57600080fd5b50610cc7611efb565b604051610cd49190613c46565b60405180910390f35b348015610ce957600080fd5b50610d046004803603810190610cff9190613d0d565b611f21565b005b348015610d1257600080fd5b50610d2d6004803603810190610d289190613c0a565b611f96565b604051610d3a9190613b25565b60405180910390f35b348015610d4f57600080fd5b50610d6a6004803603810190610d659190613b40565b612008565b005b348015610d7857600080fd5b50610d936004803603810190610d8e9190613ccd565b61209b565b604051610da09190613b25565b60405180910390f35b348015610db557600080fd5b50610dbe612122565b604051610dcb9190613b25565b60405180910390f35b348015610de057600080fd5b50610de9612138565b604051610df69190613c46565b60405180910390f35b348015610e0b57600080fd5b50610e1461215e565b604051610e219190613b25565b60405180910390f35b348015610e3657600080fd5b50610e516004803603810190610e4c9190613a3d565b612164565b005b348015610e5f57600080fd5b50610e7a6004803603810190610e759190613c0a565b612207565b005b348015610e8857600080fd5b50610ea36004803603810190610e9e9190613d9e565b612444565b005b348015610eb157600080fd5b50610ecc6004803603810190610ec79190613c8d565b61255d565b005b348015610eda57600080fd5b50610ee3612600565b604051610ef09190613e2a565b60405180910390f35b348015610f0557600080fd5b50610f206004803603810190610f1b9190613a3d565b612626565b604051610f2d9190613a85565b60405180910390f35b60606040518060400160405280600981526020017f524544444f5249544f0000000000000000000000000000000000000000000000815250905090565b6000610f7e33611412565b610fbd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fb490613e91565b60405180910390fd5b601160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600081600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516110f19190613b25565b60405180910390a36001905092915050565b601b5481565b60008261111583611f96565b11905092915050565b6000600954905090565b60245481565b60155481565b61113d33611412565b61117c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161117390613e91565b60405180910390fd5b81601f81905550806020819055505050565b6000600954600d60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541461135c576112db826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600d60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126a89092919063ffffffff16565b600d60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6113678484846126fd565b90509392505050565b60116020528060005260406000206000915054906101000a900460ff1681565b600061140d6113c0600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166119b6565b6113ff6113ee600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166119b6565b600954612b7090919063ffffffff16565b612b7090919063ffffffff16565b905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b60006006905090565b61147d33611412565b6114bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114b390613e91565b60405180910390fd5b6000601160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600080611542606461153460235486612b8690919063ffffffff16565b61267c90919063ffffffff16565b905060245481116115535780611557565b6024545b915050919050565b60095481565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b61159833611412565b6115d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115ce90613e91565b60405180910390fd5b6001601260006101000a81548160ff021916908315150217905550565b6115fd33611412565b61163c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161163390613e91565b60405180910390fd5b600030905060008173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161167c9190613c46565b60206040518083038186803b15801561169457600080fd5b505afa1580156116a8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116cc9190613ec6565b90508173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b8152600401611709929190613ef3565b602060405180830381600087803b15801561172357600080fd5b505af1158015611737573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061175b9190613f31565b505050565b60195481565b600061177482600954611011565b9050919050565b60185481565b61178a33611412565b6117c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117c090613e91565b60405180910390fd5b6103e86009546117d99190613fbc565b8110156117e557600080fd5b80600a8190555050565b6117f833611412565b611837576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161182e90613e91565b60405180910390fd5b6103e86009546118479190613fbc565b81101561185357600080fd5b80600b8190555050565b601a5481565b61186c33611412565b6118ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118a290613e91565b60405180910390fd5b80600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60135481565b602260149054906101000a900460ff1681565b61192833611412565b611967576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161195e90613e91565b60405180910390fd5b60004790503373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156119b2573d6000803e3d6000fd5b5050565b6000600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b611a0833611412565b611a47576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a3e90613e91565b60405180910390fd5b611a72600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16612444565b565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601260009054906101000a900460ff1681565b6000601554905090565b600a5481565b600b5481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b611b1b33611412565b611b5a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b5190613e91565b60405180910390fd5b6001601160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60165481565b60606040518060400160405280600381526020017f5245440000000000000000000000000000000000000000000000000000000000815250905090565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60145481565b611c2d33611412565b611c6c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c6390613e91565b60405180910390fd5b8160138190555080601481905550611c9160135460145461269290919063ffffffff16565b6015819055506001601c54611ca69190613fbc565b60155410611cb357600080fd5b5050565b611cc033611412565b611cff576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cf690613e91565b60405180910390fd5b81601d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b602260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000611db83384846126fd565b905092915050565b611dc933611412565b611e08576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dff90613e91565b60405180910390fd5b8160168190555080601781905550611e2d60165460175461269290919063ffffffff16565b6018819055506001601c54611e429190613fbc565b60185410611e4f57600080fd5b5050565b611e5c33611412565b611e9b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e9290613e91565b60405180910390fd5b60018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60235481565b601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611f2a33611412565b611f69576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f6090613e91565b60405180910390fd5b82602260146101000a81548160ff0219169083151502179055508160238190555080602481905550505050565b6000612001611fa3611390565b611ff3611fe46002611fd6602260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166119b6565b612b8690919063ffffffff16565b85612b8690919063ffffffff16565b61267c90919063ffffffff16565b9050919050565b61201133611412565b612050576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161204790613e91565b60405180910390fd5b8160198190555080601a81905550612075601954601a5461269290919063ffffffff16565b601b819055506001601c5461208a9190613fbc565b601b541061209757600080fd5b5050565b6000600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6fffffffffffffffffffffffffffffffff801681565b601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60175481565b61216d33611412565b6121ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121a390613e91565b60405180910390fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b61221033611412565b61224f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161224690613e91565b60405180910390fd5b80600c60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054106124415760008190506000600267ffffffffffffffff8111156122b7576122b6613fed565b5b6040519080825280602002602001820160405280156122e55781602001602082028036833780820191505090505b50905030816000815181106122fd576122fc61401c565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168160018151811061236e5761236d61401c565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663762b15628360008430426040518663ffffffff1660e01b815260040161240c959493929190614144565b600060405180830381600087803b15801561242657600080fd5b505af115801561243a573d6000803e3d6000fd5b5050505050505b50565b61244d33611412565b61248c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161248390613e91565b60405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861638160405161255291906141bf565b60405180910390a150565b61256633611412565b6125a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161259c90613e91565b60405180910390fd5b80600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000818361268a9190613fbc565b905092915050565b600081836126a091906141da565b905092915050565b60008383111582906126f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126e791906139b8565b60405180910390fd5b5082840390509392505050565b6000601260009054906101000a900460ff168061271f575061271e33612626565b5b8061272f575061272e84612626565b5b61276e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127659061427c565b60405180910390fd5b6000602560009054906101000a900460ff161561279857612790858585612b9c565b915050612b69565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000602260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16148061284857508173ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16145b90506128548786612d0a565b801580156128ac5750601160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561294057600b5485600c60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546128ff91906141da565b1061293f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612936906142e8565b60405180910390fd5b5b6129c9856040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600c60008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126a89092919063ffffffff16565b600c60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000612a1788612da7565b612a215785612a2d565b612a2c888888612dfe565b5b90508086612a3b9190614308565b93508115612a66576000841115612a6557612a5584613361565b15612a6457612a6384613438565b5b5b5b612ab881600c60008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461269290919063ffffffff16565b600c60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612b589190613b25565b60405180910390a360019450505050505b9392505050565b60008183612b7e9190614308565b905092915050565b60008183612b94919061433c565b905092915050565b6000612c27826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600c60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126a89092919063ffffffff16565b600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612cbc82600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461269290919063ffffffff16565b600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600190509392505050565b600a5481111580612d645750600f60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b612da3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d9a906143e2565b60405180910390fd5b5050565b6000600e60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16159050919050565b600080612e2a601c54612e1c60185486612b8690919063ffffffff16565b61267c90919063ffffffff16565b90506000612e57601c54612e4960155487612b8690919063ffffffff16565b61267c90919063ffffffff16565b90506000612e84601c54612e76601b5488612b8690919063ffffffff16565b61267c90919063ffffffff16565b90506000602260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff161480612f315750600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff16145b90506000602260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff161480612fde5750600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff16145b9050612fe9896138db565b80156131125761304185600c60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461269290919063ffffffff16565b600c60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060008511156130f3573073ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef876040516130ea9190613b25565b60405180910390a35b6131068588612b7090919063ffffffff16565b9550505050505061335a565b811561323b5761316a84600c60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461269290919063ffffffff16565b600c60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600084111561321c573073ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040516132139190613b25565b60405180910390a35b61322f8488612b7090919063ffffffff16565b9550505050505061335a565b61328d83600c60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461269290919063ffffffff16565b600c60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600083111561333f573073ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516133369190613b25565b60405180910390a35b6133528388612b7090919063ffffffff16565b955050505050505b9392505050565b6000602260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141580156133ce5750602560009054906101000a900460ff16155b80156133e65750602260149054906101000a900460ff165b8015613431575081600c60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b9050919050565b6001602560006101000a81548160ff021916908315150217905550600061345e82611517565b90506000613470601f54602054611109565b61347c5760145461347f565b60005b905060006134bd60026134af6015546134a18688612b8690919063ffffffff16565b61267c90919063ffffffff16565b61267c90919063ffffffff16565b905060006134d48285612b7090919063ffffffff16565b90506000600267ffffffffffffffff8111156134f3576134f2613fed565b5b6040519080825280602002602001820160405280156135215781602001602082028036833780820191505090505b50905030816000815181106135395761353861401c565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16816001815181106135aa576135a961401c565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000479050602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663762b15628460008530426040518663ffffffff1660e01b815260040161364d959493929190614144565b600060405180830381600087803b15801561366757600080fd5b505af115801561367b573d6000803e3d6000fd5b5050505060006136948247612b7090919063ffffffff16565b905060006136c06136af60028961267c90919063ffffffff16565b601554612b7090919063ffffffff16565b905060006136fc60026136ee846136e08c88612b8690919063ffffffff16565b61267c90919063ffffffff16565b61267c90919063ffffffff16565b905060006137278361371960135487612b8690919063ffffffff16565b61267c90919063ffffffff16565b9050601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015613791573d6000803e3d6000fd5b5060008811156138b357602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f91b3f7283308b600080601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b815260040161382496959493929190614402565b6060604051808303818588803b15801561383d57600080fd5b505af1158015613851573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906138769190614463565b5050507f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450682896040516138aa9291906144b6565b60405180910390a15b505050505050505050506000602560006101000a81548160ff02191690831515021790555050565b80600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561395957808201518184015260208101905061393e565b83811115613968576000848401525b50505050565b6000601f19601f8301169050919050565b600061398a8261391f565b613994818561392a565b93506139a481856020860161393b565b6139ad8161396e565b840191505092915050565b600060208201905081810360008301526139d2818461397f565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000613a0a826139df565b9050919050565b613a1a816139ff565b8114613a2557600080fd5b50565b600081359050613a3781613a11565b92915050565b600060208284031215613a5357613a526139da565b5b6000613a6184828501613a28565b91505092915050565b60008115159050919050565b613a7f81613a6a565b82525050565b6000602082019050613a9a6000830184613a76565b92915050565b6000819050919050565b613ab381613aa0565b8114613abe57600080fd5b50565b600081359050613ad081613aaa565b92915050565b60008060408385031215613aed57613aec6139da565b5b6000613afb85828601613a28565b9250506020613b0c85828601613ac1565b9150509250929050565b613b1f81613aa0565b82525050565b6000602082019050613b3a6000830184613b16565b92915050565b60008060408385031215613b5757613b566139da565b5b6000613b6585828601613ac1565b9250506020613b7685828601613ac1565b9150509250929050565b600080600060608486031215613b9957613b986139da565b5b6000613ba786828701613a28565b9350506020613bb886828701613a28565b9250506040613bc986828701613ac1565b9150509250925092565b600060ff82169050919050565b613be981613bd3565b82525050565b6000602082019050613c046000830184613be0565b92915050565b600060208284031215613c2057613c1f6139da565b5b6000613c2e84828501613ac1565b91505092915050565b613c40816139ff565b82525050565b6000602082019050613c5b6000830184613c37565b92915050565b613c6a81613a6a565b8114613c7557600080fd5b50565b600081359050613c8781613c61565b92915050565b60008060408385031215613ca457613ca36139da565b5b6000613cb285828601613a28565b9250506020613cc385828601613c78565b9150509250929050565b60008060408385031215613ce457613ce36139da565b5b6000613cf285828601613a28565b9250506020613d0385828601613a28565b9150509250929050565b600080600060608486031215613d2657613d256139da565b5b6000613d3486828701613c78565b9350506020613d4586828701613ac1565b9250506040613d5686828701613ac1565b9150509250925092565b6000613d6b826139df565b9050919050565b613d7b81613d60565b8114613d8657600080fd5b50565b600081359050613d9881613d72565b92915050565b600060208284031215613db457613db36139da565b5b6000613dc284828501613d89565b91505092915050565b6000819050919050565b6000613df0613deb613de6846139df565b613dcb565b6139df565b9050919050565b6000613e0282613dd5565b9050919050565b6000613e1482613df7565b9050919050565b613e2481613e09565b82525050565b6000602082019050613e3f6000830184613e1b565b92915050565b7f214f574e45520000000000000000000000000000000000000000000000000000600082015250565b6000613e7b60068361392a565b9150613e8682613e45565b602082019050919050565b60006020820190508181036000830152613eaa81613e6e565b9050919050565b600081519050613ec081613aaa565b92915050565b600060208284031215613edc57613edb6139da565b5b6000613eea84828501613eb1565b91505092915050565b6000604082019050613f086000830185613c37565b613f156020830184613b16565b9392505050565b600081519050613f2b81613c61565b92915050565b600060208284031215613f4757613f466139da565b5b6000613f5584828501613f1c565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613fc782613aa0565b9150613fd283613aa0565b925082613fe257613fe1613f5e565b5b828204905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000819050919050565b600061407061406b6140668461404b565b613dcb565b613aa0565b9050919050565b61408081614055565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6140bb816139ff565b82525050565b60006140cd83836140b2565b60208301905092915050565b6000602082019050919050565b60006140f182614086565b6140fb8185614091565b9350614106836140a2565b8060005b8381101561413757815161411e88826140c1565b9750614129836140d9565b92505060018101905061410a565b5085935050505092915050565b600060a0820190506141596000830188613b16565b6141666020830187614077565b818103604083015261417881866140e6565b90506141876060830185613c37565b6141946080830184613b16565b9695505050505050565b60006141a982613df7565b9050919050565b6141b98161419e565b82525050565b60006020820190506141d460008301846141b0565b92915050565b60006141e582613aa0565b91506141f083613aa0565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561422557614224613f8d565b5b828201905092915050565b7f5472616e7366657273206172652044697361626c656400000000000000000000600082015250565b600061426660168361392a565b915061427182614230565b602082019050919050565b6000602082019050818103600083015261429581614259565b9050919050565b7f4d61782077616c6c657420686173206265656e20747269676765726564000000600082015250565b60006142d2601d8361392a565b91506142dd8261429c565b602082019050919050565b60006020820190508181036000830152614301816142c5565b9050919050565b600061431382613aa0565b915061431e83613aa0565b92508282101561433157614330613f8d565b5b828203905092915050565b600061434782613aa0565b915061435283613aa0565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561438b5761438a613f8d565b5b828202905092915050565b7f5458204c696d6974204578636565646564000000000000000000000000000000600082015250565b60006143cc60118361392a565b91506143d782614396565b602082019050919050565b600060208201905081810360008301526143fb816143bf565b9050919050565b600060c0820190506144176000830189613c37565b6144246020830188613b16565b6144316040830187614077565b61443e6060830186614077565b61444b6080830185613c37565b61445860a0830184613b16565b979650505050505050565b60008060006060848603121561447c5761447b6139da565b5b600061448a86828701613eb1565b935050602061449b86828701613eb1565b92505060406144ac86828701613eb1565b9150509250925092565b60006040820190506144cb6000830185613b16565b6144d86020830184613b16565b939250505056fea2646970667358221220c0341acd2e3ea360759ce12a9cfdd34704277a549a3496a949be0cd56e40571264736f6c63430008090033