[ { "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": "amountETH", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "amountBOG", "type": "uint256" } ], "name": "AutoLiquify", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "duration", "type": "uint256" } ], "name": "BuybackMultiplierActive", "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": "MASK", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "OperationsFeeReceiver", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "Sweep", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "WETH", "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": [ { "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": "autoBuybackEnabled", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "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": "clearBuybackMultiplier", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "decimals", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "stateMutability": "pure", "type": "function" }, { "inputs": [], "name": "distributorAddress", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getCirculatingSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "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": "getMultipliedFee", "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": "bool", "name": "selling", "type": "bool" } ], "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": "launch", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "launchedAt", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "launchedAtTimestamp", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "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": "router", "outputs": [ { "internalType": "contract IDEXRouter", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bool", "name": "_enabled", "type": "bool" }, { "internalType": "uint256", "name": "_cap", "type": "uint256" }, { "internalType": "uint256", "name": "_amount", "type": "uint256" }, { "internalType": "uint256", "name": "_period", "type": "uint256" } ], "name": "setAutoBuybackSettings", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "numerator", "type": "uint256" }, { "internalType": "uint256", "name": "denominator", "type": "uint256" }, { "internalType": "uint256", "name": "length", "type": "uint256" } ], "name": "setBuybackMultiplierSettings", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_minPeriod", "type": "uint256" }, { "internalType": "uint256", "name": "_minDistribution", "type": "uint256" } ], "name": "setDistributionCriteria", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "gas", "type": "uint256" } ], "name": "setDistributorSettings", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_autoLiquidityReceiver", "type": "address" }, { "internalType": "address", "name": "_OperationsFeeReceiver", "type": "address" } ], "name": "setFeeReceivers", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_liquidityFee", "type": "uint256" }, { "internalType": "uint256", "name": "_buybackFee", "type": "uint256" }, { "internalType": "uint256", "name": "_reflectionFee", "type": "uint256" }, { "internalType": "uint256", "name": "_OperationsFee", "type": "uint256" }, { "internalType": "uint256", "name": "_feeDenominator", "type": "uint256" } ], "name": "setFees", "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": "setIsDividendExempt", "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": "bool", "name": "_enabled", "type": "bool" }, { "internalType": "uint256", "name": "_amount", "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": "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": "swapThreshold", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "pure", "type": "function" }, { "inputs": [], "name": "totalSupply", "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": "uint256", "name": "amount", "type": "uint256" }, { "internalType": "bool", "name": "triggerBuybackMultiplier", "type": "bool" } ], "name": "triggerZeusBuyback", "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" } ]
608060405273605c79b5c60a9d4675c87146d57d275624335381600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073deaddeaddeaddeaddeaddeaddeaddeaddead0000600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061dead600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061dead600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506006600a62000186919062000e19565b66038d7ea4c680006200019a919062000f56565b600755620001ba606460075462000b9a60201b620025421790919060201c565b600855620001da602860075462000b9a60201b620025421790919060201c565b60095561012c60105560006011556101f46012556101f460135561051460145561271060155561dead601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073ce6b31313389cce430482e28b5cd8f3d4d06a475601760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600a601855606460195560c8601e556064601f556107086021556000602260006101000a81548160ff0219169083151502179055506207a120602b556001602c60006101000a81548160ff02191690831515021790555061138860075462000301919062000d86565b602d553480156200031157600080fd5b5033806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505060007381b9fa50d5f5155ee17817c21702c3ae4780ad09905080601a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156200046e57600080fd5b505afa15801562000483573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004a9919062000ccb565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16306040518363ffffffff1660e01b81526004016200050792919062000d3c565b602060405180830381600087803b1580156200052257600080fd5b505af115801562000537573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200055d919062000ccb565b601b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600754600b60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015620006ab57600080fd5b505afa158015620006c0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620006e6919062000ccb565b600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080604051620007359062000ca6565b62000741919062000d1f565b604051809103906000f0801580156200075e573d6000803e3d6000fd5b50602960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550602960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16602a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600e6000601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600e60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600e6000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001602360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555033601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555062000aab8160075462000bb260201b60201c565b5062000ae2601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660075462000bb260201b60201c565b50600754600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60075460405162000b8b919062000d69565b60405180910390a3506200108c565b6000818362000baa919062000d86565b905092915050565b600081600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405162000c94919062000d69565b60405180910390a36001905092915050565b611ca5806200583f83390190565b60008151905062000cc58162001072565b92915050565b60006020828403121562000ce45762000ce362001060565b5b600062000cf48482850162000cb4565b91505092915050565b62000d088162000fb7565b82525050565b62000d198162000feb565b82525050565b600060208201905062000d36600083018462000cfd565b92915050565b600060408201905062000d53600083018562000cfd565b62000d62602083018462000cfd565b9392505050565b600060208201905062000d80600083018462000d0e565b92915050565b600062000d938262000feb565b915062000da08362000feb565b92508262000db35762000db262001031565b5b828204905092915050565b6000808291508390505b600185111562000e105780860481111562000de85762000de762001002565b5b600185161562000df85780820291505b808102905062000e088562001065565b945062000dc8565b94509492505050565b600062000e268262000feb565b915062000e338362000ff5565b925062000e627fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000e6a565b905092915050565b60008262000e7c576001905062000f4f565b8162000e8c576000905062000f4f565b816001811462000ea5576002811462000eb05762000ee6565b600191505062000f4f565b60ff84111562000ec55762000ec462001002565b5b8360020a91508482111562000edf5762000ede62001002565b5b5062000f4f565b5060208310610133831016604e8410600b841016171562000f205782820a90508381111562000f1a5762000f1962001002565b5b62000f4f565b62000f2f848484600162000dbe565b9250905081840481111562000f495762000f4862001002565b5b81810290505b9392505050565b600062000f638262000feb565b915062000f708362000feb565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000fac5762000fab62001002565b5b828202905092915050565b600062000fc48262000fcb565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600080fd5b60008160011c9050919050565b6200107d8162000fb7565b81146200108957600080fd5b50565b6147a3806200109c6000396000f3fe60806040526004361061036f5760003560e01c8063893d20e8116101c6578063ca33e64c116100f7578063f1f3bca311610095578063f708a64f1161006f578063f708a64f14610cb1578063f84ba65d14610cda578063f887ea4014610d03578063fe9fbb8014610d2e57610376565b8063f1f3bca314610c22578063f2fde38b14610c5f578063f5cfec0a14610c8857610376565b8063dd62ed3e116100d1578063dd62ed3e14610b68578063df20fd4914610ba5578063e91f214e14610bce578063f0b37c0414610bf957610376565b8063ca33e64c14610ad5578063d51ed1c814610b00578063d806d12f14610b3d57610376565b8063a9059cbb11610164578063b210b06d1161013e578063b210b06d14610a3f578063b6a5d7de14610a56578063bf56b37114610a7f578063c6d2577d14610aaa57610376565b8063a9059cbb146109ac578063ad5c4648146109e9578063afad440414610a1457610376565b80639d1944f5116101a05780639d1944f514610904578063a4b45c001461092d578063a51af4c514610956578063a8aa1b311461098157610376565b8063893d20e81461088557806389ef69f6146108b057806395d89b41146108d957610376565b80632d48e896116102a05780635d0044ca1161023e5780637088fb7f116102185780637088fb7f146107db57806370a08231146107f25780637d1db4a51461082f57806382247ec01461085a57610376565b80635d0044ca1461075e578063658d4b7f146107875780636ddd1713146107b057610376565b80633425c0011161027a5780633425c001146106a45780633bb8a8d4146106cd578063571ac8b0146106f85780635c85974f1461073557610376565b80632d48e896146106135780632f54bf6e1461063c578063313ce5671461067957610376565b80631161ae391161030d5780632375ce40116102e75780632375ce401461054557806323b872dd1461056e578063296020e7146105ab5780632b112e49146105e857610376565b80631161ae39146104b457806318160ddd146104f1578063201e79911461051c57610376565b806304a66b481161034957806304a66b48146103e657806306fdde031461040f57806307c89fe81461043a578063095ea7b31461047757610376565b806301339c211461037b5780630445b66714610392578063048c7baf146103bd57610376565b3661037657005b600080fd5b34801561038757600080fd5b50610390610d6b565b005b34801561039e57600080fd5b506103a7610e08565b6040516103b4919061425b565b60405180910390f35b3480156103c957600080fd5b506103e460048036038101906103df9190613c23565b610e0e565b005b3480156103f257600080fd5b5061040d60048036038101906104089190613ddd565b610e9a565b005b34801561041b57600080fd5b50610424610f65565b6040516104319190614199565b60405180910390f35b34801561044657600080fd5b50610461600480360381019061045c9190613a49565b610fa2565b60405161046e9190614117565b60405180910390f35b34801561048357600080fd5b5061049e60048036038101906104999190613b76565b611040565b6040516104ab9190614117565b60405180910390f35b3480156104c057600080fd5b506104db60048036038101906104d69190613cf7565b611132565b6040516104e89190614117565b60405180910390f35b3480156104fd57600080fd5b50610506611147565b604051610513919061425b565b60405180910390f35b34801561052857600080fd5b50610543600480360381019061053e9190613cf7565b611151565b005b34801561055157600080fd5b5061056c60048036038101906105679190613d37565b6111ab565b005b34801561057a57600080fd5b5061059560048036038101906105909190613ae3565b611231565b6040516105a29190614117565b60405180910390f35b3480156105b757600080fd5b506105d260048036038101906105cd9190613a49565b611413565b6040516105df9190614117565b60405180910390f35b3480156105f457600080fd5b506105fd611433565b60405161060a919061425b565b60405180910390f35b34801561061f57600080fd5b5061063a60048036038101906106359190613cf7565b6114b5565b005b34801561064857600080fd5b50610663600480360381019061065e9190613a49565b611590565b6040516106709190614117565b60405180910390f35b34801561068557600080fd5b5061068e6115e9565b60405161069b91906142f9565b60405180910390f35b3480156106b057600080fd5b506106cb60048036038101906106c69190613a49565b6115f2565b005b3480156106d957600080fd5b506106e2611695565b6040516106ef9190614117565b60405180910390f35b34801561070457600080fd5b5061071f600480360381019061071a9190613a49565b6116a8565b60405161072c9190614117565b60405180910390f35b34801561074157600080fd5b5061075c60048036038101906107579190613c8a565b6116bd565b005b34801561076a57600080fd5b5061078560048036038101906107809190613c8a565b61172b565b005b34801561079357600080fd5b506107ae60048036038101906107a99190613b36565b611799565b005b3480156107bc57600080fd5b506107c561183c565b6040516107d29190614117565b60405180910390f35b3480156107e757600080fd5b506107f061184f565b005b3480156107fe57600080fd5b5061081960048036038101906108149190613a49565b6118e6565b604051610826919061425b565b60405180910390f35b34801561083b57600080fd5b5061084461192f565b604051610851919061425b565b60405180910390f35b34801561086657600080fd5b5061086f611935565b60405161087c919061425b565b60405180910390f35b34801561089157600080fd5b5061089a61193b565b6040516108a7919061402e565b60405180910390f35b3480156108bc57600080fd5b506108d760048036038101906108d29190613a49565b611964565b005b3480156108e557600080fd5b506108ee611a07565b6040516108fb9190614199565b60405180910390f35b34801561091057600080fd5b5061092b60048036038101906109269190613c8a565b611a44565b005b34801561093957600080fd5b50610954600480360381019061094f9190613aa3565b611aa5565b005b34801561096257600080fd5b5061096b611b73565b604051610978919061402e565b60405180910390f35b34801561098d57600080fd5b50610996611b99565b6040516109a3919061402e565b60405180910390f35b3480156109b857600080fd5b506109d360048036038101906109ce9190613b76565b611bbf565b6040516109e09190614117565b60405180910390f35b3480156109f557600080fd5b506109fe611bd4565b604051610a0b919061402e565b60405180910390f35b348015610a2057600080fd5b50610a29611bfa565b604051610a36919061402e565b60405180910390f35b348015610a4b57600080fd5b50610a54611c20565b005b348015610a6257600080fd5b50610a7d6004803603810190610a789190613a49565b611c72565b005b348015610a8b57600080fd5b50610a94611d14565b604051610aa1919061425b565b60405180910390f35b348015610ab657600080fd5b50610abf611d1a565b604051610acc919061425b565b60405180910390f35b348015610ae157600080fd5b50610aea611d20565b604051610af7919061402e565b60405180910390f35b348015610b0c57600080fd5b50610b276004803603810190610b229190613c8a565b611d46565b604051610b34919061425b565b60405180910390f35b348015610b4957600080fd5b50610b52611db8565b604051610b5f919061425b565b60405180910390f35b348015610b7457600080fd5b50610b8f6004803603810190610b8a9190613aa3565b611dc2565b604051610b9c919061425b565b60405180910390f35b348015610bb157600080fd5b50610bcc6004803603810190610bc79190613be3565b611e49565b005b348015610bda57600080fd5b50610be3611eb6565b604051610bf0919061425b565b60405180910390f35b348015610c0557600080fd5b50610c206004803603810190610c1b9190613a49565b611ecc565b005b348015610c2e57600080fd5b50610c496004803603810190610c449190613bb6565b611f6f565b604051610c56919061425b565b60405180910390f35b348015610c6b57600080fd5b50610c866004803603810190610c819190613a76565b611fab565b005b348015610c9457600080fd5b50610caf6004803603810190610caa9190613cb7565b6120c4565b005b348015610cbd57600080fd5b50610cd86004803603810190610cd39190613b36565b612183565b005b348015610ce657600080fd5b50610d016004803603810190610cfc9190613b36565b612423565b005b348015610d0f57600080fd5b50610d186124c6565b604051610d259190614132565b60405180910390f35b348015610d3a57600080fd5b50610d556004803603810190610d509190613a49565b6124ec565b604051610d629190614117565b60405180910390f35b610d74336124ec565b610db3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610daa9061423b565b60405180910390fd5b6000601c5414610df8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610def906141fb565b60405180910390fd5b43601c8190555042601d81905550565b602d5481565b610e17336124ec565b610e56576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e4d9061423b565b60405180910390fd5b83602260006101000a81548160ff02191690831515021790555082602481905550600060258190555081602681905550806027819055504360288190555050505050565b610ea3336124ec565b610ee2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ed99061423b565b60405180910390fd5b84601081905550836011819055508260128190555081601381905550610f3582610f2785610f19888a61255890919063ffffffff16565b61255890919063ffffffff16565b61255890919063ffffffff16565b601481905550806015819055506004601554610f5191906143bf565b60145410610f5e57600080fd5b5050505050565b60606040518060400160405280600d81526020017f5772617468206f66204172657300000000000000000000000000000000000000815250905090565b6000610fad33611590565b610fec576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fe39061421b565b60405180910390fd5b600f60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600081600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051611120919061425b565b60405180910390a36001905092915050565b60008261113e83611d46565b11905092915050565b6000600754905090565b61115a336124ec565b611199576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111909061423b565b60405180910390fd5b81601881905550806019819055505050565b6111b4336124ec565b6111f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111ea9061423b565b60405180910390fd5b6002828461120191906143bf565b1115801561120e57508183115b61121757600080fd5b82601e8190555081601f8190555080602181905550505050565b6000600754600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146113ff5761137e826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600b60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461256e9092919063ffffffff16565b600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b61140a8484846125c3565b90509392505050565b600f6020528060005260406000206000915054906101000a900460ff1681565b60006114b0611463600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166118e6565b6114a2611491600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166118e6565b600754612c8990919063ffffffff16565b612c8990919063ffffffff16565b905090565b6114be336124ec565b6114fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114f49061423b565b60405180910390fd5b602960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632d48e89683836040518363ffffffff1660e01b815260040161155a9291906142d0565b600060405180830381600087803b15801561157457600080fd5b505af1158015611588573d6000803e3d6000fd5b505050505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b60006006905090565b6115fb33611590565b61163a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116319061421b565b60405180910390fd5b6000600f60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b602260009054906101000a900460ff1681565b60006116b682600754611040565b9050919050565b6116c6336124ec565b611705576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116fc9061423b565b60405180910390fd5b6103e860075461171591906143bf565b81101561172157600080fd5b8060088190555050565b611734336124ec565b611773576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161176a9061423b565b60405180910390fd5b6103e860075461178391906143bf565b81101561178f57600080fd5b8060098190555050565b6117a2336124ec565b6117e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117d89061423b565b60405180910390fd5b80600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b602c60009054906101000a900460ff1681565b61185833611590565b611897576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161188e9061421b565b60405180910390fd5b60004790503373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156118e2573d6000803e3d6000fd5b5050565b6000600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60085481565b60095481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b61196d33611590565b6119ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119a39061421b565b60405180910390fd5b6001600f60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60606040518060400160405280600581526020017f5752415448000000000000000000000000000000000000000000000000000000815250905090565b611a4d336124ec565b611a8c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a839061423b565b60405180910390fd5b620b71b08110611a9b57600080fd5b80602b8190555050565b611aae336124ec565b611aed576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ae49061423b565b60405180910390fd5b81601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b602a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000611bcc3384846125c3565b905092915050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611c29336124ec565b611c68576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c5f9061423b565b60405180910390fd5b6000602081905550565b611c7b33611590565b611cba576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cb19061421b565b60405180910390fd5b60018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b601c5481565b601d5481565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000611db1611d53611433565b611da3611d946002611d86601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166118e6565b612c9f90919063ffffffff16565b85612c9f90919063ffffffff16565b61254290919063ffffffff16565b9050919050565b6000601454905090565b6000600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611e52336124ec565b611e91576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e889061423b565b60405180910390fd5b81602c60006101000a81548160ff02191690831515021790555080602d819055505050565b6fffffffffffffffffffffffffffffffff801681565b611ed533611590565b611f14576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f0b9061421b565b60405180910390fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000436001601c54611f819190614369565b10611f90576014549050611fa6565b8115611fa0576014549050611fa6565b60145490505b919050565b611fb433611590565b611ff3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fea9061421b565b60405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc686163816040516120b99190614049565b60405180910390a150565b6120cd336124ec565b61210c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121039061423b565b60405180910390fd5b61213882600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16612cb5565b801561217f57426020819055507f39d2389ec5c1fa77b2c0d374bc61b6d7bd97ccba280fcdeb4e9c7644898d7c3a602154604051612176919061425b565b60405180910390a15b5050565b61218c336124ec565b6121cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121c29061423b565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141580156122555750601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b61225e57600080fd5b80600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550801561235057602960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca968360006040518363ffffffff1660e01b8152600401612319929190614064565b600060405180830381600087803b15801561233357600080fd5b505af1158015612347573d6000803e3d6000fd5b5050505061241f565b602960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca9683600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518363ffffffff1660e01b81526004016123ec92919061408d565b600060405180830381600087803b15801561240657600080fd5b505af115801561241a573d6000803e3d6000fd5b505050505b5050565b61242c336124ec565b61246b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124629061423b565b60405180910390fd5b80600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000818361255091906143bf565b905092915050565b600081836125669190614369565b905092915050565b60008383111582906125b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125ad9190614199565b60405180910390fd5b5082840390509392505050565b6000602e60009054906101000a900460ff16156125ec576125e5848484612e93565b9050612c82565b60007381b9fa50d5f5155ee17817c21702c3ae4780ad0990506000601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16148061268e57508173ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16145b905061269a8685613001565b801580156126f25750600f60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156127865760095484600a60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127459190614369565b10612785576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161277c906141db565b60405180910390fd5b5b80156127b95761279461309e565b156127a2576127a1613175565b5b6127aa6136bf565b156127b8576127b7613772565b5b5b612842846040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600a60008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461256e9092919063ffffffff16565b600a60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000612890876137ee565b61289a57846128a6565b6128a5878787613845565b5b90506128fa81600a60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461255890919063ffffffff16565b600a60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600e60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16612a6057602960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca9688600a60008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518363ffffffff1660e01b8152600401612a2a92919061408d565b600060405180830381600087803b158015612a4457600080fd5b505af1925050508015612a55575060015b612a5e57612a5f565b5b5b600e60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16612b8357602960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca9687600a60008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518363ffffffff1660e01b8152600401612b4d92919061408d565b600060405180830381600087803b158015612b6757600080fd5b505af1925050508015612b78575060015b612b8157612b82565b5b5b602960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ffb2c479602b546040518263ffffffff1660e01b8152600401612be0919061425b565b600060405180830381600087803b158015612bfa57600080fd5b505af1925050508015612c0b575060015b612c1457612c15565b5b8573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612c72919061425b565b60405180910390a3600193505050505b9392505050565b60008183612c97919061444a565b905092915050565b60008183612cad91906143f0565b905092915050565b6001602e60006101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115612ced57612cec6145ff565b5b604051908082528060200260200182016040528015612d1b5781602001602082028036833780820191505090505b509050600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681600081518110612d5557612d546145d0565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250503081600181518110612da457612da36145d0565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b6f9de958460008486426040518663ffffffff1660e01b8152600401612e41949392919061414d565b6000604051808303818588803b158015612e5a57600080fd5b505af1158015612e6e573d6000803e3d6000fd5b5050505050506000602e60006101000a81548160ff0219169083151502179055505050565b6000612f1e826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600a60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461256e9092919063ffffffff16565b600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612fb382600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461255890919063ffffffff16565b600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600190509392505050565b6008548111158061305b5750600d60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b61309a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613091906141bb565b60405180910390fd5b5050565b6000601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415801561310b5750602e60009054906101000a900460ff16155b80156131235750602c60009054906101000a900460ff165b80156131705750602d54600a60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b905090565b6001602e60006101000a81548160ff02191690831515021790555060006131a0601854601954611132565b6131ac576010546131af565b60005b905060006131ef60026131e16014546131d386602d54612c9f90919063ffffffff16565b61254290919063ffffffff16565b61254290919063ffffffff16565b9050600061320882602d54612c8990919063ffffffff16565b90506000600267ffffffffffffffff811115613227576132266145ff565b5b6040519080825280602002602001820160405280156132555781602001602082028036833780820191505090505b509050308160008151811061326d5761326c6145d0565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16816001815181106132de576132dd6145d0565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000479050601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478460008530426040518663ffffffff1660e01b8152600401613381959493929190614276565b600060405180830381600087803b15801561339b57600080fd5b505af11580156133af573d6000803e3d6000fd5b5050505060006133c88247612c8990919063ffffffff16565b905060006133f46133e360028961254290919063ffffffff16565b601454612c8990919063ffffffff16565b905060006134306002613422846134148c88612c9f90919063ffffffff16565b61254290919063ffffffff16565b61254290919063ffffffff16565b9050600061345b8361344d60125487612c9f90919063ffffffff16565b61254290919063ffffffff16565b905060006134868461347860135488612c9f90919063ffffffff16565b61254290919063ffffffff16565b9050602960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d0e30db0836040518263ffffffff1660e01b81526004016000604051808303818588803b1580156134f257600080fd5b505af193505050508015613504575060015b61350d5761350e565b5b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015613576573d6000803e3d6000fd5b50600089111561369857601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71984308c600080601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b8152600401613609969594939291906140b6565b6060604051808303818588803b15801561362257600080fd5b505af1158015613636573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061365b9190613d8a565b5050507f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b4506838a60405161368f9291906142d0565b60405180910390a15b505050505050505050506000602e60006101000a81548160ff021916908315150217905550565b6000601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415801561372c5750602e60009054906101000a900460ff16155b80156137445750602260009054906101000a900460ff165b801561375f57504360275460285461375c9190614369565b11155b801561376d57506026544710155b905090565b6137a0602654600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16612cb5565b436028819055506137be60265460255461255890919063ffffffff16565b60258190555060245460255411156137ec576000602260006101000a81548160ff0219169083151502179055505b565b6000600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16159050919050565b6000806138c76015546138b96138aa601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff1614611f6f565b86612c9f90919063ffffffff16565b61254290919063ffffffff16565b905061391b81600a60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461255890919063ffffffff16565b600a60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516139bb919061425b565b60405180910390a36139d68184612c8990919063ffffffff16565b9150509392505050565b6000813590506139ef81614711565b92915050565b600081359050613a0481614728565b92915050565b600081359050613a198161473f565b92915050565b600081359050613a2e81614756565b92915050565b600081519050613a4381614756565b92915050565b600060208284031215613a5f57613a5e61462e565b5b6000613a6d848285016139e0565b91505092915050565b600060208284031215613a8c57613a8b61462e565b5b6000613a9a848285016139f5565b91505092915050565b60008060408385031215613aba57613ab961462e565b5b6000613ac8858286016139e0565b9250506020613ad9858286016139e0565b9150509250929050565b600080600060608486031215613afc57613afb61462e565b5b6000613b0a868287016139e0565b9350506020613b1b868287016139e0565b9250506040613b2c86828701613a1f565b9150509250925092565b60008060408385031215613b4d57613b4c61462e565b5b6000613b5b858286016139e0565b9250506020613b6c85828601613a0a565b9150509250929050565b60008060408385031215613b8d57613b8c61462e565b5b6000613b9b858286016139e0565b9250506020613bac85828601613a1f565b9150509250929050565b600060208284031215613bcc57613bcb61462e565b5b6000613bda84828501613a0a565b91505092915050565b60008060408385031215613bfa57613bf961462e565b5b6000613c0885828601613a0a565b9250506020613c1985828601613a1f565b9150509250929050565b60008060008060808587031215613c3d57613c3c61462e565b5b6000613c4b87828801613a0a565b9450506020613c5c87828801613a1f565b9350506040613c6d87828801613a1f565b9250506060613c7e87828801613a1f565b91505092959194509250565b600060208284031215613ca057613c9f61462e565b5b6000613cae84828501613a1f565b91505092915050565b60008060408385031215613cce57613ccd61462e565b5b6000613cdc85828601613a1f565b9250506020613ced85828601613a0a565b9150509250929050565b60008060408385031215613d0e57613d0d61462e565b5b6000613d1c85828601613a1f565b9250506020613d2d85828601613a1f565b9150509250929050565b600080600060608486031215613d5057613d4f61462e565b5b6000613d5e86828701613a1f565b9350506020613d6f86828701613a1f565b9250506040613d8086828701613a1f565b9150509250925092565b600080600060608486031215613da357613da261462e565b5b6000613db186828701613a34565b9350506020613dc286828701613a34565b9250506040613dd386828701613a34565b9150509250925092565b600080600080600060a08688031215613df957613df861462e565b5b6000613e0788828901613a1f565b9550506020613e1888828901613a1f565b9450506040613e2988828901613a1f565b9350506060613e3a88828901613a1f565b9250506080613e4b88828901613a1f565b9150509295509295909350565b6000613e648383613e7f565b60208301905092915050565b613e79816144e5565b82525050565b613e888161447e565b82525050565b613e978161447e565b82525050565b6000613ea882614324565b613eb28185614347565b9350613ebd83614314565b8060005b83811015613eee578151613ed58882613e58565b9750613ee08361433a565b925050600181019050613ec1565b5085935050505092915050565b613f04816144a2565b82525050565b613f13816144f7565b82525050565b613f2281614509565b82525050565b6000613f338261432f565b613f3d8185614358565b9350613f4d81856020860161453f565b613f5681614633565b840191505092915050565b6000613f6e601183614358565b9150613f7982614644565b602082019050919050565b6000613f91601d83614358565b9150613f9c8261466d565b602082019050919050565b6000613fb4601483614358565b9150613fbf82614696565b602082019050919050565b6000613fd7600683614358565b9150613fe2826146bf565b602082019050919050565b6000613ffa600b83614358565b9150614005826146e8565b602082019050919050565b614019816144ce565b82525050565b614028816144d8565b82525050565b60006020820190506140436000830184613e8e565b92915050565b600060208201905061405e6000830184613e70565b92915050565b60006040820190506140796000830185613e8e565b6140866020830184613f19565b9392505050565b60006040820190506140a26000830185613e8e565b6140af6020830184614010565b9392505050565b600060c0820190506140cb6000830189613e8e565b6140d86020830188614010565b6140e56040830187613f19565b6140f26060830186613f19565b6140ff6080830185613e8e565b61410c60a0830184614010565b979650505050505050565b600060208201905061412c6000830184613efb565b92915050565b60006020820190506141476000830184613f0a565b92915050565b60006080820190506141626000830187613f19565b81810360208301526141748186613e9d565b90506141836040830185613e8e565b6141906060830184614010565b95945050505050565b600060208201905081810360008301526141b38184613f28565b905092915050565b600060208201905081810360008301526141d481613f61565b9050919050565b600060208201905081810360008301526141f481613f84565b9050919050565b6000602082019050818103600083015261421481613fa7565b9050919050565b6000602082019050818103600083015261423481613fca565b9050919050565b6000602082019050818103600083015261425481613fed565b9050919050565b60006020820190506142706000830184614010565b92915050565b600060a08201905061428b6000830188614010565b6142986020830187613f19565b81810360408301526142aa8186613e9d565b90506142b96060830185613e8e565b6142c66080830184614010565b9695505050505050565b60006040820190506142e56000830185614010565b6142f26020830184614010565b9392505050565b600060208201905061430e600083018461401f565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000614374826144ce565b915061437f836144ce565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156143b4576143b3614572565b5b828201905092915050565b60006143ca826144ce565b91506143d5836144ce565b9250826143e5576143e46145a1565b5b828204905092915050565b60006143fb826144ce565b9150614406836144ce565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561443f5761443e614572565b5b828202905092915050565b6000614455826144ce565b9150614460836144ce565b92508282101561447357614472614572565b5b828203905092915050565b6000614489826144ae565b9050919050565b600061449b826144ae565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60006144f08261451b565b9050919050565b60006145028261451b565b9050919050565b6000614514826144ce565b9050919050565b60006145268261452d565b9050919050565b6000614538826144ae565b9050919050565b60005b8381101561455d578082015181840152602081019050614542565b8381111561456c576000848401525b50505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b6000601f19601f8301169050919050565b7f5458204c696d6974204578636565646564000000000000000000000000000000600082015250565b7f4d61782077616c6c657420686173206265656e20747269676765726564000000600082015250565b7f416c7265616479206c61756e6368656420626f69000000000000000000000000600082015250565b7f214f574e45520000000000000000000000000000000000000000000000000000600082015250565b7f21415554484f52495a4544000000000000000000000000000000000000000000600082015250565b61471a8161447e565b811461472557600080fd5b50565b61473181614490565b811461473c57600080fd5b50565b614748816144a2565b811461475357600080fd5b50565b61475f816144ce565b811461476a57600080fd5b5056fea2646970667358221220c6f7e6f04ba9adc53ecb34cef8929330672d6eaf2c365513b2e3d3806d40d57564736f6c63430008070033608060405273605c79b5c60a9d4675c87146d57d275624335381600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073deaddeaddeaddeaddeaddeaddeaddeaddead0000600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506ec097ce7bc90715b34b9f1000000000600c55610e10600d55678ac7230489e80000600e55348015620000e057600080fd5b5060405162001ca538038062001ca58339818101604052810190620001069190620001f7565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141562000157577381b9fa50d5f5155ee17817c21702c3ae4780ad0962000159565b805b600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550506200027c565b600081519050620001f18162000262565b92915050565b60006020828403121562000210576200020f6200025d565b5b60006200022084828501620001e0565b91505092915050565b600062000236826200023d565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600080fd5b6200026d8162000229565b81146200027957600080fd5b50565b611a19806200028c6000396000f3fe6080604052600436106100dd5760003560e01c8063ce7c2ac21161007f578063efca2eed11610059578063efca2eed14610291578063f0fc6bca146102bc578063ffb2c479146102d3578063ffd49c84146102fc576100dd565b8063ce7c2ac21461021d578063d0e30db01461025c578063e2d2e21914610266576100dd565b80632d48e896116100bb5780632d48e896146101735780633a98ef391461019c5780634fab0ae8146101c7578063997664d7146101f2576100dd565b806311ce023d146100e257806314b6ca961461010d57806328fd319814610136575b600080fd5b3480156100ee57600080fd5b506100f7610327565b604051610104919061166b565b60405180910390f35b34801561011957600080fd5b50610134600480360381019061012f9190611422565b61032d565b005b34801561014257600080fd5b5061015d600480360381019061015891906113f5565b6105ec565b60405161016a919061166b565b60405180910390f35b34801561017f57600080fd5b5061019a600480360381019061019591906114e9565b610706565b005b3480156101a857600080fd5b506101b1610770565b6040516101be919061166b565b60405180910390f35b3480156101d357600080fd5b506101dc610776565b6040516101e9919061166b565b60405180910390f35b3480156101fe57600080fd5b5061020761077c565b604051610214919061166b565b60405180910390f35b34801561022957600080fd5b50610244600480360381019061023f91906113f5565b610782565b60405161025393929190611686565b60405180910390f35b6102646107ac565b005b34801561027257600080fd5b5061027b610b9c565b604051610288919061166b565b60405180910390f35b34801561029d57600080fd5b506102a6610ba2565b6040516102b3919061166b565b60405180910390f35b3480156102c857600080fd5b506102d1610ba8565b005b3480156102df57600080fd5b506102fa60048036038101906102f5919061148f565b610bb3565b005b34801561030857600080fd5b50610311610d47565b60405161031e919061166b565b60405180910390f35b600c5481565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461038557600080fd5b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015411156103da576103d982610d4d565b5b60008111801561042c57506000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154145b1561043f5761043a82610ff4565b6104a1565b60008114801561049157506000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154115b156104a05761049f826110a3565b5b5b61050a816104fc600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001546008546112aa90919063ffffffff16565b6112c090919063ffffffff16565b60088190555080600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055506105a2600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001546112d6565b600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101819055505050565b600080600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015414156106415760009050610701565b600061068e600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001546112d6565b90506000600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001015490508082116106e957600092505050610701565b6106fc81836112aa90919063ffffffff16565b925050505b919050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461075e57600080fd5b81600d8190555080600e819055505050565b60085481565b600e5481565b60095481565b60076020528060005260406000206000915090508060000154908060010154908060020154905083565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461080457600080fd5b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161086191906115db565b60206040518083038186803b15801561087957600080fd5b505afa15801561088d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108b191906114bc565b90506000600267ffffffffffffffff8111156108d0576108cf61196a565b5b6040519080825280602002602001820160405280156108fe5781602001602082028036833780820191505090505b509050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16816000815181106109385761093761193b565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16816001815181106109a9576109a861193b565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b6f9de953460008430426040518663ffffffff1660e01b8152600401610a46949392919061161f565b6000604051808303818588803b158015610a5f57600080fd5b505af1158015610a73573d6000803e3d6000fd5b50505050506000610b3783600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610ad991906115db565b60206040518083038186803b158015610af157600080fd5b505afa158015610b05573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b2991906114bc565b6112aa90919063ffffffff16565b9050610b4e816009546112c090919063ffffffff16565b600981905550610b91610b80600854610b7284600c5461130890919063ffffffff16565b61131e90919063ffffffff16565b600b546112c090919063ffffffff16565b600b81905550505050565b600b5481565b600a5481565b610bb133610d4d565b565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610c0b57600080fd5b600060048054905090506000811415610c245750610d44565b6000805a905060005b8483108015610c3b57508381105b15610d3f5783600f5410610c52576000600f819055505b610c9b6004600f5481548110610c6b57610c6a61193b565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611334565b15610cea57610ce96004600f5481548110610cb957610cb861193b565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610d4d565b5b610d0f610d005a846112aa90919063ffffffff16565b846112c090919063ffffffff16565b92505a9150600f6000815480929190610d2790611865565b91905055508080610d3790611865565b915050610c2d565b505050505b50565b600d5481565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001541415610d9d57610ff1565b6000610da8826105ec565b90506000811115610fef57610dc881600a546112c090919063ffffffff16565b600a81905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83836040518363ffffffff1660e01b8152600401610e2b9291906115f6565b602060405180830381600087803b158015610e4557600080fd5b505af1158015610e59573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e7d9190611462565b5042600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610f1781600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201546112c090919063ffffffff16565b600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020181905550610fa8600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001546112d6565b600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101819055505b505b50565b600480549050600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506004819080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600460016004805490506110b791906117d7565b815481106110c8576110c761193b565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166004600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054815481106111465761114561193b565b5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600560008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205460056000600460016004805490506111e691906117d7565b815481106111f7576111f661193b565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060048054806112725761127161190c565b5b6001900381819060005260206000200160006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055905550565b600081836112b891906117d7565b905092915050565b600081836112ce91906116f6565b905092915050565b6000611301600c546112f3600b548561130890919063ffffffff16565b61131e90919063ffffffff16565b9050919050565b60008183611316919061177d565b905092915050565b6000818361132c919061174c565b905092915050565b600042600d54600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461138491906116f6565b10801561139a5750600e54611398836105ec565b115b9050919050565b6000813590506113b08161199e565b92915050565b6000815190506113c5816119b5565b92915050565b6000813590506113da816119cc565b92915050565b6000815190506113ef816119cc565b92915050565b60006020828403121561140b5761140a611999565b5b6000611419848285016113a1565b91505092915050565b6000806040838503121561143957611438611999565b5b6000611447858286016113a1565b9250506020611458858286016113cb565b9150509250929050565b60006020828403121561147857611477611999565b5b6000611486848285016113b6565b91505092915050565b6000602082840312156114a5576114a4611999565b5b60006114b3848285016113cb565b91505092915050565b6000602082840312156114d2576114d1611999565b5b60006114e0848285016113e0565b91505092915050565b60008060408385031215611500576114ff611999565b5b600061150e858286016113cb565b925050602061151f858286016113cb565b9150509250929050565b60006115358383611541565b60208301905092915050565b61154a8161180b565b82525050565b6115598161180b565b82525050565b600061156a826116cd565b61157481856116e5565b935061157f836116bd565b8060005b838110156115b05781516115978882611529565b97506115a2836116d8565b925050600181019050611583565b5085935050505092915050565b6115c681611853565b82525050565b6115d581611849565b82525050565b60006020820190506115f06000830184611550565b92915050565b600060408201905061160b6000830185611550565b61161860208301846115cc565b9392505050565b600060808201905061163460008301876115bd565b8181036020830152611646818661155f565b90506116556040830185611550565b61166260608301846115cc565b95945050505050565b600060208201905061168060008301846115cc565b92915050565b600060608201905061169b60008301866115cc565b6116a860208301856115cc565b6116b560408301846115cc565b949350505050565b6000819050602082019050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600061170182611849565b915061170c83611849565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115611741576117406118ae565b5b828201905092915050565b600061175782611849565b915061176283611849565b925082611772576117716118dd565b5b828204905092915050565b600061178882611849565b915061179383611849565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156117cc576117cb6118ae565b5b828202905092915050565b60006117e282611849565b91506117ed83611849565b925082821015611800576117ff6118ae565b5b828203905092915050565b600061181682611829565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600061185e82611849565b9050919050565b600061187082611849565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156118a3576118a26118ae565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b6119a78161180b565b81146119b257600080fd5b50565b6119be8161181d565b81146119c957600080fd5b50565b6119d581611849565b81146119e057600080fd5b5056fea26469706673582212208abff7fafd41cb6a62448d06af0da83ab6f7417928b899f9b2f2b38edb5bb7cc64736f6c63430008070033