[ { "inputs": [], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [ { "internalType": "address", "name": "target", "type": "address" } ], "name": "AddressEmptyCode", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "AddressInsufficientBalance", "type": "error" }, { "inputs": [], "name": "AlreadyExists", "type": "error" }, { "inputs": [], "name": "DecimalsTooLow", "type": "error" }, { "inputs": [], "name": "ECDSAInvalidSignature", "type": "error" }, { "inputs": [ { "internalType": "uint256", "name": "length", "type": "uint256" } ], "name": "ECDSAInvalidSignatureLength", "type": "error" }, { "inputs": [ { "internalType": "bytes32", "name": "s", "type": "bytes32" } ], "name": "ECDSAInvalidSignatureS", "type": "error" }, { "inputs": [], "name": "FailedInnerCall", "type": "error" }, { "inputs": [], "name": "InsufficientAllowance", "type": "error" }, { "inputs": [], "name": "InvalidApproval", "type": "error" }, { "inputs": [], "name": "InvalidInitialization", "type": "error" }, { "inputs": [], "name": "InvalidOperator", "type": "error" }, { "inputs": [], "name": "InvalidRecipient", "type": "error" }, { "inputs": [], "name": "InvalidSender", "type": "error" }, { "inputs": [], "name": "InvalidSigner", "type": "error" }, { "inputs": [], "name": "InvalidSpender", "type": "error" }, { "inputs": [], "name": "InvalidTokenId", "type": "error" }, { "inputs": [], "name": "MintLimitReached", "type": "error" }, { "inputs": [], "name": "NotFound", "type": "error" }, { "inputs": [], "name": "NotInitializing", "type": "error" }, { "inputs": [], "name": "OwnedIndexOverflow", "type": "error" }, { "inputs": [ { "internalType": "uint256", "name": "x", "type": "uint256" }, { "internalType": "uint256", "name": "y", "type": "uint256" } ], "name": "PRBMath_MulDiv18_Overflow", "type": "error" }, { "inputs": [ { "internalType": "UD60x18", "name": "x", "type": "uint256" } ], "name": "PRBMath_UD60x18_Sqrt_Overflow", "type": "error" }, { "inputs": [], "name": "PermitDeadlineExpired", "type": "error" }, { "inputs": [], "name": "PoolNotFound", "type": "error" }, { "inputs": [], "name": "QueueEmpty", "type": "error" }, { "inputs": [], "name": "QueueFull", "type": "error" }, { "inputs": [], "name": "QueueOutOfBounds", "type": "error" }, { "inputs": [], "name": "RecipientIsERC721TransferExempt", "type": "error" }, { "inputs": [], "name": "ReentrancyGuardReentrantCall", "type": "error" }, { "inputs": [], "name": "Unauthorized", "type": "error" }, { "inputs": [], "name": "UnsafeRecipient", "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": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "spender", "type": "address" }, { "indexed": true, "internalType": "uint256", "name": "id", "type": "uint256" } ], "name": "Approval", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "operator", "type": "address" }, { "indexed": false, "internalType": "bool", "name": "approved", "type": "bool" } ], "name": "ApprovalForAll", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "buyer", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "prices", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "fees", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "preSupply", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "postSupply", "type": "uint256" } ], "name": "BuyItems", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "recipient", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "claimedAmount", "type": "uint256" } ], "name": "ClaimRewards", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint64", "name": "version", "type": "uint64" } ], "name": "Initialized", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "collection", "type": "address" } ], "name": "SaleClosed", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "seller", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "prices", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "fees", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "preSupply", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "postSupply", "type": "uint256" } ], "name": "SellItems", "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": "amount", "type": "uint256" } ], "name": "Transfer", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": true, "internalType": "uint256", "name": "id", "type": "uint256" } ], "name": "Transfer", "type": "event" }, { "inputs": [], "name": "BASIS_POINTS", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "DOMAIN_SEPARATOR", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "ID_ENCODING_PREFIX", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "MAX_SUPPLY", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "MAX_SUPPLY_404", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "MINT_RICH_BIDS_POINTS", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "MINT_RICH_SHARE_POINTS", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "PROTOCOL_FEE", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "activeSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" }, { "internalType": "address", "name": "", "type": "address" } ], "name": "allowance", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "amountInBank", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender_", "type": "address" }, { "internalType": "uint256", "name": "valueOrId_", "type": "uint256" } ], "name": "approve", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "baseURI", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "buy", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "buyQuota", "outputs": [ { "internalType": "uint256", "name": "prices", "type": "uint256" }, { "internalType": "uint256", "name": "fees", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from_", "type": "address" }, { "internalType": "uint256", "name": "value_", "type": "uint256" } ], "name": "calculateERC721Transfers", "outputs": [ { "internalType": "uint256[]", "name": "tokenIds", "type": "uint256[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "totalRewards", "type": "uint256" }, { "internalType": "uint8", "name": "_v", "type": "uint8" }, { "internalType": "bytes32", "name": "_r", "type": "bytes32" }, { "internalType": "bytes32", "name": "_s", "type": "bytes32" } ], "name": "claimRewards", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "claimedFees", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "decimals", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender_", "type": "address" }, { "internalType": "uint256", "name": "value_", "type": "uint256" } ], "name": "erc20Approve", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner_", "type": "address" } ], "name": "erc20BalanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "erc20TotalSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from_", "type": "address" }, { "internalType": "address", "name": "to_", "type": "address" }, { "internalType": "uint256", "name": "value_", "type": "uint256" } ], "name": "erc20TransferFrom", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender_", "type": "address" }, { "internalType": "uint256", "name": "id_", "type": "uint256" } ], "name": "erc721Approve", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner_", "type": "address" } ], "name": "erc721BalanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "erc721TotalSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "target_", "type": "address" } ], "name": "erc721TransferExempt", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from_", "type": "address" }, { "internalType": "address", "name": "to_", "type": "address" }, { "internalType": "uint256", "name": "id_", "type": "uint256" } ], "name": "erc721TransferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "factoryAddress", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "getApproved", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getERC721QueueLength", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "start_", "type": "uint256" }, { "internalType": "uint256", "name": "count_", "type": "uint256" } ], "name": "getERC721TokensInQueue", "outputs": [ { "internalType": "uint256[]", "name": "", "type": "uint256[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "imageType", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "name_", "type": "string" }, { "internalType": "string", "name": "symbol_", "type": "string" }, { "internalType": "bytes32", "name": "packedData", "type": "bytes32" }, { "internalType": "bytes", "name": "information", "type": "bytes" } ], "name": "initialize", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" }, { "internalType": "address", "name": "", "type": "address" } ], "name": "isApprovedForAll", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "minted", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "nonces", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" }, { "internalType": "address", "name": "", "type": "address" }, { "internalType": "uint256", "name": "", "type": "uint256" }, { "internalType": "bytes", "name": "", "type": "bytes" } ], "name": "onERC721Received", "outputs": [ { "internalType": "bytes4", "name": "", "type": "bytes4" } ], "stateMutability": "pure", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner_", "type": "address" } ], "name": "owned", "outputs": [ { "internalType": "uint256[]", "name": "", "type": "uint256[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "owner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "id_", "type": "uint256" } ], "name": "ownerOf", "outputs": [ { "internalType": "address", "name": "erc721Owner", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner_", "type": "address" }, { "internalType": "address", "name": "spender_", "type": "address" }, { "internalType": "uint256", "name": "value_", "type": "uint256" }, { "internalType": "uint256", "name": "deadline_", "type": "uint256" }, { "internalType": "uint8", "name": "v_", "type": "uint8" }, { "internalType": "bytes32", "name": "r_", "type": "bytes32" }, { "internalType": "bytes32", "name": "s_", "type": "bytes32" } ], "name": "permit", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "processSaleClosed", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "rewardsClaimed", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from_", "type": "address" }, { "internalType": "address", "name": "to_", "type": "address" }, { "internalType": "uint256", "name": "id_", "type": "uint256" } ], "name": "safeTransferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from_", "type": "address" }, { "internalType": "address", "name": "to_", "type": "address" }, { "internalType": "uint256", "name": "id_", "type": "uint256" }, { "internalType": "bytes", "name": "data_", "type": "bytes" } ], "name": "safeTransferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "saleBalance", "outputs": [ { "internalType": "uint256", "name": "balance", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "salePhase", "outputs": [ { "internalType": "enum MintRichCommonStorage.SalePhase", "name": "", "type": "uint8" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "sell", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "sellQuota", "outputs": [ { "internalType": "uint256", "name": "prices", "type": "uint256" }, { "internalType": "uint256", "name": "fees", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "operator_", "type": "address" }, { "internalType": "bool", "name": "approved_", "type": "bool" } ], "name": "setApprovalForAll", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes4", "name": "interfaceId", "type": "bytes4" } ], "name": "supportsInterface", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "tokenURI", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalFees", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "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": "valueOrId_", "type": "uint256" } ], "name": "transferFrom", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "units", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "stateMutability": "payable", "type": "receive" } ]
6080604052348015600e575f80fd5b5060156019565b60c9565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff161560685760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b039081161460c65780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b615f42806100d65f395ff3fe608060405260043610610395575f3560e01c806395d89b41116101de578063d96ca0b911610108578063e985e9c51161009d578063f67cedb11161006d578063f67cedb114610b71578063f780bc1a14610b85578063fab14b3614610ba4578063fc902f4714610bb8575f80fd5b8063e985e9c514610ae6578063ecc1167214610b1f578063f31af75114610b33578063f58c35ed14610b52575f80fd5b8063dfabc033116100d8578063dfabc03314610a82578063e1f1c4a714610673578063e4849b3214610aa1578063e4f2487a14610ac0575f80fd5b8063d96ca0b9146109f9578063db986d5114610a18578063dd62ed3e14610a2d578063dd63769914610a63575f80fd5b8063b3f9ea341161017e578063c87b56dd1161014e578063c87b56dd1461097d578063d3f730fd1461099c578063d505accf146109c7578063d96a094a146109e6575f80fd5b8063b3f9ea34146108f4578063b88d4fde14610935578063babd701214610954578063c5ab3ba614610969575f80fd5b8063a22cb465116101b9578063a22cb46514610856578063a447b52d14610875578063a9059cbb146108a9578063b1ab9317146108c8575f80fd5b806395d89b41146107fc578063966dae0e14610810578063976a843514610841575f80fd5b8063313ce567116102bf5780636352211e1161025f57806371b88d9a1161022f57806371b88d9a1461078a5780637ecebe00146107a957806389fb4c66146107d45780638da5cb5b146107e8575f80fd5b80636352211e146107085780636c0360eb146107275780636e8f624b1461073b57806370a082311461075f575f80fd5b80633ad1a2321161029a5780633ad1a2321461069c57806342842e0e146106b55780634d966072146106d45780634f02c420146106f3575f80fd5b8063313ce5671461064857806332cb6b0c146106735780633644e51514610688575f80fd5b80630b4501fd11610335578063150b7a0211610305578063150b7a021461058a57806316f834e4146105ff57806318160ddd1461061457806323b872dd14610629575f80fd5b80630b4501fd1461052b5780630c21e6e31461053f5780630f0170d31461055457806313114a9d14610575575f80fd5b8063081812fc11610370578063081812fc14610444578063095ea7b3146104aa57806309674eb0146104c957806309f0ef651461050c575f80fd5b806301ffc9a7146103a057806302519da3146103d457806306fdde0314610423575f80fd5b3661039c57005b5f80fd5b3480156103ab575f80fd5b506103bf6103ba366004615155565b610bcd565b60405190151581526020015b60405180910390f35b3480156103df575f80fd5b506104156103ee366004615191565b73ffffffffffffffffffffffffffffffffffffffff165f908152600a602052604090205490565b6040519081526020016103cb565b34801561042e575f80fd5b50610437610cfd565b6040516103cb91906151f8565b34801561044f575f80fd5b5061048561045e36600461520a565b600c6020525f908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016103cb565b3480156104b5575f80fd5b506103bf6104c4366004615221565b610d89565b3480156104d4575f80fd5b505f546fffffffffffffffffffffffffffffffff80821670010000000000000000000000000000000090920481169190910316610415565b348015610517575f80fd5b506103bf610526366004615191565b610dc6565b348015610536575f80fd5b50610415606481565b34801561054a575f80fd5b5061041560175481565b34801561055f575f80fd5b5061057361056e366004615289565b610e10565b005b348015610580575f80fd5b5061041560165481565b348015610595575f80fd5b506105ce6105a4366004615325565b7f150b7a020000000000000000000000000000000000000000000000000000000095945050505050565b6040517fffffffff0000000000000000000000000000000000000000000000000000000090911681526020016103cb565b34801561060a575f80fd5b506104156103e881565b34801561061f575f80fd5b5061041560065481565b348015610634575f80fd5b506103bf610643366004615393565b6110aa565b348015610653575f80fd5b506004546106619060ff1681565b60405160ff90911681526020016103cb565b34801561067e575f80fd5b5061041561271081565b348015610693575f80fd5b506104156110e6565b3480156106a7575f80fd5b506012546106619060ff1681565b3480156106c0575f80fd5b506105736106cf366004615393565b6110ff565b3480156106df575f80fd5b506103bf6106ee366004615221565b61111e565b3480156106fe575f80fd5b5061041560075481565b348015610713575f80fd5b5061048561072236600461520a565b6111dc565b348015610732575f80fd5b50610437611291565b348015610746575f80fd5b5061041570010000000000000000000000000000000081565b34801561076a575f80fd5b50610415610779366004615191565b600a6020525f908152604090205481565b348015610795575f80fd5b506105736107a43660046153e1565b61129e565b3480156107b4575f80fd5b506104156107c3366004615191565b60116020525f908152604090205481565b3480156107df575f80fd5b50600654610415565b3480156107f3575f80fd5b5061048561154a565b348015610807575f80fd5b50610437611602565b34801561081b575f80fd5b5060145461048590610100900473ffffffffffffffffffffffffffffffffffffffff1681565b34801561084c575f80fd5b5061041560055481565b348015610861575f80fd5b50610573610870366004615426565b61160f565b348015610880575f80fd5b5061089461088f36600461520a565b6116f2565b604080519283526020830191909152016103cb565b3480156108b4575f80fd5b506103bf6108c3366004615221565b611721565b3480156108d3575f80fd5b506108e76108e2366004615191565b61177a565b6040516103cb919061545d565b3480156108ff575f80fd5b5061041561090e366004615191565b73ffffffffffffffffffffffffffffffffffffffff165f908152600f602052604090205490565b348015610940575f80fd5b5061057361094f366004615552565b6117f0565b34801561095f575f80fd5b5061041560155481565b348015610974575f80fd5b50600754610415565b348015610988575f80fd5b5061043761099736600461520a565b611952565b3480156109a7575f80fd5b506104156109b6366004615191565b60196020525f908152604090205481565b3480156109d2575f80fd5b506105736109e13660046155cd565b611b59565b6105736109f436600461520a565b611e9f565b348015610a04575f80fd5b506103bf610a13366004615393565b612190565b348015610a23575f80fd5b5061041561232881565b348015610a38575f80fd5b50610415610a47366004615636565b600b60209081525f928352604080842090915290825290205481565b348015610a6e575f80fd5b50610573610a7d366004615393565b6122d1565b348015610a8d575f80fd5b50610573610a9c366004615221565b6124de565b348015610aac575f80fd5b50610573610abb36600461520a565b6125f9565b348015610acb575f80fd5b50601454610ad99060ff1681565b6040516103cb919061568f565b348015610af1575f80fd5b506103bf610b00366004615636565b600d60209081525f928352604080842090915290825290205460ff1681565b348015610b2a575f80fd5b50601c54610415565b348015610b3e575f80fd5b506108e7610b4d366004615221565b6127c2565b348015610b5d575f80fd5b50610894610b6c36600461520a565b61295f565b348015610b7c575f80fd5b50610573612978565b348015610b90575f80fd5b506108e7610b9f3660046156ce565b612efe565b348015610baf575f80fd5b50610415612f99565b348015610bc3575f80fd5b50610415611f4081565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167f409071a5000000000000000000000000000000000000000000000000000000001480610c5f57507fffffffff0000000000000000000000000000000000000000000000000000000082167f01ffc9a700000000000000000000000000000000000000000000000000000000145b80610cab57507fffffffff0000000000000000000000000000000000000000000000000000000082167f80ac58cd00000000000000000000000000000000000000000000000000000000145b80610cf757507fffffffff0000000000000000000000000000000000000000000000000000000082167f36372b0700000000000000000000000000000000000000000000000000000000145b92915050565b60028054610d0a906156ee565b80601f0160208091040260200160405190810160405280929190818152602001828054610d36906156ee565b8015610d815780601f10610d5857610100808354040283529160200191610d81565b820191905f5260205f20905b815481529060010190602001808311610d6457829003601f168201915b505050505081565b5f610d9382612fa6565b15610da757610da283836124de565b610db8565b610db1838361111e565b9050610cf7565b50600192915050565b905090565b5f73ffffffffffffffffffffffffffffffffffffffff82161580610cf757505073ffffffffffffffffffffffffffffffffffffffff165f9081526010602052604090205460ff1690565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000810460ff16159067ffffffffffffffff165f81158015610e5a5750825b90505f8267ffffffffffffffff166001148015610e765750303b155b905081158015610e84575080155b15610ebb576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b84547fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000001660011785558315610f1c5784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff16680100000000000000001785555b610fa68c8c8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f81840152601f19601f820116905080830192505050505050508b8b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201919091525060129250620f42409150612fe99050565b610fae6130a4565b610fb98888886130b4565b601480547fffffffffffffffffffffff000000000000000000000000000000000000000000163361010002179055610fef613174565b601855610ffd30600161324d565b61101c73c36442b4a4522e871399cd717abdd847ab11fe88600161324d565b61103b739fb87f550efc3821438617c1517867da43c6ffd2600161324d565b831561109c5784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b505050505050505050505050565b5f6110b482612fa6565b156110c9576110c48484846122d1565b6110db565b6110d4848484612190565b90506110df565b5060015b9392505050565b5f60085446146110f857610dc16132bf565b5060095490565b61111983838360405180602001604052805f8152506117f0565b505050565b5f73ffffffffffffffffffffffffffffffffffffffff831661116c576040517f5461585f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b335f818152600b6020908152604080832073ffffffffffffffffffffffffffffffffffffffff881680855290835292819020869055518581529192917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a350600192915050565b5f818152600e602052604090205473ffffffffffffffffffffffffffffffffffffffff1661120982612fa6565b61123f576040517f3f6cc76800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff811661128c576040517fc5723b5100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b919050565b60138054610d0a906156ee565b6112a6613342565b3373d23430aa3546c245c03ec1d3a2ab5d80cd98607e6112c982878787876133c3565b73ffffffffffffffffffffffffffffffffffffffff161461134b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f496e76616c6964207369676e657200000000000000000000000000000000000060448201526064015b60405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff81165f9081526019602052604090205485116113d8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f4e6f7468696e6720746f20636c61696d000000000000000000000000000000006044820152606401611342565b73ffffffffffffffffffffffffffffffffffffffff81165f90815260196020526040812054611407908761576c565b9050601754601654611419919061576c565b811115611482576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f496e76616c696420636c61696d20616d6f756e740000000000000000000000006044820152606401611342565b8060175f828254611493919061577f565b909155505073ffffffffffffffffffffffffffffffffffffffff82165f8181526019602052604090819020889055517f1f89f96333d3133000ee447473151fa9606543368f02271c9d95ae14f13bcc67906114f19084815260200190565b60405180910390a261151973ffffffffffffffffffffffffffffffffffffffff83168261349e565b505061154460017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b50505050565b5f600160145460ff16600181111561156457611564615662565b0361156e57505f90565b6014546040517f6352211e00000000000000000000000000000000000000000000000000000000815230600482015261010090910473ffffffffffffffffffffffffffffffffffffffff1690636352211e90602401602060405180830381865afa1580156115de573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610dc19190615792565b60038054610d0a906156ee565b73ffffffffffffffffffffffffffffffffffffffff821661165c576040517fccea9e6f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b335f818152600d6020908152604080832073ffffffffffffffffffffffffffffffffffffffff87168085529083529281902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001686151590811790915590519081529192917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b5f8061170060155484613596565b91506127106117106064846157ad565b61171a91906157f1565b9050915091565b5f73ffffffffffffffffffffffffffffffffffffffff831661176f576040517f9c8d2cd200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6110df3384846135bc565b73ffffffffffffffffffffffffffffffffffffffff81165f908152600f60209081526040918290208054835181840281018401909452808452606093928301828280156117e457602002820191905f5260205f20905b8154815260200190600101908083116117d0575b50505050509050919050565b6117f982612fa6565b61182f576040517f3f6cc76800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61183a8484846110aa565b5073ffffffffffffffffffffffffffffffffffffffff83163b1580159061191b57506040517f150b7a02000000000000000000000000000000000000000000000000000000008082529073ffffffffffffffffffffffffffffffffffffffff85169063150b7a02906118b6903390899088908890600401615804565b6020604051808303815f875af11580156118d2573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906118f69190615842565b7fffffffff000000000000000000000000000000000000000000000000000000001614155b15611544576040517f3da6393100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60605f61195e836111dc565b73ffffffffffffffffffffffffffffffffffffffff16036119db576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f546f6b656e206e6f7420657869737400000000000000000000000000000000006044820152606401611342565b60125460609060ff16611a7457601380546119f5906156ee565b80601f0160208091040260200160405190810160405280929190818152602001828054611a21906156ee565b8015611a6c5780601f10611a4357610100808354040283529160200191611a6c565b820191905f5260205f20905b815481529060010190602001808311611a4f57829003601f168201915b505050505090505b60125460ff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01611ae8576013611ac5611ac07001000000000000000000000000000000008661576c565b613872565b604051602001611ad69291906158fe565b60405160208183030381529060405290505b611b326002611b0b611ac07001000000000000000000000000000000008761576c565b83604051602001611b1e93929190615940565b60405160208183030381529060405261392e565b604051602001611b429190615a03565b604051602081830303815290604052915050919050565b42841015611b93576040517f05787bdf00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611b9c85612fa6565b15611bd3576040517f1f3e0de800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8616611c20576040517f5461585f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f6001611c2b6110e6565b73ffffffffffffffffffffffffffffffffffffffff8a81165f8181526011602090815260409182902080546001810190915582517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98184015280840194909452938d166060840152608083018c905260a083019390935260c08083018b90528151808403909101815260e0830190915280519201919091207f190100000000000000000000000000000000000000000000000000000000000061010083015261010282019290925261012281019190915261014201604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815282825280516020918201205f84529083018083525260ff871690820152606081018590526080810184905260a0016020604051602081039080840390855afa158015611d79573d5f803e3d5ffd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff81161580611df357508773ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b15611e2a576040517f815e1d6400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff9081165f908152600b602090815260408083208a8516808552908352928190208990555188815291928a16917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a350505050505050565b611ea7613342565b5f60145460ff166001811115611ebf57611ebf615662565b14611f26576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f5075626c69632073616c6520656e6465640000000000000000000000000000006044820152606401611342565b5f81118015611f445750611f4081601554611f41919061577f565b11155b611fd0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602760248201527f42757920616d6f756e742065786365656473204d41585f535550504c595f343060448201527f34206c696d6974000000000000000000000000000000000000000000000000006064820152608401611342565b5f80611fdb836116f2565b90925090505f611feb828461577f565b905034811115612057576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f4e6f7420656e6f7567682045544820746f20627579204e4654730000000000006044820152606401611342565b8160165f828254612068919061577f565b9091555050601580549085905f61207f838561577f565b9091555061208e905085613a89565b601554604080518781526020810187905290810185905260608101839052608081019190915233907f7563cea05629dc70313ef5c2c2b487c34f102e2ab13ef2b9b528c5295f142aff9060a00160405180910390a2813411156120ff576120ff6120f8833461576c565b339061349e565b50505050611f406015540361216457601480547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905560405130907f5caab17bad67c53e59f2f0cbddf48b5cbe8616c7facf4543348ce7ae4fbeaa9b905f90a25b61218d60017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b50565b5f73ffffffffffffffffffffffffffffffffffffffff84166121de576040517fddb5de5e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff831661222b576040517f9c8d2cd200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff84165f908152600b602090815260408083203384529091529020547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146122bd5761228c838261576c565b73ffffffffffffffffffffffffffffffffffffffff86165f908152600b602090815260408083203384529091529020555b6122c88585856135bc565b95945050505050565b73ffffffffffffffffffffffffffffffffffffffff831661231e576040517fddb5de5e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff821661236b576040517f9c8d2cd200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f818152600e602052604090205473ffffffffffffffffffffffffffffffffffffffff8481169116146123ca576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff841614801590612420575073ffffffffffffffffffffffffffffffffffffffff83165f908152600d6020908152604080832033845290915290205460ff16155b801561244f57505f818152600c602052604090205473ffffffffffffffffffffffffffffffffffffffff163314155b15612486576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61248f82610dc6565b156124c6576040517f5ce7539700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6124d38383600554613aff565b611119838383613bdf565b5f818152600e602052604090205473ffffffffffffffffffffffffffffffffffffffff16338114801590612542575073ffffffffffffffffffffffffffffffffffffffff81165f908152600d6020908152604080832033845290915290205460ff16155b15612579576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f828152600c602052604080822080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff87811691821790925591518593918516917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a4505050565b612601613342565b5f60145460ff16600181111561261957612619615662565b14612680576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f5075626c69632073616c6520656e6465640000000000000000000000000000006044820152606401611342565b5f811180156126a95750335f908152600a60205260409020546005546126a690836157ad565b11155b61270f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f53656c6c20616d6f756e742065786365656473206f776e656420616d6f756e746044820152606401611342565b5f8061271a8361295f565b90925090505f61272a828461576c565b90508160165f82825461273d919061577f565b9091555050601580549085905f612754838561576c565b90915550612763905085613e43565b601554604080518781526020810187905290810185905260608101839052608081019190915233907f24fdba8550d5339c6fd93dd97b0e3c03badc4f632988ac11c15a86a9832124ad9060a00160405180910390a26120ff338361349e565b60605f6127f08473ffffffffffffffffffffffffffffffffffffffff165f908152600a602052604090205490565b90506127fb84610dc6565b612958575f6005548461280e91906157f1565b90505f6005548561281f9190615a34565b90506005548361282f91906157f1565b60055461283c838661576c565b61284691906157f1565b101561285a578161285681615a47565b9250505b8115612955578167ffffffffffffffff81111561287957612879615494565b6040519080825280602002602001820160405280156128a2578160200160208202803683370190505b5093505f5b82811015612953575f6128bb82600161577f565b73ffffffffffffffffffffffffffffffffffffffff89165f908152600f60205260409020546128ea919061576c565b73ffffffffffffffffffffffffffffffffffffffff89165f908152600f602052604090208054919250908290811061292457612924615a7e565b905f5260205f20015486838151811061293f5761293f615a7e565b6020908102919091010152506001016128a7565b505b50505b5092915050565b5f8061170083601554612972919061576c565b84613596565b612980613342565b33734f8e0c6b39e65ad158560676ba387affa7aa0e17146129fd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f4f6e6c792061646d696e2063616e2070726f63657373000000000000000000006044820152606401611342565b600160145460ff166001811115612a1657612a16615662565b14612a7d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f53616c65206e6f7420636c6f73656400000000000000000000000000000000006044820152606401611342565b5f612a86612f99565b90505f6005546107d0612a9991906157ad565b9050612aa53082613e6f565b5f8073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc23010612add5773c02aaa39b223fe8d0a0e5c4f27ead9083c756cc230612af4565b3073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc25b915091505f80612b048484613f1f565b909250905073ffffffffffffffffffffffffffffffffffffffff8116612b56576040517f76ecffc000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b612b6181600161324d565b6040517f095ea7b300000000000000000000000000000000000000000000000000000000815273c36442b4a4522e871399cd717abdd847ab11fe88600482015260248101869052309063095ea7b3906044016020604051808303815f875af1158015612bcf573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612bf39190615aab565b50600554676124fee993bc0000905f90612c0f906107086157ad565b604080516101608101825273ffffffffffffffffffffffffffffffffffffffff898116808352908916602083015262ffffff8816928201929092527ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff277f06060820152620d8810608082015291925073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc214905f9060a0810183612ca4578a612ca6565b8b5b815260200183612cb6578b612cb8565b8a5b815260200183612cc85784612cca565b855b815260200183612cda5785612cdc565b845b8152739fb87f550efc3821438617c1517867da43c6ffd260208201524260409182015251909150612dd09073c36442b4a4522e871399cd717abdd847ab11fe88907f883164560000000000000000000000000000000000000000000000000000000090612d4d908590602401615ac6565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff00000000000000000000000000000000000000000000000000000000909316929092179091528c6140c0565b506040805160048152602481019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f12210e8a00000000000000000000000000000000000000000000000000000000179052612e479073c36442b4a4522e871399cd717abdd847ab11fe8890614175565b50505050506014546040805160048152602481019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167ffaa0a26400000000000000000000000000000000000000000000000000000000179052612ecc9173ffffffffffffffffffffffffffffffffffffffff6101009091041690614175565b50505050505050612efc60017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b565b60605f8267ffffffffffffffff811115612f1a57612f1a615494565b604051908082528060200260200182016040528015612f43578160200160208202803683370190505b509050835b612f52848661577f565b811015612f9157612f635f82614182565b82612f6e878461576c565b81518110612f7e57612f7e615a7e565b6020908102919091010152600101612f48565b509392505050565b5f610dc15f601554613596565b5f70010000000000000000000000000000000082118015610cf75750507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff141590565b612ff1614223565b6002612ffd8582615bfc565b50600361300a8482615bfc565b5060128260ff161015613049576040517f98790fd500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600480547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660ff84161790558061308283600a615e36565b61308c91906157ad565b6005554660085561309b6132bf565b60095550505050565b6130ac614223565b612efc61428a565b601280547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660ff851690811790915515806130f5575060125460ff166001145b61315b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f496e76616c696420696d616765547970650000000000000000000000000000006044820152606401611342565b61316781830183615e44565b6013906115449082615bfc565b604080518082018252601381527f4d696e74526963684e4654436f6e74726163740000000000000000000000000060209182015281517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f918101919091527fd15cd32b6b0fb1a19a1bc1f23f84a87576a3a6a49751e4b6a697537ffb78eed9918101919091527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a08201525f9060c0015b60405160208183030381529060405280519060200120905090565b80156132615761325c82614292565b61326a565b61326a826142d2565b73ffffffffffffffffffffffffffffffffffffffff919091165f90815260106020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016911515919091179055565b5f7f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f60026040516132f09190615e89565b6040805191829003822060208301939093528101919091527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a082015260c001613232565b7f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0080547ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016133bd576040517f3ee5aeb500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60029055565b601854604080517f34fed911d769e15ec1bbe9a068c2303a82a09cf88c2c233c73c73457cad20f1b602082015273ffffffffffffffffffffffffffffffffffffffff881691810191909152606081018690525f9161349491608001604051602081830303815290604052805190602001206040516020016134769291907f190100000000000000000000000000000000000000000000000000000000000081526002810192909252602282015260420190565b6040516020818303038152906040528051906020012085858561435f565b9695505050505050565b804710156134da576040517fcd786059000000000000000000000000000000000000000000000000000000008152306004820152602401611342565b5f8273ffffffffffffffffffffffffffffffffffffffff16826040515f6040518083038185875af1925050503d805f8114613530576040519150601f19603f3d011682016040523d82523d5f602084013e613535565b606091505b5050905080611119576040517f1425ea4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b5f6135a08361438b565b6135b26135ad848661577f565b61438b565b6110df919061576c565b73ffffffffffffffffffffffffffffffffffffffff8381165f908152600a60205260408082205492851682528120549091906135f9868686613aff565b5f61360387610dc6565b90505f61360f87610dc6565b905081801561361b5750805b613864578115613694575f6005548461363491906157f1565b60055473ffffffffffffffffffffffffffffffffffffffff8a165f908152600a602052604090205461366691906157f1565b613670919061576c565b90505f5b8181101561368d576136858961442e565b600101613674565b5050613864565b80156137015760055473ffffffffffffffffffffffffffffffffffffffff89165f908152600a602052604081205490916136cd916157f1565b6005546136da90876157f1565b6136e4919061576c565b90505f5b8181101561368d576136f98a614593565b6001016136e8565b5f6005548761371091906157f1565b90505f5b818110156137a85773ffffffffffffffffffffffffffffffffffffffff8a165f908152600f602052604081205461374d9060019061576c565b73ffffffffffffffffffffffffffffffffffffffff8c165f908152600f60205260408120805492935090918390811061378857613788615a7e565b905f5260205f200154905061379e8c8c83613bdf565b5050600101613714565b50806005546137d88b73ffffffffffffffffffffffffffffffffffffffff165f908152600a602052604090205490565b6137e291906157f1565b6005546137ef90886157f1565b6137f9919061576c565b11156138085761380889614593565b806005548561381791906157f1565b60055473ffffffffffffffffffffffffffffffffffffffff8b165f908152600a602052604090205461384991906157f1565b613853919061576c565b1115613862576138628861442e565b505b506001979650505050505050565b60605f61387e83614646565b60010190505f8167ffffffffffffffff81111561389d5761389d615494565b6040519080825280601f01601f1916602001820160405280156138c7576020820181803683370190505b5090508181016020015b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff017f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a85049450846138d157509392505050565b606081515f0361394b57505060408051602081019091525f815290565b5f604051806060016040528060408152602001615ecd6040913990505f600384516002613978919061577f565b61398291906157f1565b61398d9060046157ad565b67ffffffffffffffff8111156139a5576139a5615494565b6040519080825280601f01601f1916602001820160405280156139cf576020820181803683370190505b509050600182016020820185865187016020810180515f82525b82841015613a44576003840193508351603f8160121c168701518653600186019550603f81600c1c168701518653600186019550603f8160061c168701518653600186019550603f81168701518653506001850194506139e9565b9052505085516003900660018114613a635760028114613a7657613a7e565b603d6001830353603d6002830353613a7e565b603d60018303535b509195945050505050565b601c543390829015613ae2575f613aa284601c54614727565b9050613abc308460055484613ab791906157ad565b6135bc565b5080601c5f828254613ace919061576c565b90915550613ade9050818561576c565b9150505b8015611119576111198260055483613afa91906157ad565b613e6f565b73ffffffffffffffffffffffffffffffffffffffff8316613b36578060065f828254613b2b919061577f565b90915550613b709050565b73ffffffffffffffffffffffffffffffffffffffff83165f908152600a602052604081208054839290613b6a90849061576c565b90915550505b73ffffffffffffffffffffffffffffffffffffffff8083165f818152600a6020526040908190208054850190555190918516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90613bd29085815260200190565b60405180910390a3505050565b73ffffffffffffffffffffffffffffffffffffffff831615613d2c575f818152600c6020908152604080832080547fffffffffffffffffffffffff000000000000000000000000000000000000000016905573ffffffffffffffffffffffffffffffffffffffff86168352600f90915281208054613c5f9060019061576c565b81548110613c6f57613c6f615a7e565b905f5260205f2001549050818114613ce4575f828152600e602052604081205460a01c73ffffffffffffffffffffffffffffffffffffffff86165f908152600f602052604090208054919250839183908110613ccd57613ccd615a7e565b5f91825260209091200155613ce2828261473c565b505b73ffffffffffffffffffffffffffffffffffffffff84165f908152600f60205260409020805480613d1757613d17615e94565b600190038181905f5260205f20015f90559055505b73ffffffffffffffffffffffffffffffffffffffff821615613dd4575f818152600e6020908152604080832080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8716908101909155808452600f83529083208054600181810183558286529385200185905592529054613dcf918391613dca919061576c565b61473c565b613de3565b5f818152600e60205260408120555b808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050565b613e5530600554836108c391906157ad565b5080601c5f828254613e67919061577f565b909155505050565b73ffffffffffffffffffffffffffffffffffffffff8216613ebc576040517f9c8d2cd200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b70010000000000000000000000000000000081600654613edc919061577f565b1115613f14576040517f303b682f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6111195f83836135bc565b5f80613f2b84846147e4565b91508162ffffff165f03613f4357505f9050806140b9565b5f61409f73c36442b4a4522e871399cd717abdd847ab11fe887f13ead5620000000000000000000000000000000000000000000000000000000087878773ffffffffffffffffffffffffffffffffffffffff831673c02aaa39b223fe8d0a0e5c4f27ead9083c756cc214613fc2576a0425159526f86f2d4e0294613fd2565b6d3dc36367af18f33272dea178b5f75b60405173ffffffffffffffffffffffffffffffffffffffff948516602482015293909216604484015262ffffff1660648301526dffffffffffffffffffffffffffff16608482015260a401604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090931692909217909152614175565b9050808060200190518101906140b59190615792565b9150505b9250929050565b6060814710156140fe576040517fcd786059000000000000000000000000000000000000000000000000000000008152306004820152602401611342565b5f808573ffffffffffffffffffffffffffffffffffffffff1684866040516141269190615ec1565b5f6040518083038185875af1925050503d805f8114614160576040519150601f19603f3d011682016040523d82523d5f602084013e614165565b606091505b5091509150613494868383614897565b60606110df83835f6140c0565b5f6141bb83546fffffffffffffffffffffffffffffffff8082167001000000000000000000000000000000009092048116919091031690565b82106141f3576040517f580821e700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5081546fffffffffffffffffffffffffffffffff9081168201165f90815260018301602052604090205492915050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005468010000000000000000900460ff16612efc576040517fd7e6bcf800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b613570614223565b73ffffffffffffffffffffffffffffffffffffffff81165f908152600f6020526040812054905b81811015611119576142ca83614593565b6001016142b9565b5f6005546143018373ffffffffffffffffffffffffffffffffffffffff165f908152600a602052604090205490565b61430b91906157f1565b90505f6143398373ffffffffffffffffffffffffffffffffffffffff165f908152600f602052604090205490565b90505f5b614347828461576c565b811015611544576143578461442e565b60010161433d565b5f805f8061436f88888888614926565b92509250925061437f8282614a19565b50909695505050505050565b5f80610fa083106143a7576143a2610fa08461576c565b6143b3565b6143b383610fa061576c565b90505f6143f26143ea6143ed670de0b6b3a7640000623d09006143d687806157ad565b6143e0919061577f565b6143ea91906157ad565b90565b614b1c565b90506144266143ea61441961440f670de0b6b3a7640000886157ad565b6143ea908561577f565b66038d7ea4c68000614b8a565b949350505050565b73ffffffffffffffffffffffffffffffffffffffff811661447b576040517f9c8d2cd200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f80546fffffffffffffffffffffffffffffffff80821670010000000000000000000000000000000090920416146144bd576144b65f614b98565b905061452c565b60075f81546144cb90615a47565b9091555060075460010161450b576040517f303b682f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6007546145299070010000000000000000000000000000000061577f565b90505b5f818152600e602052604090205473ffffffffffffffffffffffffffffffffffffffff168015614588576040517f23369fa600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611119818484613bdf565b73ffffffffffffffffffffffffffffffffffffffff81166145e0576040517fddb5de5e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff81165f908152600f6020526040812080546146129060019061576c565b8154811061462257614622615a7e565b905f5260205f2001549050614638825f83613bdf565b6146425f82614c69565b5050565b5f807a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000831061468e577a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000830492506040015b6d04ee2d6d415b85acef810000000083106146ba576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc1000083106146d857662386f26fc10000830492506010015b6305f5e10083106146f0576305f5e100830492506008015b612710831061470457612710830492506004015b60648310614716576064830492506002015b600a8310610cf75760010192915050565b5f81831061473557816110df565b5090919050565b5f828152600e60205260409020546bffffffffffffffffffffffff821115614790576040517ffcb3438c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f928352600e602052604090922073ffffffffffffffffffffffffffffffffffffffff9290921660a09190911b7fffffffffffffffffffffffff000000000000000000000000000000000000000016019055565b5f806147f384846101f4614d40565b90508073ffffffffffffffffffffffffffffffffffffffff163b5f0361481e576101f4915050610cf7565b61482b8484610bb8614d40565b90508073ffffffffffffffffffffffffffffffffffffffff163b5f0361485657610bb8915050610cf7565b6148638484612710614d40565b90508073ffffffffffffffffffffffffffffffffffffffff163b5f0361488e57612710915050610cf7565b505f9392505050565b6060826148ac576148a782614e61565b6110df565b81511580156148d0575073ffffffffffffffffffffffffffffffffffffffff84163b155b1561491f576040517f9996b31500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85166004820152602401611342565b50806110df565b5f80807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a084111561495f57505f91506003905082614a0f565b604080515f808252602082018084528a905260ff891692820192909252606081018790526080810186905260019060a0016020604051602081039080840390855afa1580156149b0573d5f803e3d5ffd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff8116614a0657505f925060019150829050614a0f565b92505f91508190505b9450945094915050565b5f826003811115614a2c57614a2c615662565b03614a35575050565b6001826003811115614a4957614a49615662565b03614a80576040517ff645eedf00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002826003811115614a9457614a94615662565b03614ace576040517ffce698f700000000000000000000000000000000000000000000000000000000815260048101829052602401611342565b6003826003811115614ae257614ae2615662565b03614642576040517fd78bce0c00000000000000000000000000000000000000000000000000000000815260048101829052602401611342565b5f817812725dd1d243aba0e75fe645cc4873f9e65afe688c928e1f21811115614b74576040517fedc236ad00000000000000000000000000000000000000000000000000000000815260048101849052602401611342565b6110df6143ea670de0b6b3a76400008302614ea3565b5f6110df6143ea8484615024565b80545f906fffffffffffffffffffffffffffffffff7001000000000000000000000000000000008204811691168103614bfd576040517f75e52f4f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff016fffffffffffffffffffffffffffffffff9081165f818152600185016020526040812080549190558454909216700100000000000000000000000000000000909102179092555090565b81546fffffffffffffffffffffffffffffffff8082167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01917001000000000000000000000000000000009004811690821603614cf2576040517f8acb5f2700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6fffffffffffffffffffffffffffffffff165f81815260018401602052604090209190915581547fffffffffffffffffffffffffffffffff0000000000000000000000000000000016179055565b5f8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1610614d78575f80fd5b506040805173ffffffffffffffffffffffffffffffffffffffff948516602080830191909152939094168482015262ffffff91909116606080850191909152815180850390910181526080840182528051908301207fff0000000000000000000000000000000000000000000000000000000000000060a08501527f1f98431c8ad98523631ae4a59f267346ea31f98400000000000000000000000060a185015260b58401527fe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b5460d5808501919091528151808503909101815260f59093019052815191012090565b805115614e715780518082602001fd5b6040517f1425ea4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f815f03614eb257505f919050565b506001817001000000000000000000000000000000008110614ed95760409190911b9060801c5b680100000000000000008110614ef45760209190911b9060401c5b6401000000008110614f0b5760109190911b9060201c5b620100008110614f205760089190911b9060101c5b6101008110614f345760049190911b9060081c5b60108110614f475760029190911b9060041c5b60048110614f5757600182901b91505b6001828481614f6857614f686157c4565b048301901c91506001828481614f8057614f806157c4565b048301901c91506001828481614f9857614f986157c4565b048301901c91506001828481614fb057614fb06157c4565b048301901c91506001828481614fc857614fc86157c4565b048301901c91506001828481614fe057614fe06157c4565b048301901c91506001828481614ff857614ff86157c4565b048301901c91505f82848161500f5761500f6157c4565b04905080831061501d578092505b5050919050565b5f80807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848609848602925082811083820303915050805f036150745750670de0b6b3a764000090049050610cf7565b670de0b6b3a764000081106150bf576040517f5173648d0000000000000000000000000000000000000000000000000000000081526004810186905260248101859052604401611342565b5f670de0b6b3a7640000858709620400008185030493109091037d40000000000000000000000000000000000000000000000000000000000002919091177faccb18165bd6fe31ae1cf318dc5b51eee0e1ba569b88cd74c1773b91fac106690291505092915050565b7fffffffff000000000000000000000000000000000000000000000000000000008116811461218d575f80fd5b5f60208284031215615165575f80fd5b81356110df81615128565b73ffffffffffffffffffffffffffffffffffffffff8116811461218d575f80fd5b5f602082840312156151a1575f80fd5b81356110df81615170565b5f81518084528060208401602086015e5f6020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b602081525f6110df60208301846151ac565b5f6020828403121561521a575f80fd5b5035919050565b5f8060408385031215615232575f80fd5b823561523d81615170565b946020939093013593505050565b5f8083601f84011261525b575f80fd5b50813567ffffffffffffffff811115615272575f80fd5b6020830191508360208285010111156140b9575f80fd5b5f805f805f805f6080888a03121561529f575f80fd5b873567ffffffffffffffff808211156152b6575f80fd5b6152c28b838c0161524b565b909950975060208a01359150808211156152da575f80fd5b6152e68b838c0161524b565b909750955060408a0135945060608a0135915080821115615305575f80fd5b506153128a828b0161524b565b989b979a50959850939692959293505050565b5f805f805f60808688031215615339575f80fd5b853561534481615170565b9450602086013561535481615170565b935060408601359250606086013567ffffffffffffffff811115615376575f80fd5b6153828882890161524b565b969995985093965092949392505050565b5f805f606084860312156153a5575f80fd5b83356153b081615170565b925060208401356153c081615170565b929592945050506040919091013590565b803560ff8116811461128c575f80fd5b5f805f80608085870312156153f4575f80fd5b84359350615404602086016153d1565b93969395505050506040820135916060013590565b801515811461218d575f80fd5b5f8060408385031215615437575f80fd5b823561544281615170565b9150602083013561545281615419565b809150509250929050565b602080825282518282018190525f9190848201906040850190845b8181101561437f57835183529284019291840191600101615478565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f67ffffffffffffffff808411156154db576154db615494565b604051601f85017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f0116810190828211818310171561552157615521615494565b81604052809350858152868686011115615539575f80fd5b858560208301375f602087830101525050509392505050565b5f805f8060808587031215615565575f80fd5b843561557081615170565b9350602085013561558081615170565b925060408501359150606085013567ffffffffffffffff8111156155a2575f80fd5b8501601f810187136155b2575f80fd5b6155c1878235602084016154c1565b91505092959194509250565b5f805f805f805f60e0888a0312156155e3575f80fd5b87356155ee81615170565b965060208801356155fe81615170565b9550604088013594506060880135935061561a608089016153d1565b925060a0880135915060c0880135905092959891949750929550565b5f8060408385031215615647575f80fd5b823561565281615170565b9150602083013561545281615170565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b60208101600283106156c8577f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b91905290565b5f80604083850312156156df575f80fd5b50508035926020909101359150565b600181811c9082168061570257607f821691505b602082108103615739577f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b50919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b81810381811115610cf757610cf761573f565b80820180821115610cf757610cf761573f565b5f602082840312156157a2575f80fd5b81516110df81615170565b8082028115828204841417610cf757610cf761573f565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f826157ff576157ff6157c4565b500490565b5f73ffffffffffffffffffffffffffffffffffffffff80871683528086166020840152508360408301526080606083015261349460808301846151ac565b5f60208284031215615852575f80fd5b81516110df81615128565b5f8154615869816156ee565b6001828116801561588157600181146158b457612953565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0084168752821515830287019450612953565b855f526020805f205f5b858110156158d75781548a8201529084019082016158be565b5050509590910195945050505050565b5f81518060208401855e5f93019283525090919050565b5f61591261590c838661585d565b846158e7565b7f2e706e67000000000000000000000000000000000000000000000000000000008152600401949350505050565b7f7b226e616d65223a22000000000000000000000000000000000000000000000081525f615971600983018661585d565b7f202300000000000000000000000000000000000000000000000000000000000081526159a160028201866158e7565b90507f222c22696d616765223a2200000000000000000000000000000000000000000081526159d3600b8201856158e7565b7f227d00000000000000000000000000000000000000000000000000000000000081526002019695505050505050565b7f646174613a6170706c69636174696f6e2f6a736f6e3b6261736536342c00000081525f6110df601d8301846158e7565b5f82615a4257615a426157c4565b500690565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203615a7757615a7761573f565b5060010190565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f60208284031215615abb575f80fd5b81516110df81615419565b815173ffffffffffffffffffffffffffffffffffffffff16815261016081016020830151615b0c602084018273ffffffffffffffffffffffffffffffffffffffff169052565b506040830151615b23604084018262ffffff169052565b506060830151615b38606084018260020b9052565b506080830151615b4d608084018260020b9052565b5060a083015160a083015260c083015160c083015260e083015160e083015261010080840151818401525061012080840151615ba08285018273ffffffffffffffffffffffffffffffffffffffff169052565b505061014092830151919092015290565b601f82111561111957805f5260205f20601f840160051c81016020851015615bd65750805b601f840160051c820191505b81811015615bf5575f8155600101615be2565b5050505050565b815167ffffffffffffffff811115615c1657615c16615494565b615c2a81615c2484546156ee565b84615bb1565b602080601f831160018114615c7c575f8415615c465750858301515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600386901b1c1916600185901b178555615d10565b5f858152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08616915b82811015615cc857888601518255948401946001909101908401615ca9565b5085821015615d0457878501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600388901b60f8161c191681555b505060018460011b0185555b505050505050565b600181815b80851115615d7157817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04821115615d5757615d5761573f565b80851615615d6457918102915b93841c9390800290615d1d565b509250929050565b5f82615d8757506001610cf7565b81615d9357505f610cf7565b8160018114615da95760028114615db357615dcf565b6001915050610cf7565b60ff841115615dc457615dc461573f565b50506001821b610cf7565b5060208310610133831016604e8410600b8410161715615df2575081810a610cf7565b615dfc8383615d18565b807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04821115615e2e57615e2e61573f565b029392505050565b5f6110df60ff841683615d79565b5f60208284031215615e54575f80fd5b813567ffffffffffffffff811115615e6a575f80fd5b8201601f81018413615e7a575f80fd5b614426848235602084016154c1565b5f6110df828461585d565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603160045260245ffd5b5f6110df82846158e756fe4142434445464748494a4b4c4d4e4f505152535455565758595a6162636465666768696a6b6c6d6e6f707172737475767778797a303132333435363738392b2fa264697066735822122097c275d1b76e5b00297d51c0c6c035e753d605532c8e88f1a25765bf56de7d3764736f6c63430008190033