[ { "inputs": [], "stateMutability": "nonpayable", "type": "constructor" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" }, { "indexed": true, "internalType": "enum AdminActionReason", "name": "reason", "type": "uint8" } ], "name": "AdminBurn", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "previousAdmin", "type": "address" }, { "indexed": false, "internalType": "address", "name": "newAdmin", "type": "address" } ], "name": "AdminChanged", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": false, "internalType": "address", "name": "to", "type": "address" }, { "indexed": true, "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" }, { "indexed": true, "internalType": "enum AdminActionReason", "name": "reason", "type": "uint8" } ], "name": "AdminClawback", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "account", "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": "beacon", "type": "address" } ], "name": "BeaconUpgraded", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "account", "type": "address" }, { "indexed": true, "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" }, { "indexed": false, "internalType": "string", "name": "reason", "type": "string" }, { "indexed": false, "internalType": "bytes", "name": "data", "type": "bytes" } ], "name": "CancelledCredits", "type": "event" }, { "anonymous": false, "inputs": [], "name": "EIP712DomainChanged", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "uint256", "name": "exAnteTokenId", "type": "uint256" }, { "indexed": true, "internalType": "uint256", "name": "exPostTokenId", "type": "uint256" }, { "indexed": true, "internalType": "address", "name": "account", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "ExAnteMinted", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "estimatedAmount", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "verificationPeriodStart", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "verificationPeriodEnd", "type": "uint256" }, { "indexed": false, "internalType": "string", "name": "serialization", "type": "string" } ], "name": "ExPostCreated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "amountToAnteHolders", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "verificationPeriodStart", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "verificationPeriodEnd", "type": "uint256" }, { "indexed": false, "internalType": "string", "name": "monitoringReport", "type": "string" } ], "name": "ExPostVerifiedAndMinted", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "account", "type": "address" }, { "indexed": true, "internalType": "uint256", "name": "exPostTokenId", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "exPostAmountReceived", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "exAnteAmountBurned", "type": "uint256" } ], "name": "ExchangeAnteForPost", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint8", "name": "version", "type": "uint8" } ], "name": "Initialized", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "account", "type": "address" } ], "name": "Paused", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "account", "type": "address" }, { "indexed": true, "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "nftTokenId", "type": "uint256" }, { "indexed": false, "internalType": "bytes", "name": "data", "type": "bytes" } ], "name": "RetiredVintage", "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": "operator", "type": "address" }, { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": false, "internalType": "uint256[]", "name": "ids", "type": "uint256[]" }, { "indexed": false, "internalType": "uint256[]", "name": "values", "type": "uint256[]" } ], "name": "TransferBatch", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "bytes", "name": "signature", "type": "bytes" }, { "components": [ { "internalType": "uint256", "name": "deadline", "type": "uint256" }, { "internalType": "string", "name": "description", "type": "string" }, { "internalType": "address", "name": "signer", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256[]", "name": "tokenIds", "type": "uint256[]" }, { "internalType": "uint256[]", "name": "amounts", "type": "uint256[]" }, { "internalType": "uint256", "name": "nonce", "type": "uint256" } ], "indexed": false, "internalType": "struct signatureBatchTransferPayload", "name": "payload", "type": "tuple" } ], "name": "TransferSignatureValid", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "operator", "type": "address" }, { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "id", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "TransferSingle", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "string", "name": "value", "type": "string" }, { "indexed": true, "internalType": "uint256", "name": "id", "type": "uint256" } ], "name": "URI", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "account", "type": "address" } ], "name": "Unpaused", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "implementation", "type": "address" } ], "name": "Upgraded", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "newEstimate", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "oldEstimate", "type": "uint256" }, { "indexed": true, "internalType": "enum AdminActionReason", "name": "reason", "type": "uint8" } ], "name": "VintageMitigationEstimateChanged", "type": "event" }, { "inputs": [], "name": "ANTE_MINTER_ROLE", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "BLACKLISTED", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "BLACKLISTER_ROLE", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "BURNER_ROLE", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "CLAWBACK_ROLE", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "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": "PAUSER_ROLE", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "POST_MINTER_ROLE", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "UPGRADER_ROLE", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "URI_SETTER_ROLE", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "VERIFIER_ROLE", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_contractRegistry", "type": "address" }, { "internalType": "uint256", "name": "_projectId", "type": "uint256" }, { "internalType": "string", "name": "_projectName", "type": "string" }, { "internalType": "string", "name": "_projectUri", "type": "string" }, { "internalType": "string", "name": "_methodology", "type": "string" } ], "name": "__ProjectStorage_init", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "internalType": "uint256", "name": "amount", "type": "uint256" }, { "internalType": "enum AdminActionReason", "name": "reason", "type": "uint8" } ], "name": "adminClawback", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "uint256", "name": "id", "type": "uint256" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address[]", "name": "accounts", "type": "address[]" }, { "internalType": "uint256[]", "name": "ids", "type": "uint256[]" } ], "name": "balanceOfBatch", "outputs": [ { "internalType": "uint256[]", "name": "", "type": "uint256[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes", "name": "signature", "type": "bytes" }, { "components": [ { "internalType": "uint256", "name": "deadline", "type": "uint256" }, { "internalType": "string", "name": "description", "type": "string" }, { "internalType": "address", "name": "signer", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256[]", "name": "tokenIds", "type": "uint256[]" }, { "internalType": "uint256[]", "name": "amounts", "type": "uint256[]" }, { "internalType": "uint256", "name": "nonce", "type": "uint256" } ], "internalType": "struct signatureBatchTransferPayload", "name": "payload", "type": "tuple" }, { "internalType": "bytes", "name": "data", "type": "bytes" } ], "name": "batchTransferFromSignature", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "burnFromAccount", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes", "name": "signature", "type": "bytes" }, { "components": [ { "internalType": "uint256", "name": "deadline", "type": "uint256" }, { "internalType": "string", "name": "description", "type": "string" }, { "internalType": "address", "name": "signer", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256[]", "name": "tokenIds", "type": "uint256[]" }, { "internalType": "uint256[]", "name": "amounts", "type": "uint256[]" }, { "internalType": "uint256", "name": "nonce", "type": "uint256" } ], "internalType": "struct signatureBatchTransferPayload", "name": "payload", "type": "tuple" }, { "internalType": "string", "name": "comment", "type": "string" }, { "internalType": "bytes", "name": "data", "type": "bytes" } ], "name": "cancelCreditsFromSignature", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "contractRegistry", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "estAmount", "type": "uint256" }, { "internalType": "uint256", "name": "verificationPeriodStart", "type": "uint256" }, { "internalType": "uint256", "name": "verificationPeriodEnd", "type": "uint256" }, { "internalType": "string", "name": "serialization", "type": "string" } ], "name": "createExPostVintage", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "components": [ { "internalType": "string", "name": "serialization", "type": "string" }, { "internalType": "uint256", "name": "estMitigations", "type": "uint256" }, { "internalType": "uint256", "name": "verificationPeriodStart", "type": "uint256" }, { "internalType": "uint256", "name": "verificationPeriodEnd", "type": "uint256" }, { "internalType": "uint256", "name": "lastVerificationTimestamp", "type": "uint256" } ], "internalType": "struct VintageData[]", "name": "vintages", "type": "tuple[]" } ], "name": "createExPostVintageBatch", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "eip712Domain", "outputs": [ { "internalType": "bytes1", "name": "fields", "type": "bytes1" }, { "internalType": "string", "name": "name", "type": "string" }, { "internalType": "string", "name": "version", "type": "string" }, { "internalType": "uint256", "name": "chainId", "type": "uint256" }, { "internalType": "address", "name": "verifyingContract", "type": "address" }, { "internalType": "bytes32", "name": "salt", "type": "bytes32" }, { "internalType": "uint256[]", "name": "extensions", "type": "uint256[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "exAnteToExPostTokenId", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "exPostToExAnteTokenId", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "exPostVintageMapping", "outputs": [ { "internalType": "string", "name": "serialization", "type": "string" }, { "internalType": "uint256", "name": "estMitigations", "type": "uint256" }, { "internalType": "uint256", "name": "verificationPeriodStart", "type": "uint256" }, { "internalType": "uint256", "name": "verificationPeriodEnd", "type": "uint256" }, { "internalType": "uint256", "name": "lastVerificationTimestamp", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "id", "type": "uint256" } ], "name": "exists", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "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": "_contractRegistry", "type": "address" }, { "internalType": "address", "name": "_owner", "type": "address" }, { "internalType": "uint256", "name": "_projectId", "type": "uint256" }, { "internalType": "string", "name": "_projectName", "type": "string" }, { "internalType": "string", "name": "_projectMethodology", "type": "string" }, { "internalType": "string", "name": "_projectUri", "type": "string" } ], "name": "initialize", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "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": "isExPostToken", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "maxAntePercentage", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "methodology", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "uint256", "name": "exPostTokenId", "type": "uint256" }, { "internalType": "uint256", "name": "amount", "type": "uint256" }, { "internalType": "bytes", "name": "data", "type": "bytes" } ], "name": "mintExAnte", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" }, { "internalType": "address", "name": "", "type": "address" }, { "internalType": "uint256[]", "name": "", "type": "uint256[]" }, { "internalType": "uint256[]", "name": "", "type": "uint256[]" }, { "internalType": "bytes", "name": "", "type": "bytes" } ], "name": "onERC1155BatchReceived", "outputs": [ { "internalType": "bytes4", "name": "", "type": "bytes4" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" }, { "internalType": "address", "name": "", "type": "address" }, { "internalType": "uint256", "name": "", "type": "uint256" }, { "internalType": "uint256", "name": "", "type": "uint256" }, { "internalType": "bytes", "name": "", "type": "bytes" } ], "name": "onERC1155Received", "outputs": [ { "internalType": "bytes4", "name": "", "type": "bytes4" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "pause", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "paused", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "projectId", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "projectName", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "projectUri", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "proxiableUUID", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "account", "type": "address" } ], "name": "renounceRole", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "internalType": "uint256", "name": "amount", "type": "uint256" }, { "internalType": "address", "name": "beneficiary", "type": "address" }, { "internalType": "string", "name": "retireeName", "type": "string" }, { "internalType": "string", "name": "customUri", "type": "string" }, { "internalType": "string", "name": "comment", "type": "string" }, { "internalType": "bytes", "name": "data", "type": "bytes" } ], "name": "retire", "outputs": [ { "internalType": "uint256", "name": "nftTokenId", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes", "name": "signature", "type": "bytes" }, { "components": [ { "internalType": "uint256", "name": "deadline", "type": "uint256" }, { "internalType": "string", "name": "description", "type": "string" }, { "internalType": "address", "name": "signer", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256[]", "name": "tokenIds", "type": "uint256[]" }, { "internalType": "uint256[]", "name": "amounts", "type": "uint256[]" }, { "internalType": "uint256", "name": "nonce", "type": "uint256" } ], "internalType": "struct signatureBatchTransferPayload", "name": "payload", "type": "tuple" }, { "internalType": "string", "name": "retireeName", "type": "string" }, { "internalType": "string", "name": "customUri", "type": "string" }, { "internalType": "string", "name": "comment", "type": "string" }, { "internalType": "bytes", "name": "data", "type": "bytes" } ], "name": "retireFromSignature", "outputs": [ { "internalType": "uint256[]", "name": "", "type": "uint256[]" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "retirementMapping", "outputs": [ { "internalType": "address", "name": "retiree", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" }, { "internalType": "uint256", "name": "vintageTokenId", "type": "uint256" }, { "internalType": "string", "name": "retireeName", "type": "string" }, { "internalType": "string", "name": "customUri", "type": "string" }, { "internalType": "string", "name": "comment", "type": "string" } ], "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": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256[]", "name": "ids", "type": "uint256[]" }, { "internalType": "uint256[]", "name": "amounts", "type": "uint256[]" }, { "internalType": "bytes", "name": "data", "type": "bytes" } ], "name": "safeBatchTransferFrom", "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": "uint256", "name": "amount", "type": "uint256" }, { "internalType": "bytes", "name": "data", "type": "bytes" } ], "name": "safeTransferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "", "type": "string" } ], "name": "serializationToExPostTokenIdMapping", "outputs": [ { "internalType": "uint256", "name": "", "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": "string", "name": "newuri", "type": "string" } ], "name": "setURI", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "signatureNonces", "outputs": [ { "internalType": "uint32", "name": "", "type": "uint32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes4", "name": "interfaceId", "type": "bytes4" } ], "name": "supportsInterface", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "testUpgrade", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "pure", "type": "function" }, { "inputs": [], "name": "topTokenId", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "id", "type": "uint256" } ], "name": "totalSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "unpause", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newImplementation", "type": "address" } ], "name": "upgradeTo", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newImplementation", "type": "address" }, { "internalType": "bytes", "name": "data", "type": "bytes" } ], "name": "upgradeToAndCall", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "uri", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "verificationVault", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "internalType": "uint256", "name": "amountVerified", "type": "uint256" }, { "internalType": "uint256", "name": "amountToAnteHolders", "type": "uint256" }, { "internalType": "uint256", "name": "verificationPeriodStart", "type": "uint256" }, { "internalType": "uint256", "name": "verificationPeriodEnd", "type": "uint256" }, { "internalType": "string", "name": "monitoringReport", "type": "string" } ], "name": "verifyAndMintExPost", "outputs": [], "stateMutability": "nonpayable", "type": "function" } ]
60a0604052306080523480156200001557600080fd5b506200002062000026565b620000e7565b600054610100900460ff1615620000935760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff90811614620000e5576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b608051615e556200011f600039600081816111f7015281816112370152818161157c015281816115bc01526116340152615e556000f3fe6080604052600436106102d25760003560e01c8062fdd58e146102d757806301139ca71461030a57806301ffc9a71461032c57806302fe53051461035c5780630e89341c1461037c57806310c1e7a1146103a9578063248a9ca3146103c9578063275d4dec146103e9578063282c51f3146104095780632ea05e441461043d5780632eb2c2d61461045f5780632f2ff15d1461047f5780633584c3841461049f57806336568abe146104cd5780633659cfe6146104ed5780633f4ba83a1461050d5780633fafa1271461052257806341a30d3c146105395780634e1273f4146105595780634f1ef286146105865780634f558e791461059957806352d1902d146105c857806354ff0795146105dd5780635c975abb146106165780635e3bbaab1461062e578063610e70121461065057806361eeb0891461067d5780636929a19c146106945780636f63984d146106c6578063728e68e3146106e6578063748957de1461071757806379c276051461072c5780637f3457101461074c5780638456cb591461076e57806384b0196e146107835780638b42ecc1146107ab5780638f76c1da146107be57806391d14854146107ec5780639a33e3001461080c5780639ab1e278146108215780639d6aed0b146108415780639eeb1d5014610870578063a0e1b17114610885578063a1062771146108a5578063a217fddf146108c5578063a22cb465146108da578063aa8b2ea7146108fa578063abf410e51461091c578063bc197c811461094a578063bd85b0391461098f578063c5bfc65a146109bc578063d5391393146109dc578063d547741f14610a10578063dbd8483d14610a30578063deb0420714610a79578063e63ab1e914610a99578063e7705db614610abb578063e985e9c514610add578063eda3b77b14610b26578063edc0b2e614610b46578063f23a6e6114610b68578063f242432a14610b94578063f515e6f214610bb4578063f72c0d8b14610bd6575b600080fd5b3480156102e357600080fd5b506102f76102f23660046145a2565b610bf8565b6040519081526020015b60405180910390f35b34801561031657600080fd5b5061032a6103253660046146a6565b610c90565b005b34801561033857600080fd5b5061034c61034736600461476d565b610ec3565b6040519015158152602001610301565b34801561036857600080fd5b5061032a61037736600461478a565b610ed4565b34801561038857600080fd5b5061039c6103973660046147be565b610ef9565b604051610301919061482f565b3480156103b557600080fd5b5061032a6103c4366004614842565b610f8d565b3480156103d557600080fd5b506102f76103e43660046147be565b611065565b3480156103f557600080fd5b506102f76104043660046148a2565b61107a565b34801561041557600080fd5b506102f77f3c11d16cbaffd01df69ce1c404f6340ee057498f5f00246190ea54220576a84881565b34801561044957600080fd5b506102f7600080516020615da083398151915281565b34801561046b57600080fd5b5061032a61047a366004614a06565b611106565b34801561048b57600080fd5b5061032a61049a366004614aaf565b611152565b3480156104ab57600080fd5b506102f76104ba3660046147be565b6101fe6020526000908152604090205481565b3480156104d957600080fd5b5061032a6104e8366004614aaf565b611173565b3480156104f957600080fd5b5061032a610508366004614adb565b6111ed565b34801561051957600080fd5b5061032a6112b5565b34801561052e57600080fd5b506102f76101f85481565b34801561054557600080fd5b5061032a610554366004614af6565b6112d5565b34801561056557600080fd5b50610579610574366004614b64565b611449565b6040516103019190614c69565b61032a610594366004614c7c565b611572565b3480156105a557600080fd5b5061034c6105b43660046147be565b600090815260fb6020526040902054151590565b3480156105d457600080fd5b506102f7611627565b3480156105e957600080fd5b506102f76105f836600461478a565b80516020818301810180516101ff8252928201919093012091525481565b34801561062257600080fd5b5060c95460ff1661034c565b34801561063a57600080fd5b506102f7600080516020615de083398151915281565b34801561065c57600080fd5b506101f95461066b9060ff1681565b60405160ff9091168152602001610301565b34801561068957600080fd5b506102f76101f75481565b3480156106a057600080fd5b506106b46106af3660046147be565b6116d6565b60405161030196959493929190614ccc565b3480156106d257600080fd5b5061034c6106e13660046147be565b6118b0565b3480156106f257600080fd5b506107066107013660046147be565b6118d7565b604051610301959493929190614d1f565b34801561072357600080fd5b5061039c61198e565b34801561073857600080fd5b5061032a610747366004614d56565b611a1d565b34801561075857600080fd5b506102f7600080516020615cf983398151915281565b34801561077a57600080fd5b5061032a611ad3565b34801561078f57600080fd5b50610798611af3565b6040516103019796959493929190614e72565b61032a6107b9366004614f3b565b611b93565b3480156107ca57600080fd5b506102f76107d93660046147be565b6101fd6020526000908152604090205481565b3480156107f857600080fd5b5061034c610807366004614aaf565b611e9c565b34801561081857600080fd5b5061039c611ec7565b34801561082d57600080fd5b5061032a61083c366004614fbc565b611ed5565b34801561084d57600080fd5b5060408051808201909152600681526518171817189b60d11b602082015261039c565b34801561087c57600080fd5b5061039c6120c4565b34801561089157600080fd5b5061032a6108a0366004615054565b6120d2565b3480156108b157600080fd5b5061032a6108c0366004615095565b61223e565b3480156108d157600080fd5b506102f7600081565b3480156108e657600080fd5b5061032a6108f5366004615107565b61235b565b34801561090657600080fd5b506102f7600080516020615cd983398151915281565b34801561092857600080fd5b506101fb5461093d906001600160a01b031681565b6040516103019190615143565b34801561095657600080fd5b50610976610965366004614a06565b63bc197c8160e01b95945050505050565b6040516001600160e01b03199091168152602001610301565b34801561099b57600080fd5b506102f76109aa3660046147be565b600090815260fb602052604090205490565b3480156109c857600080fd5b506105796109d7366004615157565b612366565b3480156109e857600080fd5b506102f77f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a681565b348015610a1c57600080fd5b5061032a610a2b366004614aaf565b61279b565b348015610a3c57600080fd5b50610a64610a4b366004614adb565b6101c56020526000908152604090205463ffffffff1681565b60405163ffffffff9091168152602001610301565b348015610a8557600080fd5b5061032a610a94366004615236565b6127b7565b348015610aa557600080fd5b506102f7600080516020615d3983398151915281565b348015610ac757600080fd5b506102f7600080516020615e0083398151915281565b348015610ae957600080fd5b5061034c610af8366004615295565b6001600160a01b03918216600090815260666020908152604080832093909416825291909152205460ff1690565b348015610b3257600080fd5b5061032a610b413660046152bf565b612846565b348015610b5257600080fd5b506102f7600080516020615c3983398151915281565b348015610b7457600080fd5b50610976610b833660046152f2565b63f23a6e6160e01b95945050505050565b348015610ba057600080fd5b5061032a610baf3660046152f2565b61286f565b348015610bc057600080fd5b506102f7600080516020615d8083398151915281565b348015610be257600080fd5b506102f7600080516020615c9983398151915281565b60006001600160a01b038316610c685760405162461bcd60e51b815260206004820152602a60248201527f455243313135353a2061646472657373207a65726f206973206e6f742061207660448201526930b634b21037bbb732b960b11b60648201526084015b60405180910390fd5b5060009081526065602090815260408083206001600160a01b03949094168352929052205490565b600054610100900460ff1615808015610cb05750600054600160ff909116105b80610cd15750610cbf306128b4565b158015610cd1575060005460ff166001145b610ced5760405162461bcd60e51b8152600401610c5f90615356565b6000805460ff191660011790558015610d10576000805461ff0019166101001790555b610d28604051806020016040528060008152506128c3565b610d306128f3565b610d3861291c565b610d406128f3565b610d486128f3565b610d966040518060400160405280600f81526020016e436172626f6e20526567697374727960881b81525060405180604001604052806005815260200164302e302e3160d81b81525061294b565b610da3878686858761223e565b610dae60008761297c565b610dc6600080516020615cf98339815191528761297c565b610dde600080516020615d398339815191528761297c565b610df6600080516020615c398339815191528761297c565b610e0e600080516020615de08339815191528761297c565b610e26600080516020615c998339815191528761297c565b610e3e600080516020615d808339815191528761297c565b610e56600080516020615e008339815191528761297c565b610e6e600080516020615da08339815191528761297c565b610e86600080516020615de08339815191523361297c565b8015610eba576000805461ff001916905560405160018152600080516020615d198339815191529060200160405180910390a15b50505050505050565b6000610ece82612a02565b92915050565b600080516020615cf9833981519152610eec81612a27565b610ef582612a31565b5050565b606060678054610f08906153a4565b80601f0160208091040260200160405190810160405280929190818152602001828054610f34906153a4565b8015610f815780601f10610f5657610100808354040283529160200191610f81565b820191906000526020600020905b815481529060010190602001808311610f6457829003601f168201915b50505050509050919050565b600080516020615c39833981519152610fa581612a27565b83610faf816118b0565b610fcb5760405162461bcd60e51b8152600401610c5f906153d8565b60008581526101fe60205260408120549081900361101457506101f780546001019081905560008681526101fe602090815260408083208490558383526101fd90915290208690555b866001600160a01b031686827f1fe9ade752d24e4f4dca10f5c807a7cc8630c7604280c8b124097d93b5bb02a18860405161105191815260200190565b60405180910390a4610eba87828787612a44565b60009081526097602052604090206001015490565b600087611086816118b0565b6110a25760405162461bcd60e51b8152600401610c5f906153d8565b6001600160a01b03871633036110c8576110c1338a8a89898989612b4e565b91506110fa565b6001600160a01b0387166110db57600080fd5b6110e833888b8b87612bbc565b6110f7878a8a89898989612b4e565b91505b50979650505050505050565b6001600160a01b03851633148061112257506111228533610af8565b61113e5760405162461bcd60e51b8152600401610c5f906153f3565b61114b8585858585612ce6565b5050505050565b61115b82611065565b61116481612a27565b61116e838361297c565b505050565b6001600160a01b03811633146111e35760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b6064820152608401610c5f565b610ef58282612ecc565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036112355760405162461bcd60e51b8152600401610c5f90615441565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611267612f33565b6001600160a01b03161461128d5760405162461bcd60e51b8152600401610c5f9061547b565b61129681612f4f565b604080516000808252602082019092526112b291839190612f67565b50565b600080516020615d398339815191526112cd81612a27565b6112b26130d2565b600080516020615e008339815191526112ed81612a27565b866112f7816118b0565b6113135760405162461bcd60e51b8152600401610c5f906153d8565b858710156113475760405162461bcd60e51b81526020600482015260016024820152601b60f91b6044820152606401610c5f565b60008881526101fe6020526040812054908190036113915786156113915760405162461bcd60e51b81526020600482015260016024820152603960f81b6044820152606401610c5f565b887fe19de0f3da1193000100a217838f49f6bdda20dc974d33b61f92faaf446d181d89898989896040516113c99594939291906154b5565b60405180910390a260006113dd888a6154f6565b1115611407576114078a8a6113f28a8c6154f6565b60405180602001604052806000815250612a44565b60008981526101fc60205260409020600401859055861561143d5761143d308a8960405180602001604052806000815250612a44565b50505050505050505050565b606081518351146114ae5760405162461bcd60e51b815260206004820152602960248201527f455243313135353a206163636f756e747320616e6420696473206c656e677468604482015268040dad2e6dac2e8c6d60bb1b6064820152608401610c5f565b600083516001600160401b038111156114c9576114c96145cc565b6040519080825280602002602001820160405280156114f2578160200160208202803683370190505b50905060005b845181101561156a5761153d8582815181106115165761151661550d565b60200260200101518583815181106115305761153061550d565b6020026020010151610bf8565b82828151811061154f5761154f61550d565b602090810291909101015261156381615523565b90506114f8565b509392505050565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036115ba5760405162461bcd60e51b8152600401610c5f90615441565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166115ec612f33565b6001600160a01b0316146116125760405162461bcd60e51b8152600401610c5f9061547b565b61161b82612f4f565b610ef582826001612f67565b6000306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146116c25760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c6044820152771b1959081d1a1c9bdd59da0819195b1959d85d1958d85b1b60421b6064820152608401610c5f565b50600080516020615cb98339815191525b90565b6102006020526000908152604090208054600182015460028301546003840180546001600160a01b03909416949293919291611711906153a4565b80601f016020809104026020016040519081016040528092919081815260200182805461173d906153a4565b801561178a5780601f1061175f5761010080835404028352916020019161178a565b820191906000526020600020905b81548152906001019060200180831161176d57829003601f168201915b50505050509080600401805461179f906153a4565b80601f01602080910402602001604051908101604052809291908181526020018280546117cb906153a4565b80156118185780601f106117ed57610100808354040283529160200191611818565b820191906000526020600020905b8154815290600101906020018083116117fb57829003601f168201915b50505050509080600501805461182d906153a4565b80601f0160208091040260200160405190810160405280929190818152602001828054611859906153a4565b80156118a65780601f1061187b576101008083540402835291602001916118a6565b820191906000526020600020905b81548152906001019060200180831161188957829003601f168201915b5050505050905086565b60008181526101fc6020526040812080548291906118cd906153a4565b9050119050919050565b6101fc602052600090815260409020805481906118f3906153a4565b80601f016020809104026020016040519081016040528092919081815260200182805461191f906153a4565b801561196c5780601f106119415761010080835404028352916020019161196c565b820191906000526020600020905b81548152906001019060200180831161194f57829003601f168201915b5050505050908060010154908060020154908060030154908060040154905085565b610201805461199c906153a4565b80601f01602080910402602001604051908101604052809291908181526020018280546119c8906153a4565b8015611a155780601f106119ea57610100808354040283529160200191611a15565b820191906000526020600020905b8154815290600101906020018083116119f857829003601f168201915b505050505081565b600080516020615de0833981519152611a3581612a27565b60005b825181101561116e57611ac1838281518110611a5657611a5661550d565b602002602001015160200151848381518110611a7457611a7461550d565b602002602001015160400151858481518110611a9257611a9261550d565b602002602001015160600151868581518110611ab057611ab061550d565b6020026020010151600001516120d2565b80611acb81615523565b915050611a38565b600080516020615d39833981519152611aeb81612a27565b6112b261311e565b600060608060008060006060610191546000801b148015611b15575061019254155b611b595760405162461bcd60e51b81526020600482015260156024820152741152540dcc4c8e88155b9a5b9a5d1a585b1a5e9959605a1b6044820152606401610c5f565b611b6161315b565b611b696131ee565b60408051600080825260208201909252600f60f81b9b939a50919850469750309650945092509050565b838383600080516020615dc0833981519152838383604051611bb7939291906155e3565b60405180910390a16000611d31600080516020615c598339815191528335611be260208601866156ef565b604051602001611bf3929190615735565b60405160208183030381529060405280519060200120856040016020810190611c1c9190614adb565b611c2c6080880160608901614adb565b611c396080890189615745565b604051602001611c4a92919061578e565b60408051601f198184030181529190528051602090910120611c6f60a08a018a615745565b604051602001611c8092919061578e565b604051602081830303815290604052805190602001206101c560008b6040016020810190611cae9190614adb565b6001600160a01b03908116825260208083019390935260409182016000205482519384019a909a529082019790975260608101959095529285166080850152931660a083015260c082019290925260e081019190915263ffffffff90911661010082015261012001604051602081830303815290604052805190602001206131fe565b9050611d858185858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611d7e925050506060860160408701614adb565b853561322b565b506101c56000611d9b6060850160408601614adb565b6001600160a01b0316815260208101919091526040016000908120805463ffffffff1691611dc8836157ba565b91906101000a81548163ffffffff021916908363ffffffff16021790555050611e92866040016020810190611dfd9190614adb565b611e0d6080890160608a01614adb565b611e1a60808a018a615745565b80806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250611e599250505060a08b018b615745565b808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152508c9250612ce6915050565b5050505050505050565b60009182526097602090815260408084206001600160a01b0393909316845291905290205460ff1690565b6101fa805461199c906153a4565b848484600080516020615dc0833981519152838383604051611ef9939291906155e3565b60405180910390a16000611f24600080516020615c598339815191528335611be260208601866156ef565b9050611f718185858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611d7e925050506060860160408701614adb565b506101c56000611f876060850160408601614adb565b6001600160a01b0316815260208101919091526040016000908120805463ffffffff1691611fb4836157ba565b91906101000a81548163ffffffff021916908363ffffffff1602179055505060005b611fe36080890189615745565b905081101561143d576000611ffb60808a018a615745565b8381811061200b5761200b61550d565b9050602002013590506000898060a001906120269190615745565b848181106120365761203661550d565b905060200201359050818a60400160208101906120539190614adb565b6001600160a01b03167f782105afe5542acae5ab54dc3dab8b54887fd38a79f55330b3e1e70c3063d67b838c8c60405161208f939291906157dd565b60405180910390a36120b16120aa60608c0160408d01614adb565b83836132ed565b5050806120bd90615523565b9050611fd6565b610202805461199c906153a4565b600080516020615de08339815191526120ea81612a27565b60006120fe6101f780546001019081905590565b6101fb546040516344d9d59b60e01b81529192506001600160a01b0316906344d9d59b9061213090869060040161482f565b600060405180830381600087803b15801561214a57600080fd5b505af115801561215e573d6000803e3d6000fd5b50505050806101ff846040516121749190615808565b90815260408051602092819003830181209390935560a083018152858352818301899052828101889052606083018790526000608084018190528481526101fc8352208251805191926121cc928492909101906144f6565b5060208201518160010155604082015181600201556060820151816003015560808201518160040155905050807fc5fb6d85b5baef0a615415607787aea341771027b7e4da34da58eaeb661154ea8787878760405161222e9493929190615824565b60405180910390a2505050505050565b600054610100900460ff161580801561225e5750600054600160ff909116105b8061227f575061226d306128b4565b15801561227f575060005460ff166001145b61229b5760405162461bcd60e51b8152600401610c5f90615356565b6000805460ff1916600117905580156122be576000805461ff0019166101001790555b6101fb80546001600160a01b0319166001600160a01b03881617905583516122ee906101fa9060208701906144f6565b506101f88590558251612309906102019060208601906144f6565b50815161231e906102029060208501906144f6565b508015612353576000805461ff001916905560405160018152600080516020615d198339815191529060200160405180910390a15b505050505050565b610ef533838361346f565b60606123756080870187615745565b808060200260200160405190810160405280939291908181526020018383602002808284376000920182905250925050505b8151811015612400576123d28282815181106123c5576123c561550d565b60200260200101516118b0565b6123ee5760405162461bcd60e51b8152600401610c5f906153d8565b806123f881615523565b9150506123a7565b50888888600080516020615dc0833981519152838383604051612425939291906155e3565b60405180910390a16000612450600080516020615c598339815191528335611be260208601866156ef565b905061249d8185858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611d7e925050506060860160408701614adb565b506101c560006124b36060850160408601614adb565b6001600160a01b0316815260208101919091526040016000908120805463ffffffff16916124e0836157ba565b91906101000a81548163ffffffff021916908363ffffffff160217905550508a8060a0019061250f9190615745565b905061251e60808d018d615745565b90501461256d5760405162461bcd60e51b815260206004820152601f60248201527f69647320616e6420616d6f756e7473206c656e677468206d69736d61746368006044820152606401610c5f565b61257d60808c0160608d01614adb565b6001600160a01b031661259660608d0160408e01614adb565b6001600160a01b0316146126825760006125b660808d0160608e01614adb565b6001600160a01b0316036125c957600080fd5b6126826125dc60608d0160408e01614adb565b6125ec60808e0160608f01614adb565b6125f960808f018f615745565b80806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050508e8060a001906126499190615745565b808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152508e9250612ce6915050565b600061269160808d018d615745565b90506001600160401b038111156126aa576126aa6145cc565b6040519080825280602002602001820160405280156126d3578160200160208202803683370190505b50905060005b6126e660808e018e615745565b90508110156127895761275c8d60600160208101906127059190614adb565b8e80608001906127159190615745565b848181106127255761272561550d565b905060200201358f8060a0019061273c9190615745565b8581811061274c5761274c61550d565b905060200201358f8f8f8f612b4e565b82828151811061276e5761276e61550d565b602090810291909101015261278281615523565b90506126d9565b509d9c50505050505050505050505050565b6127a482611065565b6127ad81612a27565b61116e8383612ecc565b600080516020615da08339815191526127cf81612a27565b8160048111156127e1576127e1615849565b604080516001600160a01b038881168252602082018790528792908a16917fa8b90aeef4d9590cac2ff486fc2b5d9749ed41f9388a7eb159eef94cf5fb65ab910160405180910390a46123538686868660405180602001604052806000815250612bbc565b600080516020615da083398151915261285e81612a27565b6128698484846132ed565b50505050565b6001600160a01b03851633148061288b575061288b8533610af8565b6128a75760405162461bcd60e51b8152600401610c5f906153f3565b61114b8585858585612bbc565b6001600160a01b03163b151590565b600054610100900460ff166128ea5760405162461bcd60e51b8152600401610c5f9061585f565b6112b28161354f565b600054610100900460ff1661291a5760405162461bcd60e51b8152600401610c5f9061585f565b565b600054610100900460ff166129435760405162461bcd60e51b8152600401610c5f9061585f565b61291a61357f565b600054610100900460ff166129725760405162461bcd60e51b8152600401610c5f9061585f565b610ef582826135b2565b6129868282611e9c565b610ef55760008281526097602090815260408083206001600160a01b03851684529091529020805460ff191660011790556129be3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b60006001600160e01b03198216630271189760e51b1480610ece5750610ece826135e3565b6112b28133613608565b8051610ef59060679060208401906144f6565b6001600160a01b038416612aa45760405162461bcd60e51b815260206004820152602160248201527f455243313135353a206d696e7420746f20746865207a65726f206164647265736044820152607360f81b6064820152608401610c5f565b336000612ab085613661565b90506000612abd85613661565b9050612ace836000898585896136ac565b60008681526065602090815260408083206001600160a01b038b16845290915281208054879290612b009084906158aa565b909155505060408051878152602081018790526001600160a01b03808a169260009291871691600080516020615c19833981519152910160405180910390a4610eba836000898989896137d5565b6000612b5b8888886132ed565b612b69888888888888613937565b905086886001600160a01b03167f1325d882b2ca749c878a4ab3a393f6e51b69026faa05426b6d1ec6776a3f2f3c888486604051612ba9939291906158c2565b60405180910390a3979650505050505050565b6001600160a01b038416612be25760405162461bcd60e51b8152600401610c5f906158ea565b336000612bee85613661565b90506000612bfb85613661565b9050612c0b8389898585896136ac565b60008681526065602090815260408083206001600160a01b038c16845290915290205485811015612c4e5760405162461bcd60e51b8152600401610c5f9061592f565b60008781526065602090815260408083206001600160a01b038d8116855292528083208985039055908a16825281208054889290612c8d9084906158aa565b909155505060408051888152602081018890526001600160a01b03808b16928c82169291881691600080516020615c19833981519152910160405180910390a4612cdb848a8a8a8a8a6137d5565b505050505050505050565b8151835114612d485760405162461bcd60e51b815260206004820152602860248201527f455243313135353a2069647320616e6420616d6f756e7473206c656e677468206044820152670dad2e6dac2e8c6d60c31b6064820152608401610c5f565b6001600160a01b038416612d6e5760405162461bcd60e51b8152600401610c5f906158ea565b33612d7d8187878787876136ac565b60005b8451811015612e66576000858281518110612d9d57612d9d61550d565b602002602001015190506000858381518110612dbb57612dbb61550d565b60209081029190910181015160008481526065835260408082206001600160a01b038e168352909352919091205490915081811015612e0c5760405162461bcd60e51b8152600401610c5f9061592f565b60008381526065602090815260408083206001600160a01b038e8116855292528083208585039055908b16825281208054849290612e4b9084906158aa565b9250508190555050505080612e5f90615523565b9050612d80565b50846001600160a01b0316866001600160a01b0316826001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8787604051612eb6929190615979565b60405180910390a4612353818787878787613a36565b612ed68282611e9c565b15610ef55760008281526097602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b600080516020615cb9833981519152546001600160a01b031690565b600080516020615c99833981519152610ef581612a27565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff1615612f9a5761116e83613af8565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015612ff4575060408051601f3d908101601f19168201909252612ff19181019061599e565b60015b6130575760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b6064820152608401610c5f565b600080516020615cb983398151915281146130c65760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b6064820152608401610c5f565b5061116e838383613b92565b6130da613bb7565b60c9805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516131149190615143565b60405180910390a1565b613126613c00565b60c9805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586131073390565b6060610193805461316b906153a4565b80601f0160208091040260200160405190810160405280929190818152602001828054613197906153a4565b80156131e45780601f106131b9576101008083540402835291602001916131e4565b820191906000526020600020905b8154815290600101906020018083116131c757829003601f168201915b5050505050905090565b6060610194805461316b906153a4565b6000610ece61320b613c46565b8360405161190160f01b8152600281019290925260228201526042902090565b60006132378585613c55565b9050826001600160a01b0316816001600160a01b031614801561326257506001600160a01b03811615155b6132a25760405162461bcd60e51b8152602060048201526011602482015270496e76616c6964207369676e617475726560781b6044820152606401610c5f565b8142106132e55760405162461bcd60e51b815260206004820152601160248201527014da59db985d1d5c9948195e1c1a5c9959607a1b6044820152606401610c5f565b949350505050565b6001600160a01b03831661334f5760405162461bcd60e51b815260206004820152602360248201527f455243313135353a206275726e2066726f6d20746865207a65726f206164647260448201526265737360e81b6064820152608401610c5f565b33600061335b84613661565b9050600061336884613661565b9050613388838760008585604051806020016040528060008152506136ac565b60008581526065602090815260408083206001600160a01b038a168452909152902054848110156134075760405162461bcd60e51b8152602060048201526024808201527f455243313135353a206275726e20616d6f756e7420657863656564732062616c604482015263616e636560e01b6064820152608401610c5f565b60008681526065602090815260408083206001600160a01b038b81168086529184528285208a8703905582518b81529384018a9052909290881691600080516020615c19833981519152910160405180910390a4604080516020810190915260009052610eba565b816001600160a01b0316836001600160a01b0316036134e25760405162461bcd60e51b815260206004820152602960248201527f455243313135353a2073657474696e6720617070726f76616c20737461747573604482015268103337b91039b2b63360b91b6064820152608401610c5f565b6001600160a01b03838116600081815260666020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b600054610100900460ff166135765760405162461bcd60e51b8152600401610c5f9061585f565b6112b281612a31565b600054610100900460ff166135a65760405162461bcd60e51b8152600401610c5f9061585f565b60c9805460ff19169055565b600054610100900460ff166135d95760405162461bcd60e51b8152600401610c5f9061585f565b610ef58282613c71565b60006001600160e01b03198216637965db0b60e01b1480610ece5750610ece82613cd2565b6136128282611e9c565b610ef55761361f81613d22565b61362a836020613d34565b60405160200161363b9291906159b7565b60408051601f198184030181529082905262461bcd60e51b8252610c5f9160040161482f565b6040805160018082528183019092526060916000919060208083019080368337019050509050828160008151811061369b5761369b61550d565b602090810291909101015292915050565b6136b4613c00565b846136cd600080516020615cd983398151915282611e9c565b156136ea5760405162461bcd60e51b8152600401610c5f90615a26565b84613703600080516020615cd983398151915282611e9c565b156137205760405162461bcd60e51b8152600401610c5f90615a26565b60005b85518110156137c65761020060008783815181106137435761374361550d565b60200260200101518152602001908152602001600020600101546000148061378357506001600160a01b038816158061378357506001600160a01b038716155b6137b45760405162461bcd60e51b8152602060048201526002602482015261313160f01b6044820152606401610c5f565b806137be81615523565b915050613723565b50611e92888888888888613ed6565b6137e7846001600160a01b03166128b4565b156123535760405163f23a6e6160e01b81526001600160a01b0385169063f23a6e61906138209089908990889088908890600401615a41565b6020604051808303816000875af192505050801561385b575060408051601f3d908101601f1916820190925261385891810190615a7b565b60015b61390757613867615a98565b806308c379a0036138a0575061387b615ab3565b8061388657506138a2565b8060405162461bcd60e51b8152600401610c5f919061482f565b505b60405162461bcd60e51b815260206004820152603460248201527f455243313135353a207472616e7366657220746f206e6f6e2d455243313135356044820152732932b1b2b4bb32b91034b6b83632b6b2b73a32b960611b6064820152608401610c5f565b6001600160e01b0319811663f23a6e6160e01b14610eba5760405162461bcd60e51b8152600401610c5f90615b3c565b60008061394c6101f780546001019081905590565b6040805160c0810182526001600160a01b038b8116825260208083018b81528385018d8152606085018c8152608086018c905260a086018b90526000888152610200855296909620855181546001600160a01b03191695169490941784559051600184015551600283015592518051949550919390926139d39260038501929101906144f6565b50608082015180516139ef9160048401916020909101906144f6565b5060a08201518051613a0b9160058401916020909101906144f6565b50905050613a2b8882600160405180602001604052806000815250612a44565b979650505050505050565b613a48846001600160a01b03166128b4565b156123535760405163bc197c8160e01b81526001600160a01b0385169063bc197c8190613a819089908990889088908890600401615b84565b6020604051808303816000875af1925050508015613abc575060408051601f3d908101601f19168201909252613ab991810190615a7b565b60015b613ac857613867615a98565b6001600160e01b0319811663bc197c8160e01b14610eba5760405162461bcd60e51b8152600401610c5f90615b3c565b613b01816128b4565b613b635760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401610c5f565b600080516020615cb983398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b613b9b8361404f565b600082511180613ba85750805b1561116e57612869838361408f565b60c95460ff1661291a5760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b6044820152606401610c5f565b60c95460ff161561291a5760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b6044820152606401610c5f565b6000613c506140b4565b905090565b6000806000613c648585614128565b9150915061156a8161416d565b600054610100900460ff16613c985760405162461bcd60e51b8152600401610c5f9061585f565b8151613cac906101939060208501906144f6565b508051613cc1906101949060208401906144f6565b505060006101918190556101925550565b60006001600160e01b03198216636cdb3d1360e11b1480613d0357506001600160e01b031982166303a24d0760e21b145b80610ece57506301ffc9a760e01b6001600160e01b0319831614610ece565b6060610ece6001600160a01b03831660145b60606000613d43836002615be2565b613d4e9060026158aa565b6001600160401b03811115613d6557613d656145cc565b6040519080825280601f01601f191660200182016040528015613d8f576020820181803683370190505b509050600360fc1b81600081518110613daa57613daa61550d565b60200101906001600160f81b031916908160001a905350600f60fb1b81600181518110613dd957613dd961550d565b60200101906001600160f81b031916908160001a9053506000613dfd846002615be2565b613e089060016158aa565b90505b6001811115613e80576f181899199a1a9b1b9c1cb0b131b232b360811b85600f1660108110613e3c57613e3c61550d565b1a60f81b828281518110613e5257613e5261550d565b60200101906001600160f81b031916908160001a90535060049490941c93613e7981615c01565b9050613e0b565b508315613ecf5760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610c5f565b9392505050565b6001600160a01b038516613f5d5760005b8351811015613f5b57828181518110613f0257613f0261550d565b602002602001015160fb6000868481518110613f2057613f2061550d565b602002602001015181526020019081526020016000206000828254613f4591906158aa565b90915550613f54905081615523565b9050613ee7565b505b6001600160a01b0384166123535760005b8351811015610eba576000848281518110613f8b57613f8b61550d565b602002602001015190506000848381518110613fa957613fa961550d565b60200260200101519050600060fb60008481526020019081526020016000205490508181101561402c5760405162461bcd60e51b815260206004820152602860248201527f455243313135353a206275726e20616d6f756e74206578636565647320746f74604482015267616c537570706c7960c01b6064820152608401610c5f565b600092835260fb60205260409092209103905561404881615523565b9050613f6e565b61405881613af8565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b6060613ecf8383604051806060016040528060278152602001615d59602791396142b2565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f6140df61432a565b6140e7614388565b60408051602081019490945283019190915260608201524660808201523060a082015260c00160405160208183030381529060405280519060200120905090565b600080825160410361415e5760208301516040840151606085015160001a614152878285856143ba565b94509450505050614166565b506000905060025b9250929050565b600081600481111561418157614181615849565b036141895750565b600181600481111561419d5761419d615849565b036141e55760405162461bcd60e51b815260206004820152601860248201527745434453413a20696e76616c6964207369676e617475726560401b6044820152606401610c5f565b60028160048111156141f9576141f9615849565b036142465760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610c5f565b600381600481111561425a5761425a615849565b036112b25760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608401610c5f565b6060600080856001600160a01b0316856040516142cf9190615808565b600060405180830381855af49150503d806000811461430a576040519150601f19603f3d011682016040523d82523d6000602084013e61430f565b606091505b509150915061432086838387614474565b9695505050505050565b60008061433561315b565b80519091501561434c578051602090910120919050565b61019154801561435c5792915050565b7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a4709250505090565b5090565b6000806143936131ee565b8051909150156143aa578051602090910120919050565b61019254801561435c5792915050565b6000806fa2a8918ca85bafe22016d0b997e4df60600160ff1b038311156143e7575060009050600361446b565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa15801561443b573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381166144645760006001925092505061446b565b9150600090505b94509492505050565b606083156144e15782516000036144da5761448e856128b4565b6144da5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610c5f565b50816132e5565b6132e583838151156138865781518083602001fd5b828054614502906153a4565b90600052602060002090601f016020900481019282614524576000855561456a565b82601f1061453d57805160ff191683800117855561456a565b8280016001018555821561456a579182015b8281111561456a57825182559160200191906001019061454f565b506143849291505b808211156143845760008155600101614572565b80356001600160a01b038116811461459d57600080fd5b919050565b600080604083850312156145b557600080fd5b6145be83614586565b946020939093013593505050565b634e487b7160e01b600052604160045260246000fd5b60a081016001600160401b0381118282101715614601576146016145cc565b60405250565b601f8201601f191681016001600160401b038111828210171561462c5761462c6145cc565b6040525050565b600082601f83011261464457600080fd5b81356001600160401b0381111561465d5761465d6145cc565b604051614674601f8301601f191660200182614607565b81815284602083860101111561468957600080fd5b816020850160208301376000918101602001919091529392505050565b60008060008060008060c087890312156146bf57600080fd5b6146c887614586565b95506146d660208801614586565b94506040870135935060608701356001600160401b03808211156146f957600080fd5b6147058a838b01614633565b9450608089013591508082111561471b57600080fd5b6147278a838b01614633565b935060a089013591508082111561473d57600080fd5b5061474a89828a01614633565b9150509295509295509295565b6001600160e01b0319811681146112b257600080fd5b60006020828403121561477f57600080fd5b8135613ecf81614757565b60006020828403121561479c57600080fd5b81356001600160401b038111156147b257600080fd5b6132e584828501614633565b6000602082840312156147d057600080fd5b5035919050565b60005b838110156147f25781810151838201526020016147da565b838111156128695750506000910152565b6000815180845261481b8160208601602086016147d7565b601f01601f19169290920160200192915050565b602081526000613ecf6020830184614803565b6000806000806080858703121561485857600080fd5b61486185614586565b9350602085013592506040850135915060608501356001600160401b0381111561488a57600080fd5b61489687828801614633565b91505092959194509250565b600080600080600080600060e0888a0312156148bd57600080fd5b87359650602088013595506148d460408901614586565b945060608801356001600160401b03808211156148f057600080fd5b6148fc8b838c01614633565b955060808a013591508082111561491257600080fd5b61491e8b838c01614633565b945060a08a013591508082111561493457600080fd5b6149408b838c01614633565b935060c08a013591508082111561495657600080fd5b506149638a828b01614633565b91505092959891949750929550565b60006001600160401b0382111561498b5761498b6145cc565b5060051b60200190565b600082601f8301126149a657600080fd5b813560206149b382614972565b6040516149c08282614607565b83815260059390931b85018201928281019150868411156149e057600080fd5b8286015b848110156149fb57803583529183019183016149e4565b509695505050505050565b600080600080600060a08688031215614a1e57600080fd5b614a2786614586565b9450614a3560208701614586565b935060408601356001600160401b0380821115614a5157600080fd5b614a5d89838a01614995565b94506060880135915080821115614a7357600080fd5b614a7f89838a01614995565b93506080880135915080821115614a9557600080fd5b50614aa288828901614633565b9150509295509295909350565b60008060408385031215614ac257600080fd5b82359150614ad260208401614586565b90509250929050565b600060208284031215614aed57600080fd5b613ecf82614586565b600080600080600080600060e0888a031215614b1157600080fd5b614b1a88614586565b96506020880135955060408801359450606088013593506080880135925060a0880135915060c08801356001600160401b03811115614b5857600080fd5b6149638a828b01614633565b60008060408385031215614b7757600080fd5b82356001600160401b0380821115614b8e57600080fd5b818501915085601f830112614ba257600080fd5b81356020614baf82614972565b604051614bbc8282614607565b83815260059390931b8501820192828101915089841115614bdc57600080fd5b948201945b83861015614c0157614bf286614586565b82529482019490820190614be1565b96505086013592505080821115614c1757600080fd5b50614c2485828601614995565b9150509250929050565b600081518084526020808501945080840160005b83811015614c5e57815187529582019590820190600101614c42565b509495945050505050565b602081526000613ecf6020830184614c2e565b60008060408385031215614c8f57600080fd5b614c9883614586565b915060208301356001600160401b03811115614cb357600080fd5b614c2485828601614633565b6001600160a01b03169052565b60018060a01b038716815285602082015284604082015260c060608201526000614cf960c0830186614803565b8281036080840152614d0b8186614803565b905082810360a08401526110f78185614803565b60a081526000614d3260a0830188614803565b90508560208301528460408301528360608301528260808301529695505050505050565b60006020808385031215614d6957600080fd5b82356001600160401b0380821115614d8057600080fd5b818501915085601f830112614d9457600080fd5b8135614d9f81614972565b60408051614dad8382614607565b83815260059390931b8501860192868101925089841115614dcd57600080fd5b8686015b84811015614e6457803586811115614de95760008081fd5b870160a0818d03601f1901811315614e015760008081fd5b8451614e0c816145e2565b8a83013589811115614e1e5760008081fd5b614e2c8f8d83870101614633565b825250828601358b82015260608084013587830152608080850135918301919091529190920135908201528452928701928701614dd1565b509998505050505050505050565b60ff60f81b8816815260e060208201526000614e9160e0830189614803565b8281036040840152614ea38189614803565b606084018890526001600160a01b038716608085015260a0840186905283810360c08501529050614ed48185614c2e565b9a9950505050505050505050565b60008083601f840112614ef457600080fd5b5081356001600160401b03811115614f0b57600080fd5b60208301915083602082850101111561416657600080fd5b600060e08284031215614f3557600080fd5b50919050565b60008060008060608587031215614f5157600080fd5b84356001600160401b0380821115614f6857600080fd5b614f7488838901614ee2565b90965094506020870135915080821115614f8d57600080fd5b614f9988838901614f23565b93506040870135915080821115614faf57600080fd5b5061489687828801614633565b600080600080600060808688031215614fd457600080fd5b85356001600160401b0380821115614feb57600080fd5b614ff789838a01614ee2565b9097509550602088013591508082111561501057600080fd5b61501c89838a01614f23565b9450604088013591508082111561503257600080fd5b61503e89838a01614633565b93506060880135915080821115614a9557600080fd5b6000806000806080858703121561506a57600080fd5b84359350602085013592506040850135915060608501356001600160401b0381111561488a57600080fd5b600080600080600060a086880312156150ad57600080fd5b6150b686614586565b94506020860135935060408601356001600160401b03808211156150d957600080fd5b6150e589838a01614633565b945060608801359150808211156150fb57600080fd5b614a7f89838a01614633565b6000806040838503121561511a57600080fd5b61512383614586565b91506020830135801515811461513857600080fd5b809150509250929050565b6001600160a01b0391909116815260200190565b600080600080600080600060c0888a03121561517257600080fd5b87356001600160401b038082111561518957600080fd5b6151958b838c01614ee2565b909950975060208a01359150808211156151ae57600080fd5b6151ba8b838c01614f23565b965060408a01359150808211156151d057600080fd5b6151dc8b838c01614633565b955060608a01359150808211156151f257600080fd5b6151fe8b838c01614633565b945060808a013591508082111561521457600080fd5b6152208b838c01614633565b935060a08a013591508082111561495657600080fd5b600080600080600060a0868803121561524e57600080fd5b61525786614586565b945061526560208701614586565b9350604086013592506060860135915060808601356005811061528757600080fd5b809150509295509295909350565b600080604083850312156152a857600080fd5b6152b183614586565b9150614ad260208401614586565b6000806000606084860312156152d457600080fd5b6152dd84614586565b95602085013595506040909401359392505050565b600080600080600060a0868803121561530a57600080fd5b61531386614586565b945061532160208701614586565b9350604086013592506060860135915060808601356001600160401b0381111561534a57600080fd5b614aa288828901614633565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b600181811c908216806153b857607f821691505b602082108103614f3557634e487b7160e01b600052602260045260246000fd5b6020808252600190820152603160f81b604082015260600190565b6020808252602e908201527f455243313135353a2063616c6c6572206973206e6f7420746f6b656e206f776e60408201526d195c881bdc88185c1c1c9bdd995960921b606082015260800190565b6020808252602c90820152600080516020615c7983398151915260408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c90820152600080516020615c7983398151915260408201526b6163746976652070726f787960a01b606082015260800190565b85815284602082015283604082015282606082015260a060808201526000613a2b60a0830184614803565b634e487b7160e01b600052601160045260246000fd5b600082821015615508576155086154e0565b500390565b634e487b7160e01b600052603260045260246000fd5b600060018201615535576155356154e0565b5060010190565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6000808335601e1984360301811261557c57600080fd5b83016020810192503590506001600160401b0381111561559b57600080fd5b8060051b360383131561416657600080fd5b81835260006001600160fb1b038311156155c657600080fd5b8260051b8083602087013760009401602001938452509192915050565b6040815260006155f760408301858761553c565b8281036020840152833581526020840135601e1985360301811261561a57600080fd5b840180356001600160401b0381111561563257600080fd5b80360386131561564157600080fd5b60e0602084015261565960e08401826020850161553c565b91505061566860408601614586565b6156756040840182614cbf565b5061568260608601614586565b61568f6060840182614cbf565b5061569d6080860186615565565b83830360808501526156b08382846155ad565b925050506156c160a0860186615565565b83830360a08501526156d48382846155ad565b9250505060c085013560c08301528092505050949350505050565b6000808335601e1984360301811261570657600080fd5b8301803591506001600160401b0382111561572057600080fd5b60200191503681900382131561416657600080fd5b8183823760009101908152919050565b6000808335601e1984360301811261575c57600080fd5b8301803591506001600160401b0382111561577657600080fd5b6020019150600581901b360382131561416657600080fd5b60006001600160fb1b038311156157a457600080fd5b8260051b80858437600092019182525092915050565b600063ffffffff8083168181036157d3576157d36154e0565b6001019392505050565b8381526060602082015260006157f66060830185614803565b82810360408401526143208185614803565b6000825161581a8184602087016147d7565b9190910192915050565b8481528360208201528260408201526080606082015260006143206080830184614803565b634e487b7160e01b600052602160045260246000fd5b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b600082198211156158bd576158bd6154e0565b500190565b8381528260208201526060604082015260006158e16060830184614803565b95945050505050565b60208082526025908201527f455243313135353a207472616e7366657220746f20746865207a65726f206164604082015264647265737360d81b606082015260800190565b6020808252602a908201527f455243313135353a20696e73756666696369656e742062616c616e636520666f60408201526939103a3930b739b332b960b11b606082015260800190565b60408152600061598c6040830185614c2e565b82810360208401526158e18185614c2e565b6000602082840312156159b057600080fd5b5051919050565b76020b1b1b2b9b9a1b7b73a3937b61d1030b1b1b7bab73a1604d1b8152600083516159e98160178501602088016147d7565b7001034b99036b4b9b9b4b733903937b6329607d1b6017918401918201528351615a1a8160288401602088016147d7565b01602801949350505050565b6020808252600190820152600360fc1b604082015260600190565b6001600160a01b03868116825285166020820152604081018490526060810183905260a060808201819052600090613a2b90830184614803565b600060208284031215615a8d57600080fd5b8151613ecf81614757565b600060033d11156116d35760046000803e5060005160e01c90565b600060443d1015615ac15790565b6040516003193d81016004833e81513d6001600160401b038083116024840183101715615af057505050505090565b8285019150815181811115615b085750505050505090565b843d8701016020828501011115615b225750505050505090565b615b3160208286010187614607565b509095945050505050565b60208082526028908201527f455243313135353a204552433131353552656365697665722072656a656374656040820152676420746f6b656e7360c01b606082015260800190565b6001600160a01b0386811682528516602082015260a060408201819052600090615bb090830186614c2e565b8281036060840152615bc28186614c2e565b90508281036080840152615bd68185614803565b98975050505050505050565b6000816000190483118215151615615bfc57615bfc6154e0565b500290565b600081615c1057615c106154e0565b50600019019056fec3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62d5bbb2f0fbfc1d5938ca13cabd3156d362f7862fa87504c8d589f5e8f2cbc453214e09135cb5b2cc16e45f93de5a8d20f2939b8ecfb538397e1516953105b1ac46756e6374696f6e206d7573742062652063616c6c6564207468726f75676820189ab7a9244df0848122154315af71fe140f3db0fe014031783b0946b8c9d2e3360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbcf48dee1a72497b9e734e498e1b3086c0d2dbcca13f16f15848f974469f906bbf7804d923f43a17d325d77e781528e0793b2edd9890ab45fc64efd7b4b427744c7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249865d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c656498db8a220cd0f09badce9f22d0ba7e93edb3d404448cc3560d391ab096ad16e94bbc247fc4736523c8bdd1853fee2acfa817d663f8f4422b13e78ebf99e204a238639f0184615fec07652c0dd200a24d0a8b0a9d658af9438fb4b7a481ff14daddf79b8d2110dbe281cf3bb7762d508cea586c974794c8fc949d41b0db1145130ce23c3e399818cfee81a7ab0880f714e53d7672b08df0fa62f2843416e1ea09a26469706673582212209a126f6c7441d79e059e9a8530367a894ec2f5b8d5bcd80c3785a5f5cfb6faf364736f6c634300080d0033