[ { "inputs": [ { "internalType": "address", "name": "uniswapV2Router_", "type": "address" }, { "internalType": "uint256", "name": "totalSupply_", "type": "uint256" }, { "internalType": "uint256", "name": "ethRaiseinWei_", "type": "uint256" }, { "internalType": "string", "name": "name_", "type": "string" }, { "internalType": "string", "name": "symbol_", "type": "string" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "allowance", "type": "uint256" }, { "internalType": "uint256", "name": "needed", "type": "uint256" } ], "name": "ERC20InsufficientAllowance", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "uint256", "name": "balance", "type": "uint256" }, { "internalType": "uint256", "name": "needed", "type": "uint256" } ], "name": "ERC20InsufficientBalance", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "approver", "type": "address" } ], "name": "ERC20InvalidApprover", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "receiver", "type": "address" } ], "name": "ERC20InvalidReceiver", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "sender", "type": "address" } ], "name": "ERC20InvalidSender", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" } ], "name": "ERC20InvalidSpender", "type": "error" }, { "inputs": [], "name": "InitialSaleEnded", "type": "error" }, { "inputs": [], "name": "InsufficientETHBalance", "type": "error" }, { "inputs": [], "name": "InsufficientTokenBalance", "type": "error" }, { "inputs": [], "name": "InvalidPriceDifference", "type": "error" }, { "inputs": [], "name": "InvalidTrancheIndex", "type": "error" }, { "inputs": [], "name": "LiquidityDeployed", "type": "error" }, { "inputs": [], "name": "LiquidityNotDeployed", "type": "error" }, { "inputs": [], "name": "NoRefundAvailable", "type": "error" }, { "inputs": [], "name": "PriceOutsideRange", "type": "error" }, { "inputs": [], "name": "ReentrancyGuardReentrantCall", "type": "error" }, { "inputs": [], "name": "TranchePriceExceedsMarket", "type": "error" }, { "inputs": [], "name": "TrancheSoldOut", "type": "error" }, { "inputs": [], "name": "WalletLimitReached", "type": "error" }, { "inputs": [], "name": "ZeroETHSent", "type": "error" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "spender", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "Approval", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "buyer", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "InitialTranchePurchase", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "buyer", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "InitialTrancheRefunded", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "buyer", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "trancheIndex", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "TrancheTokensPurchased", "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": "BOOBIES_VAULT", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "BOOBIES_VAULT_SHARE", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "address", "name": "spender", "type": "address" } ], "name": "allowance", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "approve", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "buyInitialTranche", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "trancheIndex", "type": "uint256" }, { "internalType": "uint256", "name": "maxPriceDifferencePercent", "type": "uint256" } ], "name": "buyTranche", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [], "name": "decimals", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getAvailableTranches", "outputs": [ { "internalType": "bool[]", "name": "", "type": "bool[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getFDV", "outputs": [ { "internalType": "uint256", "name": "fdv", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getLiquidity", "outputs": [ { "internalType": "uint256", "name": "liquidity", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getMarketCap", "outputs": [ { "internalType": "uint256", "name": "marketCap", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getTokenPriceInETH", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "initialContributors", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "initialLiquidityDeployed", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "initialPricePerToken", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "isInitialContributor", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "priceMultiples", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "refundInitialTranche", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "trancheMaxPurchase", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "trancheSold", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "trancheSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "transfer", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "transferFrom", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "uniswapV2Pair", "outputs": [ { "internalType": "contract IUniswapV2Pair", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "uniswapV2Router", "outputs": [ { "internalType": "contract IUniswapV2Router02", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" }, { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "userTrancheETHPaid", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" }, { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "userTranchePurchases", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "stateMutability": "payable", "type": "receive" } ]
6080604052734f8411a4ff4e9ad6905612009cdcb8367602b4fc60085f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060c8600955604051806101600160405280600161ffff168152602001600461ffff168152602001600861ffff168152602001601061ffff168152602001602061ffff168152602001604061ffff168152602001608061ffff16815260200161010061ffff16815260200161020061ffff16815260200161040061ffff16815260200161080061ffff16815250600b90600b6100f4929190610866565b505f60375f6101000a81548160ff021916908315150217905550348015610119575f5ffd5b506040516143b63803806143b6833981810160405281019061013b9190610aa1565b8181816003908161014c9190610d57565b50806004908161015c9190610d57565b50505060016005819055505f6105dc612710866101799190610e80565b6101839190610eb0565b90505f6127106101f4836101979190610eb0565b6101a19190610e80565b90505f6101f4612710886101b59190610e80565b6101bf9190610eb0565b90505f6127106103e8836101d39190610eb0565b6101dd9190610e80565b90505f61012c6127108a6101f19190610e80565b6101fb9190610eb0565b90505f6127106103e88361020f9190610eb0565b6102199190610e80565b90505f60c86127108c61022c9190610e80565b6102369190610eb0565b90505f6127106103e88361024a9190610eb0565b6102549190610e80565b90505f5f90505b600b81101561036c575f81036102a45788602182600b81106102805761027f610ef1565b5b018190555087601682600b811061029a57610299610ef1565b5b018190555061035f565b60038110156102e65786602182600b81106102c2576102c1610ef1565b5b018190555085601682600b81106102dc576102db610ef1565b5b018190555061035e565b600a8110156103285784602182600b811061030457610303610ef1565b5b018190555083601682600b811061031e5761031d610ef1565b5b018190555061035d565b82602182600b811061033d5761033c610ef1565b5b018190555081601682600b811061035757610356610ef1565b5b01819055505b5b5b808060010191505061025b565b508c60065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610417573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061043b9190610f1e565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156104c1573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104e59190610f1e565b6040518363ffffffff1660e01b8152600401610502929190610f58565b6020604051808303815f875af115801561051e573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105429190610f1e565b60075f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555087670de0b6b3a76400008c6105969190610eb0565b6105a09190610e80565b600a819055506105b6308d6105c860201b60201c565b50505050505050505050505050611028565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610638575f6040517fec442f0500000000000000000000000000000000000000000000000000000000815260040161062f9190610f7f565b60405180910390fd5b6106495f838361064d60201b60201c565b5050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361069d578060025f8282546106919190610f98565b9250508190555061076b565b5f5f5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015610726578381836040517fe450d38c00000000000000000000000000000000000000000000000000000000815260040161071d93929190610fda565b60405180910390fd5b8181035f5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036107b2578060025f82825403925050819055506107fc565b805f5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610859919061100f565b60405180910390a3505050565b82600b810192821561089b579160200282015b8281111561089a578251829061ffff16905591602001919060010190610879565b5b5090506108a891906108ac565b5090565b5b808211156108c3575f815f9055506001016108ad565b5090565b5f604051905090565b5f5ffd5b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610901826108d8565b9050919050565b610911816108f7565b811461091b575f5ffd5b50565b5f8151905061092c81610908565b92915050565b5f819050919050565b61094481610932565b811461094e575f5ffd5b50565b5f8151905061095f8161093b565b92915050565b5f5ffd5b5f5ffd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6109b38261096d565b810181811067ffffffffffffffff821117156109d2576109d161097d565b5b80604052505050565b5f6109e46108c7565b90506109f082826109aa565b919050565b5f67ffffffffffffffff821115610a0f57610a0e61097d565b5b610a188261096d565b9050602081019050919050565b8281835e5f83830152505050565b5f610a45610a40846109f5565b6109db565b905082815260208101848484011115610a6157610a60610969565b5b610a6c848285610a25565b509392505050565b5f82601f830112610a8857610a87610965565b5b8151610a98848260208601610a33565b91505092915050565b5f5f5f5f5f60a08688031215610aba57610ab96108d0565b5b5f610ac78882890161091e565b9550506020610ad888828901610951565b9450506040610ae988828901610951565b935050606086015167ffffffffffffffff811115610b0a57610b096108d4565b5b610b1688828901610a74565b925050608086015167ffffffffffffffff811115610b3757610b366108d4565b5b610b4388828901610a74565b9150509295509295909350565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680610b9e57607f821691505b602082108103610bb157610bb0610b5a565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302610c137fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82610bd8565b610c1d8683610bd8565b95508019841693508086168417925050509392505050565b5f819050919050565b5f610c58610c53610c4e84610932565b610c35565b610932565b9050919050565b5f819050919050565b610c7183610c3e565b610c85610c7d82610c5f565b848454610be4565b825550505050565b5f5f905090565b610c9c610c8d565b610ca7818484610c68565b505050565b5b81811015610cca57610cbf5f82610c94565b600181019050610cad565b5050565b601f821115610d0f57610ce081610bb7565b610ce984610bc9565b81016020851015610cf8578190505b610d0c610d0485610bc9565b830182610cac565b50505b505050565b5f82821c905092915050565b5f610d2f5f1984600802610d14565b1980831691505092915050565b5f610d478383610d20565b9150826002028217905092915050565b610d6082610b50565b67ffffffffffffffff811115610d7957610d7861097d565b5b610d838254610b87565b610d8e828285610cce565b5f60209050601f831160018114610dbf575f8415610dad578287015190505b610db78582610d3c565b865550610e1e565b601f198416610dcd86610bb7565b5f5b82811015610df457848901518255600182019150602085019450602081019050610dcf565b86831015610e115784890151610e0d601f891682610d20565b8355505b6001600288020188555050505b505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f610e8a82610932565b9150610e9583610932565b925082610ea557610ea4610e26565b5b828204905092915050565b5f610eba82610932565b9150610ec583610932565b9250828202610ed381610932565b91508282048414831517610eea57610ee9610e53565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f60208284031215610f3357610f326108d0565b5b5f610f408482850161091e565b91505092915050565b610f52816108f7565b82525050565b5f604082019050610f6b5f830185610f49565b610f786020830184610f49565b9392505050565b5f602082019050610f925f830184610f49565b92915050565b5f610fa282610932565b9150610fad83610932565b9250828201905080821115610fc557610fc4610e53565b5b92915050565b610fd481610932565b82525050565b5f606082019050610fed5f830186610f49565b610ffa6020830185610fcb565b6110076040830184610fcb565b949350505050565b5f6020820190506110225f830184610fcb565b92915050565b613381806110355f395ff3fe6080604052600436106101db575f3560e01c80635b6796ff1161010157806395d89b4111610094578063ce4cf7d811610063578063ce4cf7d8146106c6578063dc4c132814610702578063dd62ed3e1461072c578063e681e78514610768576101e2565b806395d89b41146105fa5780639f77bfca14610624578063a694b86b14610660578063a9059cbb1461068a576101e2565b806383a58544116100d057806383a58544146105625780638d187d391461059e5780638f4ec825146105ba57806390825c28146105d0576101e2565b80635b6796ff1461049657806361bba381146104c05780636dbc636a146104ea57806370a0823114610526576101e2565b8063265899c21161017957806338b442831161014857806338b44283146103b8578063486921c7146103f457806349bd5a5e1461043057806358382b7b1461045a576101e2565b8063265899c214610330578063293188971461035a578063313ce56714610384578063357d841a146103ae576101e2565b80631694505e116101b55780631694505e1461027657806318160ddd146102a0578063239422ea146102ca57806323b872dd146102f4576101e2565b806306fdde03146101e65780630910a51014610210578063095ea7b31461023a576101e2565b366101e257005b5f5ffd5b3480156101f1575f5ffd5b506101fa6107a4565b6040516102079190612a95565b60405180910390f35b34801561021b575f5ffd5b50610224610834565b6040516102319190612acd565b60405180910390f35b348015610245575f5ffd5b50610260600480360381019061025b9190612b6e565b61098d565b60405161026d9190612bc6565b60405180910390f35b348015610281575f5ffd5b5061028a6109af565b6040516102979190612c3a565b60405180910390f35b3480156102ab575f5ffd5b506102b46109d4565b6040516102c19190612acd565b60405180910390f35b3480156102d5575f5ffd5b506102de6109dd565b6040516102eb9190612bc6565b60405180910390f35b3480156102ff575f5ffd5b5061031a60048036038101906103159190612c53565b6109ef565b6040516103279190612bc6565b60405180910390f35b34801561033b575f5ffd5b50610344610a1d565b6040516103519190612d5a565b60405180910390f35b348015610365575f5ffd5b5061036e610b5d565b60405161037b9190612acd565b60405180910390f35b34801561038f575f5ffd5b50610398610d80565b6040516103a59190612d95565b60405180910390f35b6103b6610d88565b005b3480156103c3575f5ffd5b506103de60048036038101906103d99190612b6e565b611233565b6040516103eb9190612acd565b60405180910390f35b3480156103ff575f5ffd5b5061041a60048036038101906104159190612b6e565b611257565b6040516104279190612acd565b60405180910390f35b34801561043b575f5ffd5b5061044461127b565b6040516104519190612dce565b60405180910390f35b348015610465575f5ffd5b50610480600480360381019061047b9190612de7565b6112a0565b60405161048d9190612acd565b60405180910390f35b3480156104a1575f5ffd5b506104aa6112b9565b6040516104b79190612e21565b60405180910390f35b3480156104cb575f5ffd5b506104d46112de565b6040516104e19190612acd565b60405180910390f35b3480156104f5575f5ffd5b50610510600480360381019061050b9190612de7565b611332565b60405161051d9190612e21565b60405180910390f35b348015610531575f5ffd5b5061054c60048036038101906105479190612e3a565b61136d565b6040516105599190612acd565b60405180910390f35b34801561056d575f5ffd5b5061058860048036038101906105839190612de7565b6113b2565b6040516105959190612acd565b60405180910390f35b6105b860048036038101906105b39190612e65565b6113cb565b005b3480156105c5575f5ffd5b506105ce6118d1565b005b3480156105db575f5ffd5b506105e4611d94565b6040516105f19190612acd565b60405180910390f35b348015610605575f5ffd5b5061060e611e00565b60405161061b9190612a95565b60405180910390f35b34801561062f575f5ffd5b5061064a60048036038101906106459190612de7565b611e90565b6040516106579190612acd565b60405180910390f35b34801561066b575f5ffd5b50610674611ea9565b6040516106819190612acd565b60405180910390f35b348015610695575f5ffd5b506106b060048036038101906106ab9190612b6e565b611eaf565b6040516106bd9190612bc6565b60405180910390f35b3480156106d1575f5ffd5b506106ec60048036038101906106e79190612e3a565b611ed1565b6040516106f99190612bc6565b60405180910390f35b34801561070d575f5ffd5b50610716611eee565b6040516107239190612acd565b60405180910390f35b348015610737575f5ffd5b50610752600480360381019061074d9190612ea3565b611ef4565b60405161075f9190612acd565b60405180910390f35b348015610773575f5ffd5b5061078e60048036038101906107899190612de7565b611f76565b60405161079b9190612acd565b60405180910390f35b6060600380546107b390612f0e565b80601f01602080910402602001604051908101604052809291908181526020018280546107df90612f0e565b801561082a5780601f106108015761010080835404028352916020019161082a565b820191905f5260205f20905b81548152906001019060200180831161080d57829003601f168201915b5050505050905090565b5f60375f9054906101000a900460ff16610850575f905061098a565b5f60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108bb573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108df9190612f52565b905060028173ffffffffffffffffffffffffffffffffffffffff166370a0823160075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff1660e01b815260040161093d9190612e21565b602060405180830381865afa158015610958573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061097c9190612f91565b6109869190612fe9565b9150505b90565b5f5f610997611f8f565b90506109a4818585611f96565b600191505092915050565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f600254905090565b60375f9054906101000a900460ff1681565b5f5f6109f9611f8f565b9050610a06858285611fa8565b610a1185858561203a565b60019150509392505050565b60605f600b67ffffffffffffffff811115610a3b57610a3a61302a565b5b604051908082528060200260200182016040528015610a695781602001602082028036833780820191505090505b5090505f610a75610b5d565b90505f5f90505b600b811015610b54575f600b82600b8110610a9a57610a99613057565b5b0154600a54610aa99190612fe9565b90505f821480610aee5750808310158015610aed5750602182600b8110610ad357610ad2613057565b5b0154602c83600b8110610ae957610ae8613057565b5b0154105b5b15610b1f576001848381518110610b0857610b07613057565b5b602002602001019015159081151581525050610b46565b5f848381518110610b3357610b32613057565b5b6020026020010190151590811515815250505b508080600101915050610a7c565b50819250505090565b5f5f5f60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630902f1ac6040518163ffffffff1660e01b8152600401606060405180830381865afa158015610bca573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bee9190613100565b50915091505f826dffffffffffffffffffffffffffff161480610c2057505f816dffffffffffffffffffffffffffff16145b15610c3157600a5492505050610d7d565b3073ffffffffffffffffffffffffffffffffffffffff1660075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630dfe16816040518163ffffffff1660e01b8152600401602060405180830381865afa158015610cb2573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610cd69190612f52565b73ffffffffffffffffffffffffffffffffffffffff1603610d3957816dffffffffffffffffffffffffffff16670de0b6b3a7640000826dffffffffffffffffffffffffffff16610d269190612fe9565b610d30919061317d565b92505050610d7d565b806dffffffffffffffffffffffffffff16670de0b6b3a7640000836dffffffffffffffffffffffffffff16610d6e9190612fe9565b610d78919061317d565b925050505b90565b5f6012905090565b610d9061212a565b60375f9054906101000a900460ff1615610dd6576040517f1ad8494f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f3403610e0f576040517f19a1bf6000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60215f600b8110610e2357610e22613057565b5b0154602c5f600b8110610e3957610e38613057565b5b015410610e72576040517fdf8e376800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60165f600b8110610e8657610e85613057565b5b0154603a5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f600b8110610ed757610ed6613057565b5b015410610f10576040517f84dab64600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f610f1e5f34600a54612170565b90505f670de0b6b3a7640000600a5483610f389190612fe9565b610f42919061317d565b905080603b5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f600b8110610f9457610f93613057565b5b015f828254610fa391906131ad565b9250508190555060395f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff166110ae57603833908060018154018082558091505060019003905f5260205f20015f9091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160395f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505b81602c5f600b81106110c3576110c2613057565b5b015f8282546110d291906131ad565b9250508190555081603a5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f600b811061112957611128613057565b5b015f82825461113891906131ad565b9250508190555080341115611197573373ffffffffffffffffffffffffffffffffffffffff166108fc823461116d91906131e0565b90811502906040515f60405180830381858888f19350505050158015611195573d5f5f3e3d5ffd5b505b60215f600b81106111ab576111aa613057565b5b0154602c5f600b81106111c1576111c0613057565b5b0154106111d9576111d061225f565b6111d861237d565b5b3373ffffffffffffffffffffffffffffffffffffffff167f3082f48ea05b3fcc96a3f50b9bd103f75800860568f3320fcedeb6de6d0dce218360405161121f9190612acd565b60405180910390a250506112316123fb565b565b603a602052815f5260405f2081600b811061124c575f80fd5b015f91509150505481565b603b602052815f5260405f2081600b8110611270575f80fd5b015f91509150505481565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601681600b81106112af575f80fd5b015f915090505481565b60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f60375f9054906101000a900460ff166112fa575f905061132f565b5f611303610b5d565b9050670de0b6b3a7640000816113176109d4565b6113219190612fe9565b61132b919061317d565b9150505b90565b60388181548110611341575f80fd5b905f5260205f20015f915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f5f5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b602181600b81106113c1575f80fd5b015f915090505481565b6113d361212a565b60375f9054906101000a900460ff16611418576040517fdff61f8b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f3403611451576040517f19a1bf6000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f8214806114605750600b8210155b15611497576040517f4e2a8dfe00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60648110156114d2576040517fabcca32100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b602182600b81106114e6576114e5613057565b5b0154602c83600b81106114fc576114fb613057565b5b015410611535576040517fdf8e376800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b601682600b811061154957611548613057565b5b0154603a5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2083600b811061159a57611599613057565b5b0154106115d3576040517f84dab64600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f6115dc610b5d565b90505f600b84600b81106115f3576115f2613057565b5b0154600a546116029190612fe9565b90508082101561163e576040517f85fecc1000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b612710838261164d9190612fe9565b611657919061317d565b8161166291906131ad565b82111561169b576040517fe10dffe600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f6116a7853485612170565b90505f670de0b6b3a764000084836116bf9190612fe9565b6116c9919061317d565b9050816116d53061136d565b101561170d576040517fe4455cae00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6117178282612405565b81602c87600b811061172c5761172b613057565b5b015f82825461173b91906131ad565b9250508190555081603a5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2087600b811061179257611791613057565b5b015f8282546117a191906131ad565b9250508190555080603b5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2087600b81106117f8576117f7613057565b5b015f82825461180791906131ad565b9250508190555080341115611866573373ffffffffffffffffffffffffffffffffffffffff166108fc823461183c91906131e0565b90811502906040515f60405180830381858888f19350505050158015611864573d5f5f3e3d5ffd5b505b61187130338461203a565b3373ffffffffffffffffffffffffffffffffffffffff167ff3fb67cb71e333dcc656ea2a2a916481a2e5b06ae89e35f667813fc7043e08ad87846040516118b9929190613213565b60405180910390a2505050506118cd6123fb565b5050565b6118d961212a565b60375f9054906101000a900460ff161561191f576040517f1ad8494f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f603a5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f600b811061196f5761196e613057565b5b015490505f81036119ac576040517fe49c14cb00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f603b5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f600b81106119fc576119fb613057565b5b015490505f603a5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f600b8110611a5057611a4f613057565b5b01819055505f603b5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f600b8110611aa557611aa4613057565b5b018190555081602c5f600b8110611abf57611abe613057565b5b015f828254611ace91906131e0565b9250508190555060395f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615611cf6575f60395f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505f5f90505b603880549050811015611cf4573373ffffffffffffffffffffffffffffffffffffffff1660388281548110611bb557611bb4613057565b5b905f5260205f20015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603611ce75760386001603880549050611c0c91906131e0565b81548110611c1d57611c1c613057565b5b905f5260205f20015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660388281548110611c5957611c58613057565b5b905f5260205f20015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506038805480611cb057611caf61323a565b5b600190038181905f5260205f20015f6101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690559055611cf4565b8080600101915050611b7d565b505b3373ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015611d39573d5f5f3e3d5ffd5b503373ffffffffffffffffffffffffffffffffffffffff167f35cc6ad8d7e55fcdb00bb23c90df11f0368befe6d3f7e748ee24f5f88810b3e583604051611d809190612acd565b60405180910390a25050611d926123fb565b565b5f60375f9054906101000a900460ff16611db0575f9050611dfd565b5f611db9610b5d565b90505f611dc53061136d565b611dcd6109d4565b611dd791906131e0565b9050670de0b6b3a76400008282611dee9190612fe9565b611df8919061317d565b925050505b90565b606060048054611e0f90612f0e565b80601f0160208091040260200160405190810160405280929190818152602001828054611e3b90612f0e565b8015611e865780601f10611e5d57610100808354040283529160200191611e86565b820191905f5260205f20905b815481529060010190602001808311611e6957829003601f168201915b5050505050905090565b600b81600b8110611e9f575f80fd5b015f915090505481565b60095481565b5f5f611eb9611f8f565b9050611ec681858561203a565b600191505092915050565b6039602052805f5260405f205f915054906101000a900460ff1681565b600a5481565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b602c81600b8110611f85575f80fd5b015f915090505481565b5f33905090565b611fa38383836001612603565b505050565b5f611fb38484611ef4565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146120345781811015612025578281836040517ffb8f41b200000000000000000000000000000000000000000000000000000000815260040161201c93929190613267565b60405180910390fd5b61203384848484035f612603565b5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036120aa575f6040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016120a19190612e21565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361211a575f6040517fec442f050000000000000000000000000000000000000000000000000000000081526004016121119190612e21565b60405180910390fd5b6121258383836127d2565b505050565b600260055403612166576040517f3ee5aeb500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002600581905550565b5f5f82670de0b6b3a7640000856121879190612fe9565b612191919061317d565b90505f603a5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2086600b81106121e3576121e2613057565b5b0154601687600b81106121f9576121f8613057565b5b015461220591906131e0565b90505f602c87600b811061221c5761221b613057565b5b0154602188600b811061223257612231613057565b5b015461223e91906131e0565b905061225361224d84836129eb565b836129eb565b93505050509392505050565b5f5f90505b60388054905081101561237a575f6038828154811061228657612285613057565b5b905f5260205f20015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505f603a5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f600b8110612300576122ff613057565b5b015490505f81111561236d5761231730838361203a565b5f603a5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f600b811061236757612366613057565b5b01819055505b8260010192505050612264565b50565b5f47036123b6576040517fbbb20aae00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f4790505f60215f600b81106123cf576123ce613057565b5b015490506123dd8183612405565b600160375f6101000a81548160ff0219169083151502179055505050565b6001600581905550565b5f612710600954846124179190612fe9565b612421919061317d565b90505f612710600954846124359190612fe9565b61243f919061317d565b9050818461244d91906131e0565b9350808361245b91906131e0565b92505f6064605f8661246d9190612fe9565b612477919061317d565b90505f6064605f866124899190612fe9565b612493919061317d565b90506124c13060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1688611f96565b60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8490811502906040515f60405180830381858888f19350505050158015612525573d5f5f3e3d5ffd5b506125523060085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff168661203a565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71986308986865f426040518863ffffffff1660e01b81526004016125b79695949392919061329c565b60606040518083038185885af11580156125d3573d5f5f3e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906125f891906132fb565b505050505050505050565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603612673575f6040517fe602df0500000000000000000000000000000000000000000000000000000000815260040161266a9190612e21565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036126e3575f6040517f94280d620000000000000000000000000000000000000000000000000000000081526004016126da9190612e21565b60405180910390fd5b8160015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555080156127cc578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516127c39190612acd565b60405180910390a35b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612822578060025f82825461281691906131ad565b925050819055506128f0565b5f5f5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050818110156128ab578381836040517fe450d38c0000000000000000000000000000000000000000000000000000000081526004016128a293929190613267565b60405180910390fd5b8181035f5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612937578060025f8282540392505081905550612981565b805f5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516129de9190612acd565b60405180910390a3505050565b5f6129f98284108484612a01565b905092915050565b5f612a0b84612a1a565b82841802821890509392505050565b5f8115159050919050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f612a6782612a25565b612a718185612a2f565b9350612a81818560208601612a3f565b612a8a81612a4d565b840191505092915050565b5f6020820190508181035f830152612aad8184612a5d565b905092915050565b5f819050919050565b612ac781612ab5565b82525050565b5f602082019050612ae05f830184612abe565b92915050565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f612b1382612aea565b9050919050565b612b2381612b09565b8114612b2d575f5ffd5b50565b5f81359050612b3e81612b1a565b92915050565b612b4d81612ab5565b8114612b57575f5ffd5b50565b5f81359050612b6881612b44565b92915050565b5f5f60408385031215612b8457612b83612ae6565b5b5f612b9185828601612b30565b9250506020612ba285828601612b5a565b9150509250929050565b5f8115159050919050565b612bc081612bac565b82525050565b5f602082019050612bd95f830184612bb7565b92915050565b5f819050919050565b5f612c02612bfd612bf884612aea565b612bdf565b612aea565b9050919050565b5f612c1382612be8565b9050919050565b5f612c2482612c09565b9050919050565b612c3481612c1a565b82525050565b5f602082019050612c4d5f830184612c2b565b92915050565b5f5f5f60608486031215612c6a57612c69612ae6565b5b5f612c7786828701612b30565b9350506020612c8886828701612b30565b9250506040612c9986828701612b5a565b9150509250925092565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b612cd581612bac565b82525050565b5f612ce68383612ccc565b60208301905092915050565b5f602082019050919050565b5f612d0882612ca3565b612d128185612cad565b9350612d1d83612cbd565b805f5b83811015612d4d578151612d348882612cdb565b9750612d3f83612cf2565b925050600181019050612d20565b5085935050505092915050565b5f6020820190508181035f830152612d728184612cfe565b905092915050565b5f60ff82169050919050565b612d8f81612d7a565b82525050565b5f602082019050612da85f830184612d86565b92915050565b5f612db882612c09565b9050919050565b612dc881612dae565b82525050565b5f602082019050612de15f830184612dbf565b92915050565b5f60208284031215612dfc57612dfb612ae6565b5b5f612e0984828501612b5a565b91505092915050565b612e1b81612b09565b82525050565b5f602082019050612e345f830184612e12565b92915050565b5f60208284031215612e4f57612e4e612ae6565b5b5f612e5c84828501612b30565b91505092915050565b5f5f60408385031215612e7b57612e7a612ae6565b5b5f612e8885828601612b5a565b9250506020612e9985828601612b5a565b9150509250929050565b5f5f60408385031215612eb957612eb8612ae6565b5b5f612ec685828601612b30565b9250506020612ed785828601612b30565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680612f2557607f821691505b602082108103612f3857612f37612ee1565b5b50919050565b5f81519050612f4c81612b1a565b92915050565b5f60208284031215612f6757612f66612ae6565b5b5f612f7484828501612f3e565b91505092915050565b5f81519050612f8b81612b44565b92915050565b5f60208284031215612fa657612fa5612ae6565b5b5f612fb384828501612f7d565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f612ff382612ab5565b9150612ffe83612ab5565b925082820261300c81612ab5565b9150828204841483151761302357613022612fbc565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f6dffffffffffffffffffffffffffff82169050919050565b6130a681613084565b81146130b0575f5ffd5b50565b5f815190506130c18161309d565b92915050565b5f63ffffffff82169050919050565b6130df816130c7565b81146130e9575f5ffd5b50565b5f815190506130fa816130d6565b92915050565b5f5f5f6060848603121561311757613116612ae6565b5b5f613124868287016130b3565b9350506020613135868287016130b3565b9250506040613146868287016130ec565b9150509250925092565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61318782612ab5565b915061319283612ab5565b9250826131a2576131a1613150565b5b828204905092915050565b5f6131b782612ab5565b91506131c283612ab5565b92508282019050808211156131da576131d9612fbc565b5b92915050565b5f6131ea82612ab5565b91506131f583612ab5565b925082820390508181111561320d5761320c612fbc565b5b92915050565b5f6040820190506132265f830185612abe565b6132336020830184612abe565b9392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603160045260245ffd5b5f60608201905061327a5f830186612e12565b6132876020830185612abe565b6132946040830184612abe565b949350505050565b5f60c0820190506132af5f830189612e12565b6132bc6020830188612abe565b6132c96040830187612abe565b6132d66060830186612abe565b6132e36080830185612e12565b6132f060a0830184612abe565b979650505050505050565b5f5f5f6060848603121561331257613311612ae6565b5b5f61331f86828701612f7d565b935050602061333086828701612f7d565b925050604061334186828701612f7d565b915050925092509256fea264697066735822122028440f59b31e6e750cfd614267747b2e5c4fc3c0f74106bb57726b8646b3007664736f6c634300081c00330000000000000000000000006682375ebc1df04676c0c5050934272368e6e88300000000000000000000000000000000000000000052b7d2dcc80cd2e4000000000000000000000000000000000000000000000000000000009fdf42f6e4800000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000e00000000000000000000000000000000000000000000000000000000000000008426173656c69736b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005424c49534b000000000000000000000000000000000000000000000000000000