[ { "inputs": [], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [], "name": "AccessControlBadConfirmation", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "bytes32", "name": "neededRole", "type": "bytes32" } ], "name": "AccessControlUnauthorizedAccount", "type": "error" }, { "inputs": [], "name": "AlreadyClaimedMax", "type": "error" }, { "inputs": [], "name": "ApprovalCallerNotOwnerNorApproved", "type": "error" }, { "inputs": [], "name": "ApprovalQueryForNonexistentToken", "type": "error" }, { "inputs": [], "name": "BalanceQueryForZeroAddress", "type": "error" }, { "inputs": [ { "internalType": "uint256", "name": "numerator", "type": "uint256" }, { "internalType": "uint256", "name": "denominator", "type": "uint256" } ], "name": "ERC2981InvalidDefaultRoyalty", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "receiver", "type": "address" } ], "name": "ERC2981InvalidDefaultRoyaltyReceiver", "type": "error" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "internalType": "uint256", "name": "numerator", "type": "uint256" }, { "internalType": "uint256", "name": "denominator", "type": "uint256" } ], "name": "ERC2981InvalidTokenRoyalty", "type": "error" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "internalType": "address", "name": "receiver", "type": "address" } ], "name": "ERC2981InvalidTokenRoyaltyReceiver", "type": "error" }, { "inputs": [], "name": "InvalidMerkleProof", "type": "error" }, { "inputs": [], "name": "InvalidQueryRange", "type": "error" }, { "inputs": [], "name": "MaxSupplyOver", "type": "error" }, { "inputs": [], "name": "MintERC2309QuantityExceedsLimit", "type": "error" }, { "inputs": [], "name": "MintToZeroAddress", "type": "error" }, { "inputs": [], "name": "MintZeroQuantity", "type": "error" }, { "inputs": [ { "internalType": "uint256", "name": "balance", "type": "uint256" } ], "name": "NotEnoughFunds", "type": "error" }, { "inputs": [], "name": "NotMintable", "type": "error" }, { "inputs": [], "name": "OwnerQueryForNonexistentToken", "type": "error" }, { "inputs": [], "name": "OwnershipNotInitializedForExtraData", "type": "error" }, { "inputs": [], "name": "TransferCallerNotOwnerNorApproved", "type": "error" }, { "inputs": [], "name": "TransferFromIncorrectOwner", "type": "error" }, { "inputs": [], "name": "TransferToNonERC721ReceiverImplementer", "type": "error" }, { "inputs": [], "name": "TransferToZeroAddress", "type": "error" }, { "inputs": [], "name": "URIQueryForNonexistentToken", "type": "error" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "approved", "type": "address" }, { "indexed": true, "internalType": "uint256", "name": "tokenId", "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": false, "internalType": "uint256", "name": "_fromTokenId", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "_toTokenId", "type": "uint256" } ], "name": "BatchMetadataUpdate", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "uint256", "name": "fromTokenId", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "toTokenId", "type": "uint256" }, { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" } ], "name": "ConsecutiveTransfer", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "_tokenId", "type": "uint256" } ], "name": "MetadataUpdate", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "indexed": true, "internalType": "bytes32", "name": "previousAdminRole", "type": "bytes32" }, { "indexed": true, "internalType": "bytes32", "name": "newAdminRole", "type": "bytes32" } ], "name": "RoleAdminChanged", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "indexed": true, "internalType": "address", "name": "account", "type": "address" }, { "indexed": true, "internalType": "address", "name": "sender", "type": "address" } ], "name": "RoleGranted", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "indexed": true, "internalType": "address", "name": "account", "type": "address" }, { "indexed": true, "internalType": "address", "name": "sender", "type": "address" } ], "name": "RoleRevoked", "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": "tokenId", "type": "uint256" } ], "name": "Transfer", "type": "event" }, { "inputs": [], "name": "DEFAULT_ADMIN_ROLE", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "MINTER_ROLE", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "PIE_ROLE", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "approve", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "callerIsUserFlg", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "explicitOwnershipOf", "outputs": [ { "components": [ { "internalType": "address", "name": "addr", "type": "address" }, { "internalType": "uint64", "name": "startTimestamp", "type": "uint64" }, { "internalType": "bool", "name": "burned", "type": "bool" }, { "internalType": "uint24", "name": "extraData", "type": "uint24" } ], "internalType": "struct IERC721A.TokenOwnership", "name": "", "type": "tuple" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256[]", "name": "tokenIds", "type": "uint256[]" } ], "name": "explicitOwnershipsOf", "outputs": [ { "components": [ { "internalType": "address", "name": "addr", "type": "address" }, { "internalType": "uint64", "name": "startTimestamp", "type": "uint64" }, { "internalType": "bool", "name": "burned", "type": "bool" }, { "internalType": "uint24", "name": "extraData", "type": "uint24" } ], "internalType": "struct IERC721A.TokenOwnership[]", "name": "", "type": "tuple[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "getApproved", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" } ], "name": "getRoleAdmin", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "account", "type": "address" } ], "name": "grantRole", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "account", "type": "address" } ], "name": "hasRole", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "address", "name": "operator", "type": "address" } ], "name": "isApprovedForAll", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "isPremium", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "enum TicketID", "name": "", "type": "uint8" } ], "name": "maxSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "enum TicketID", "name": "", "type": "uint8" } ], "name": "merkleRoot", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_mintAmount", "type": "uint256" }, { "internalType": "uint256", "name": "_presaleMax", "type": "uint256" }, { "internalType": "bytes32[]", "name": "_merkleProof", "type": "bytes32[]" }, { "internalType": "address", "name": "_recipient", "type": "address" }, { "internalType": "enum TicketID", "name": "ticket", "type": "uint8" } ], "name": "mintPie", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [], "name": "mintable", "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": "enum TicketID", "name": "", "type": "uint8" } ], "name": "nftCost", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_address", "type": "address" }, { "internalType": "uint256", "name": "_mintAmount", "type": "uint256" }, { "internalType": "enum TicketID", "name": "_ticket", "type": "uint8" } ], "name": "ownerMint", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "ownerOf", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_mintAmount", "type": "uint256" }, { "internalType": "uint256", "name": "_presaleMax", "type": "uint256" }, { "internalType": "bytes32[]", "name": "_merkleProof", "type": "bytes32[]" }, { "internalType": "enum TicketID", "name": "_ticket", "type": "uint8" } ], "name": "preMint", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "internalType": "enum TicketID", "name": "", "type": "uint8" } ], "name": "presalePhase", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_to", "type": "address" }, { "internalType": "uint256", "name": "_mintAmount", "type": "uint256" }, { "internalType": "enum TicketID", "name": "ticket", "type": "uint8" } ], "name": "publicMint", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [], "name": "publicSale", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "renounceOwnerMint", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "renounceOwnerMintFlag", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "callerConfirmation", "type": "address" } ], "name": "renounceRole", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "revealed", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "account", "type": "address" } ], "name": "revokeRole", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "internalType": "uint256", "name": "salePrice", "type": "uint256" } ], "name": "royaltyInfo", "outputs": [ { "internalType": "address", "name": "", "type": "address" }, { "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": "tokenId", "type": "uint256" } ], "name": "safeTransferFrom", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "internalType": "bytes", "name": "_data", "type": "bytes" } ], "name": "safeTransferFrom", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "operator", "type": "address" }, { "internalType": "bool", "name": "approved", "type": "bool" } ], "name": "setApprovalForAll", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "_newBaseURI", "type": "string" } ], "name": "setBaseURI", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bool", "name": "flg", "type": "bool" } ], "name": "setCallerIsUserFlg", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "receiver", "type": "address" }, { "internalType": "uint96", "name": "feeNumerator", "type": "uint96" } ], "name": "setDefaultRoyalty", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_max_supply", "type": "uint256" }, { "internalType": "enum TicketID", "name": "_ticket", "type": "uint8" } ], "name": "setMaxSupply", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "_merkleRoot", "type": "bytes32" }, { "internalType": "enum TicketID", "name": "ticket", "type": "uint8" } ], "name": "setMerkleRoot", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bool", "name": "_state", "type": "bool" } ], "name": "setMintable", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_cost", "type": "uint256" }, { "internalType": "enum TicketID", "name": "ticket", "type": "uint8" } ], "name": "setPresaleCost", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bool", "name": "_state", "type": "bool" }, { "internalType": "enum TicketID", "name": "ticket", "type": "uint8" } ], "name": "setPresalePhase", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bool", "name": "_state", "type": "bool" } ], "name": "setPublicPhase", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bool", "name": "flg", "type": "bool" } ], "name": "setRevealed", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "internalType": "string", "name": "metadata", "type": "string" } ], "name": "setTokenMetadataURI", "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": [ { "internalType": "address", "name": "owner", "type": "address" } ], "name": "tokensOfOwner", "outputs": [ { "internalType": "uint256[]", "name": "", "type": "uint256[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "uint256", "name": "start", "type": "uint256" }, { "internalType": "uint256", "name": "stop", "type": "uint256" } ], "name": "tokensOfOwnerIn", "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": "enum TicketID", "name": "", "type": "uint8" } ], "name": "totalSupplyCategory", "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": "tokenId", "type": "uint256" } ], "name": "transferFrom", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "internalType": "enum TicketID", "name": "", "type": "uint8" }, { "internalType": "address", "name": "", "type": "address" } ], "name": "whiteListClaimed", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "withdraw", "outputs": [], "stateMutability": "nonpayable", "type": "function" } ]
600b805464ffffffffff19166201000017905560e0604052603f608081815290620037ec60a039600c90620000359082620003a2565b506040518060600160405280603f8152602001620037ad603f9139600d906200005f9082620003a2565b5060408051808201909152601881527f68747470733a2f2f617277656176652e6e65742f6161612f00000000000000006020820152600e90620000a39082620003a2565b50348015620000b157600080fd5b5060408051808201825260038082526234b4ab60e91b6020808401829052845180860190955291845290830152906002620000ed8382620003a2565b506003620000fc8282620003a2565b505060016000908155620001129150336200024a565b506200013f7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a6336200024a565b5067011c37937e0800007f6e0956cda88cad152e89927e53611735b61a5c762d1428573c6931b0a5efcb0155667c5850872380007f8c6065603763fec3f5742441d3833f3f43b982453612d76adb39a885e3006b5f556105dc7f4ad3b33220dddc71b994a52d72c06b10862965f7d926534c05c00fb7e819e7b75561020c7f17bc176d2408558f6e4111feebc3cab4e16b63e967be91cde721f4c8a488b55255600f6020527ff4803e074bd026baaf6ed2e288c9515f68c72fb7216eebdd7cae1718a53ec3758054600160ff19918216811790925560008290527f169f97de0d9a84d840042b17d3c6b9638b3d6fd9024c9eb0c7a306a17b49f88f805490911690911790556200046e565b6000828152600a602090815260408083206001600160a01b038516845290915281205460ff16620002f3576000838152600a602090815260408083206001600160a01b03861684529091529020805460ff19166001179055620002aa3390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a4506001620002f7565b5060005b92915050565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200032857607f821691505b6020821081036200034957634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200039d57600081815260208120601f850160051c81016020861015620003785750805b601f850160051c820191505b81811015620003995782815560010162000384565b5050505b505050565b81516001600160401b03811115620003be57620003be620002fd565b620003d681620003cf845462000313565b846200034f565b602080601f8311600181146200040e5760008415620003f55750858301515b600019600386901b1c1916600185901b17855562000399565b600085815260208120601f198616915b828110156200043f578886015182559484019460019091019084016200041e565b50858210156200045e5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b61332f806200047e6000396000f3fe60806040526004361061036b5760003560e01c80635bbb2177116101c6578063a314bea7116100f7578063cbe242dd11610095578063d913bea91161006f578063d913bea914610a67578063e0a8085314610a87578063e334b26714610aa7578063e985e9c514610ad757600080fd5b8063cbe242dd146109f2578063d539139314610a13578063d547741f14610a4757600080fd5b8063b88d4fde116100d1578063b88d4fde14610973578063c23dc68f14610986578063c76d871a146109b3578063c87b56dd146109d257600080fd5b8063a314bea71461090c578063adbb56b01461092c578063b0c1eb431461093f57600080fd5b806391d148541161016457806399a2557a1161013e57806399a2557a14610897578063a0c6d465146108b7578063a217fddf146108d7578063a22cb465146108ec57600080fd5b806391d148541461082a57806395d89b411461084a57806398f06ab11461085f57600080fd5b806370a08231116101a057806370a082311461079057806370cf0448146107b05780637ae0f496146107d05780638462151c146107fd57600080fd5b80635bbb2177146107235780636352211e146107505780636797fdda1461077057600080fd5b80632d8120b5116102a05780633ccfd60b1161023e57806347ddb4a01161021857806347ddb4a0146106945780634bf365df146106c157806351830227146106e157806355f804b31461070357600080fd5b80633ccfd60b1461064c57806341cffc411461066157806342842e0e1461068157600080fd5b806333bc1c5c1161027a57806333bc1c5c146105ea57806336568abe14610604578063373cf8b3146106245780633887547e1461063757600080fd5b80632d8120b51461057d5780632f2ff15d146105aa5780632f639e08146105ca57600080fd5b806318160ddd1161030d578063248a9ca3116102e7578063248a9ca3146104ce578063285d70d4146104fe5780632a55205a1461051e5780632c46e6911461055d57600080fd5b806318160ddd146104675780631b67cb251461048e57806323b872dd146104bb57600080fd5b806306fdde031161034957806306fdde03146103e7578063081812fc14610409578063095ea7b3146104415780630c2987511461045457600080fd5b806301ffc9a714610370578063029bca78146103a557806304634d8d146103c5575b600080fd5b34801561037c57600080fd5b5061039061038b366004612981565b610b20565b60405190151581526020015b60405180910390f35b3480156103b157600080fd5b506103906103c036600461299e565b610b4f565b3480156103d157600080fd5b506103e56103e03660046129ce565b610b72565b005b3480156103f357600080fd5b506103fc610b8c565b60405161039c9190612a61565b34801561041557600080fd5b5061042961042436600461299e565b610c1e565b6040516001600160a01b03909116815260200161039c565b6103e561044f366004612a74565b610c62565b6103e5610462366004612aad565b610d02565b34801561047357600080fd5b5060015460005403600019015b60405190815260200161039c565b34801561049a57600080fd5b506104806104a9366004612ae9565b60126020526000908152604090205481565b6103e56104c9366004612b04565b610fa2565b3480156104da57600080fd5b506104806104e936600461299e565b6000908152600a602052604090206001015490565b34801561050a57600080fd5b506103e5610519366004612b50565b61113b565b34801561052a57600080fd5b5061053e610539366004612b6b565b611163565b604080516001600160a01b03909316835260208301919091520161039c565b34801561056957600080fd5b506103e5610578366004612c38565b611211565b34801561058957600080fd5b50610480610598366004612ae9565b60116020526000908152604090205481565b3480156105b657600080fd5b506103e56105c5366004612c7e565b61126d565b3480156105d657600080fd5b506103e56105e5366004612caa565b611292565b3480156105f657600080fd5b50600b546103909060ff1681565b34801561061057600080fd5b506103e561061f366004612c7e565b6112db565b6103e5610632366004612d11565b61130e565b34801561064357600080fd5b506103e561134a565b34801561065857600080fd5b506103e561136b565b34801561066d57600080fd5b506103e561067c366004612aad565b6113ba565b6103e561068f366004612b04565b61151b565b3480156106a057600080fd5b506104806106af366004612ae9565b60106020526000908152604090205481565b3480156106cd57600080fd5b50600b546103909062010000900460ff1681565b3480156106ed57600080fd5b50600b5461039090640100000000900460ff1681565b34801561070f57600080fd5b506103e561071e366004612d78565b611536565b34801561072f57600080fd5b5061074361073e366004612dac565b6115a0565b60405161039c9190612e29565b34801561075c57600080fd5b5061042961076b36600461299e565b61166b565b34801561077c57600080fd5b506103e561078b366004612caa565b611676565b34801561079c57600080fd5b506104806107ab366004612e6b565b611698565b3480156107bc57600080fd5b506103e56107cb366004612e86565b6116e6565b3480156107dc57600080fd5b506104806107eb366004612ae9565b60136020526000908152604090205481565b34801561080957600080fd5b5061081d610818366004612e6b565b61173d565b60405161039c9190612eb0565b34801561083657600080fd5b50610390610845366004612c7e565b611845565b34801561085657600080fd5b506103fc611870565b34801561086b57600080fd5b5061048061087a366004612ee8565b601560209081526000928352604080842090915290825290205481565b3480156108a357600080fd5b5061081d6108b2366004612f12565b61187f565b3480156108c357600080fd5b506103e56108d2366004612b50565b611a06565b3480156108e357600080fd5b50610480600081565b3480156108f857600080fd5b506103e5610907366004612f45565b611a25565b34801561091857600080fd5b506103e5610927366004612b50565b611a91565b6103e561093a366004612f6f565b611ab7565b34801561094b57600080fd5b506104807f838a662c853782ef794b54001a73c3bcf60975ab166f7eaac58d57755fe55ae781565b6103e5610981366004612fe5565b611b26565b34801561099257600080fd5b506109a66109a136600461299e565b611b6a565b60405161039c9190613060565b3480156109bf57600080fd5b50600b5461039090610100900460ff1681565b3480156109de57600080fd5b506103fc6109ed36600461299e565b611bf2565b3480156109fe57600080fd5b50600b54610390906301000000900460ff1681565b348015610a1f57600080fd5b506104807f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a681565b348015610a5357600080fd5b506103e5610a62366004612c7e565b611c1f565b348015610a7357600080fd5b506103e5610a82366004612caa565b611c44565b348015610a9357600080fd5b506103e5610aa2366004612b50565b611c66565b348015610ab357600080fd5b50610390610ac2366004612ae9565b600f6020526000908152604090205460ff1681565b348015610ae357600080fd5b50610390610af236600461306e565b6001600160a01b03918216600090815260076020908152604080832093909416825291909152205460ff1690565b6000610b2b82611c92565b80610b3a5750610b3a82611ce0565b80610b495750610b4982611d15565b92915050565b600881901c600090815260166020526040812054600160ff84161b161515610b49565b6000610b7d81611d3a565b610b878383611d47565b505050565b606060028054610b9b9061308a565b80601f0160208091040260200160405190810160405280929190818152602001828054610bc79061308a565b8015610c145780601f10610be957610100808354040283529160200191610c14565b820191906000526020600020905b815481529060010190602001808311610bf757829003601f168201915b5050505050905090565b6000610c2982611dea565b610c46576040516333d1c03960e21b815260040160405180910390fd5b506000908152600660205260409020546001600160a01b031690565b6000610c6d8261166b565b9050336001600160a01b03821614610ca657610c898133610af2565b610ca6576040516367d9dca160e11b815260040160405180910390fd5b60008281526006602052604080822080546001600160a01b0319166001600160a01b0387811691821790925591518593918516917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a4505050565b600b54610100900460ff161515600103610d6a57323314610d6a5760405162461bcd60e51b815260206004820152601e60248201527f5468652063616c6c657220697320616e6f7468657220636f6e7472616374000060448201526064015b60405180910390fd5b600b5462010000900460ff161515600003610d9857604051630952c8a960e11b815260040160405180910390fd5b60116000826001811115610dae57610dae6130c4565b6001811115610dbf57610dbf6130c4565b8152602001908152602001600020548260126000846001811115610de557610de56130c4565b6001811115610df657610df66130c4565b815260200190815260200160002054610e0f91906130f0565b1115610e2e57604051638353b89160e01b815260040160405180910390fd5b8160106000836001811115610e4557610e456130c4565b6001811115610e5657610e566130c4565b815260200190815260200160002054610e6f9190613103565b341015610e9157604051638228b9cb60e01b8152346004820152602401610d61565b600b5460ff16610eb457604051630952c8a960e11b815260040160405180910390fd5b600054610ec18484611e1f565b8260126000846001811115610ed857610ed86130c4565b6001811115610ee957610ee96130c4565b815260200190815260200160002054610f0291906130f0565b60126000846001811115610f1857610f186130c4565b6001811115610f2957610f296130c4565b81526020810191909152604001600090812091909155826001811115610f5157610f516130c4565b03610f9c57805b610f6284836130f0565b811015610f9a57600881901c60009081526016602052604090208054600160ff84161b17905580610f928161311a565b915050610f58565b505b50505050565b6000610fad82611f1d565b9050836001600160a01b0316816001600160a01b031614610fe05760405162a1148160e81b815260040160405180910390fd5b60008281526006602052604090208054338082146001600160a01b0388169091141761102d576110108633610af2565b61102d57604051632ce44b5f60e11b815260040160405180910390fd5b6001600160a01b03851661105457604051633a954ecd60e21b815260040160405180910390fd5b801561105f57600082555b6001600160a01b038681166000908152600560205260408082208054600019019055918716808252919020805460010190554260a01b17600160e11b17600085815260046020526040812091909155600160e11b841690036110f1576001840160008181526004602052604081205490036110ef5760005481146110ef5760008181526004602052604090208490555b505b83856001600160a01b0316876001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45b505050505050565b600061114681611d3a565b50600b8054911515620100000262ff000019909216919091179055565b60008281526009602090815260408083208151808301909252546001600160a01b038116808352600160a01b9091046001600160601b03169282019290925282916111d85750604080518082019091526008546001600160a01b0381168252600160a01b90046001600160601b031660208201525b6020810151600090612710906111f7906001600160601b031687613103565b6112019190613133565b91519350909150505b9250929050565b600061121c81611d3a565b6000838152601460205260409020611234838261319b565b506040518381527ff8e1a15aba9398e019f0b49df1a4fde98ee17ae345cb5f6b5e2c27f5033e8ce79060200160405180910390a1505050565b6000828152600a602052604090206001015461128881611d3a565b610f9c8383611f8c565b600061129d81611d3a565b82601060008460018111156112b4576112b46130c4565b60018111156112c5576112c56130c4565b8152602081019190915260400160002055505050565b6001600160a01b03811633146113045760405163334bd91960e11b815260040160405180910390fd5b610b878282612020565b600b5462010000900460ff16151560000361133c57604051630952c8a960e11b815260040160405180910390fd5b610f9a85858585338661208d565b600061135581611d3a565b50600b805463ff00000019166301000000179055565b600061137681611d3a565b604051733dc31d9d5427714bee8c4d7f33e8fdfaf978b757904780156108fc02916000818181858888f193505050501580156113b6573d6000803e3d6000fd5b5050565b7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a66113e481611d3a565b600b546301000000900460ff16156114355760405162461bcd60e51b81526020600482015260146024820152731bdddb995c881b5a5b9d081c995b9bdd5b98d95960621b6044820152606401610d61565b6000546114428585612461565b8360126000856001811115611459576114596130c4565b600181111561146a5761146a6130c4565b81526020019081526020016000205461148391906130f0565b60126000856001811115611499576114996130c4565b60018111156114aa576114aa6130c4565b815260208101919091526040016000908120919091558360018111156114d2576114d26130c4565b03610f9a57805b6114e385836130f0565b81101561113357600881901c60009081526016602052604090208054600160ff84161b179055806115138161311a565b9150506114d9565b610b8783838360405180602001604052806000815250611b26565b600061154181611d3a565b600e61154d838261319b565b507f6bd5c950a8d8df17f772f5af37cb3655737899cbf903264b9795592da439661c60016115846001546000546000199190030190565b6040805192835260208301919091520160405180910390a15050565b6060816000816001600160401b038111156115bd576115bd612b8d565b60405190808252806020026020018201604052801561160f57816020015b6040805160808101825260008082526020808301829052928201819052606082015282526000199092019101816115db5790505b50905060005b8281146116625761163d8686838181106116315761163161325a565b90506020020135611b6a565b82828151811061164f5761164f61325a565b6020908102919091010152600101611615565b50949350505050565b6000610b4982611f1d565b600061168181611d3a565b82601360008460018111156112b4576112b46130c4565b60006001600160a01b0382166116c1576040516323d3ad8160e21b815260040160405180910390fd5b506001600160a01b03166000908152600560205260409020546001600160401b031690565b60006116f181611d3a565b82600f6000846001811115611708576117086130c4565b6001811115611719576117196130c4565b81526020810191909152604001600020805460ff1916911515919091179055505050565b6060600080600061174d85611698565b90506000816001600160401b0381111561176957611769612b8d565b604051908082528060200260200182016040528015611792578160200160208202803683370190505b5090506117bf60408051608081018252600080825260208201819052918101829052606081019190915290565b60015b838614611839576117d28161247b565b915081604001516118315781516001600160a01b0316156117f257815194505b876001600160a01b0316856001600160a01b03160361183157808387806001019850815181106118245761182461325a565b6020026020010181815250505b6001016117c2565b50909695505050505050565b6000918252600a602090815260408084206001600160a01b0393909316845291905290205460ff1690565b606060038054610b9b9061308a565b60608183106118a157604051631960ccad60e11b815260040160405180910390fd5b6000806118ad60005490565b905060018510156118bd57600194505b808411156118c9578093505b60006118d487611698565b9050848610156118f357858503818110156118ed578091505b506118f7565b5060005b6000816001600160401b0381111561191157611911612b8d565b60405190808252806020026020018201604052801561193a578160200160208202803683370190505b509050816000036119505793506119ff92505050565b600061195b88611b6a565b90506000816040015161196c575080515b885b88811415801561197e5750848714155b156119f35761198c8161247b565b925082604001516119eb5782516001600160a01b0316156119ac57825191505b8a6001600160a01b0316826001600160a01b0316036119eb57808488806001019950815181106119de576119de61325a565b6020026020010181815250505b60010161196e565b50505092835250909150505b9392505050565b6000611a1181611d3a565b50600b805460ff1916911515919091179055565b3360008181526007602090815260408083206001600160a01b03871680855290835292819020805460ff191686151590811790915590519081529192917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b6000611a9c81611d3a565b50600b80549115156101000261ff0019909216919091179055565b600b5462010000900460ff161515600003611ae557604051630952c8a960e11b815260040160405180910390fd5b7f838a662c853782ef794b54001a73c3bcf60975ab166f7eaac58d57755fe55ae7611b0f81611d3a565b611b1d87878787878761208d565b50505050505050565b611b31848484610fa2565b6001600160a01b0383163b15610f9c57611b4d848484846124b7565b610f9c576040516368d2bf6b60e11b815260040160405180910390fd5b6040805160808101825260008082526020820181905291810182905260608101919091526040805160808101825260008082526020820181905291810182905260608101919091526001831080611bc357506000548310155b15611bce5792915050565b611bd78361247b565b9050806040015115611be95792915050565b6119ff836125a3565b600b54606090640100000000900460ff1615611c1157610b49826125d8565b610b49826126ea565b919050565b6000828152600a6020526040902060010154611c3a81611d3a565b610f9c8383612020565b6000611c4f81611d3a565b82601160008460018111156112b4576112b46130c4565b6000611c7181611d3a565b50600b80549115156401000000000264ff0000000019909216919091179055565b60006301ffc9a760e01b6001600160e01b031983161480611cc357506380ac58cd60e01b6001600160e01b03198316145b80610b495750506001600160e01b031916635b5e139f60e01b1490565b60006001600160e01b0319821663152a902d60e11b1480610b4957506301ffc9a760e01b6001600160e01b0319831614610b49565b60006001600160e01b03198216637965db0b60e01b1480610b495750610b4982611ce0565b611d448133612728565b50565b6127106001600160601b038216811015611d8657604051636f483d0960e01b81526001600160601b038316600482015260248101829052604401610d61565b6001600160a01b038316611db057604051635b6cc80560e11b815260006004820152602401610d61565b50604080518082019091526001600160a01b039092168083526001600160601b039091166020909201829052600160a01b90910217600855565b600081600111158015611dfe575060005482105b8015610b49575050600090815260046020526040902054600160e01b161590565b6000805490829003611e445760405163b562e8dd60e01b815260040160405180910390fd5b6001600160a01b03831660008181526005602090815260408083208054680100000000000000018802019055848352600490915281206001851460e11b4260a01b178317905582840190839083907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8180a4600183015b818114611ef357808360007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600080a4600101611ebb565b5081600003611f1457604051622e076360e81b815260040160405180910390fd5b60005550505050565b60008180600111611f7357600054811015611f735760008181526004602052604081205490600160e01b82169003611f71575b806000036119ff575060001901600081815260046020526040902054611f50565b505b604051636f96cda160e11b815260040160405180910390fd5b6000611f988383611845565b612018576000838152600a602090815260408083206001600160a01b03861684529091529020805460ff19166001179055611fd03390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a4506001610b49565b506000610b49565b600061202c8383611845565b15612018576000838152600a602090815260408083206001600160a01b0386168085529252808320805460ff1916905551339286917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a4506001610b49565b601160008260018111156120a3576120a36130c4565b60018111156120b4576120b46130c4565b81526020019081526020016000205486601260008460018111156120da576120da6130c4565b60018111156120eb576120eb6130c4565b81526020019081526020016000205461210491906130f0565b111561212357604051638353b89160e01b815260040160405180910390fd5b856010600083600181111561213a5761213a6130c4565b600181111561214b5761214b6130c4565b8152602001908152602001600020546121649190613103565b34101561218657604051638228b9cb60e01b8152346004820152602401610d61565b600f600082600181111561219c5761219c6130c4565b60018111156121ad576121ad6130c4565b815260208101919091526040016000205460ff166121de57604051630952c8a960e11b815260040160405180910390fd5b6040516bffffffffffffffffffffffff19606084901b16602082015260348101869052600090605401604051602081830303815290604052805190602001209050858760156000856001811115612237576122376130c4565b6001811115612248576122486130c4565b81526020019081526020016000206000866001600160a01b03166001600160a01b031681526020019081526020016000205461228491906130f0565b11156122a357604051630ce2eab560e11b815260040160405180910390fd5b6122e48585601360008660018111156122be576122be6130c4565b60018111156122cf576122cf6130c4565b81526020019081526020016000205484612761565b6123015760405163582f497d60e11b815260040160405180910390fd5b60005461230e8489611e1f565b8760156000856001811115612325576123256130c4565b6001811115612336576123366130c4565b81526020019081526020016000206000866001600160a01b03166001600160a01b03168152602001908152602001600020600082825461237691906130f0565b9091555088905060126000856001811115612393576123936130c4565b60018111156123a4576123a46130c4565b8152602001908152602001600020546123bd91906130f0565b601260008560018111156123d3576123d36130c4565b60018111156123e4576123e46130c4565b8152602081019190915260400160009081209190915583600181111561240c5761240c6130c4565b0361245757805b61241d89836130f0565b81101561245557600881901c60009081526016602052604090208054600160ff84161b1790558061244d8161311a565b915050612413565b505b5050505050505050565b6113b6828260405180602001604052806000815250612779565b604080516080810182526000808252602082018190529181018290526060810191909152600082815260046020526040902054610b49906127df565b604051630a85bd0160e11b81526000906001600160a01b0385169063150b7a02906124ec903390899088908890600401613270565b6020604051808303816000875af1925050508015612527575060408051601f3d908101601f19168201909252612524918101906132ad565b60015b612585573d808015612555576040519150601f19603f3d011682016040523d82523d6000602084013e61255a565b606091505b50805160000361257d576040516368d2bf6b60e11b815260040160405180910390fd5b805181602001fd5b6001600160e01b031916630a85bd0160e11b1490505b949350505050565b604080516080810182526000808252602082018190529181018290526060810191909152610b496125d383611f1d565b6127df565b60008181526014602052604090208054606091906125f59061308a565b905060000361264c5761260782612826565b60405180604001604052806005815260200164173539b7b760d91b8152506040516020016126369291906132ca565b6040516020818303038152906040529050919050565b600082815260146020526040902080546126659061308a565b80601f01602080910402602001604051908101604052809291908181526020018280546126919061308a565b80156126de5780601f106126b3576101008083540402835291602001916126de565b820191906000526020600020905b8154815290600101906020018083116126c157829003601f168201915b50505050509050919050565b600881901c600090815260166020526040902054606090600160ff84161b161561271b57600c80546126659061308a565b600d80546126659061308a565b6127328282611845565b6113b65760405163e2517d3f60e01b81526001600160a01b038216600482015260248101839052604401610d61565b60008261276f8686856128a9565b1495945050505050565b6127838383611e1f565b6001600160a01b0383163b15610b87576000548281035b6127ad60008683806001019450866124b7565b6127ca576040516368d2bf6b60e11b815260040160405180910390fd5b81811061279a578160005414610f9a57600080fd5b604080516080810182526001600160a01b038316815260a083901c6001600160401b03166020820152600160e01b831615159181019190915260e89190911c606082015290565b606061283182611dea565b61284e57604051630a14c4b560e41b815260040160405180910390fd5b60006128586128ec565b9050805160000361287857604051806020016040528060008152506119ff565b80612882846128fb565b6040516020016128939291906132ca565b6040516020818303038152906040529392505050565b600081815b84811015611662576128d8828787848181106128cc576128cc61325a565b9050602002013561293f565b9150806128e48161311a565b9150506128ae565b6060600e8054610b9b9061308a565b606060a06040510180604052602081039150506000815280825b600183039250600a81066030018353600a9004806129155750819003601f19909101908152919050565b600081831061295b5760008281526020849052604090206119ff565b5060009182526020526040902090565b6001600160e01b031981168114611d4457600080fd5b60006020828403121561299357600080fd5b81356119ff8161296b565b6000602082840312156129b057600080fd5b5035919050565b80356001600160a01b0381168114611c1a57600080fd5b600080604083850312156129e157600080fd5b6129ea836129b7565b915060208301356001600160601b0381168114612a0657600080fd5b809150509250929050565b60005b83811015612a2c578181015183820152602001612a14565b50506000910152565b60008151808452612a4d816020860160208601612a11565b601f01601f19169290920160200192915050565b6020815260006119ff6020830184612a35565b60008060408385031215612a8757600080fd5b612a90836129b7565b946020939093013593505050565b803560028110611c1a57600080fd5b600080600060608486031215612ac257600080fd5b612acb846129b7565b925060208401359150612ae060408501612a9e565b90509250925092565b600060208284031215612afb57600080fd5b6119ff82612a9e565b600080600060608486031215612b1957600080fd5b612b22846129b7565b9250612b30602085016129b7565b9150604084013590509250925092565b80358015158114611c1a57600080fd5b600060208284031215612b6257600080fd5b6119ff82612b40565b60008060408385031215612b7e57600080fd5b50508035926020909101359150565b634e487b7160e01b600052604160045260246000fd5b60006001600160401b0380841115612bbd57612bbd612b8d565b604051601f8501601f19908116603f01168101908282118183101715612be557612be5612b8d565b81604052809350858152868686011115612bfe57600080fd5b858560208301376000602087830101525050509392505050565b600082601f830112612c2957600080fd5b6119ff83833560208501612ba3565b60008060408385031215612c4b57600080fd5b8235915060208301356001600160401b03811115612c6857600080fd5b612c7485828601612c18565b9150509250929050565b60008060408385031215612c9157600080fd5b82359150612ca1602084016129b7565b90509250929050565b60008060408385031215612cbd57600080fd5b82359150612ca160208401612a9e565b60008083601f840112612cdf57600080fd5b5081356001600160401b03811115612cf657600080fd5b6020830191508360208260051b850101111561120a57600080fd5b600080600080600060808688031215612d2957600080fd5b853594506020860135935060408601356001600160401b03811115612d4d57600080fd5b612d5988828901612ccd565b9094509250612d6c905060608701612a9e565b90509295509295909350565b600060208284031215612d8a57600080fd5b81356001600160401b03811115612da057600080fd5b61259b84828501612c18565b60008060208385031215612dbf57600080fd5b82356001600160401b03811115612dd557600080fd5b612de185828601612ccd565b90969095509350505050565b80516001600160a01b031682526020808201516001600160401b03169083015260408082015115159083015260609081015162ffffff16910152565b6020808252825182820181905260009190848201906040850190845b8181101561183957612e58838551612ded565b9284019260809290920191600101612e45565b600060208284031215612e7d57600080fd5b6119ff826129b7565b60008060408385031215612e9957600080fd5b612ea283612b40565b9150612ca160208401612a9e565b6020808252825182820181905260009190848201906040850190845b8181101561183957835183529284019291840191600101612ecc565b60008060408385031215612efb57600080fd5b612f0483612a9e565b9150612ca1602084016129b7565b600080600060608486031215612f2757600080fd5b612f30846129b7565b95602085013595506040909401359392505050565b60008060408385031215612f5857600080fd5b612f61836129b7565b9150612ca160208401612b40565b60008060008060008060a08789031215612f8857600080fd5b863595506020870135945060408701356001600160401b03811115612fac57600080fd5b612fb889828a01612ccd565b9095509350612fcb9050606088016129b7565b9150612fd960808801612a9e565b90509295509295509295565b60008060008060808587031215612ffb57600080fd5b613004856129b7565b9350613012602086016129b7565b92506040850135915060608501356001600160401b0381111561303457600080fd5b8501601f8101871361304557600080fd5b61305487823560208401612ba3565b91505092959194509250565b60808101610b498284612ded565b6000806040838503121561308157600080fd5b612f04836129b7565b600181811c9082168061309e57607f821691505b6020821081036130be57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052602160045260246000fd5b634e487b7160e01b600052601160045260246000fd5b80820180821115610b4957610b496130da565b8082028115828204841417610b4957610b496130da565b60006001820161312c5761312c6130da565b5060010190565b60008261315057634e487b7160e01b600052601260045260246000fd5b500490565b601f821115610b8757600081815260208120601f850160051c8101602086101561317c5750805b601f850160051c820191505b8181101561113357828155600101613188565b81516001600160401b038111156131b4576131b4612b8d565b6131c8816131c2845461308a565b84613155565b602080601f8311600181146131fd57600084156131e55750858301515b600019600386901b1c1916600185901b178555611133565b600085815260208120601f198616915b8281101561322c5788860151825594840194600190910190840161320d565b508582101561324a5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052603260045260246000fd5b6001600160a01b03858116825284166020820152604081018390526080606082018190526000906132a390830184612a35565b9695505050505050565b6000602082840312156132bf57600080fd5b81516119ff8161296b565b600083516132dc818460208801612a11565b8351908301906132f0818360208801612a11565b0194935050505056fea2646970667358221220f9e3aae88dad8ffa605cbc83f3314cde7a58fdb612b860779f7c2575b910a26564736f6c6343000814003368747470733a2f2f617277656176652e6e65742f5958306e6c5a4f6e4d456f37766f356c6c2d7154327247334d63423475664f366a666d704b5073564d6a4568747470733a2f2f617277656176652e6e65742f7a7069524357337a66336c314a484374626a5a6c4f5275613674792d2d306f46765f6e4250567845667963