Files
smom-dbis-138/artifacts/contracts/tokens/CompliantUSDC.sol/CompliantUSDC.json
2026-03-02 12:14:09 -08:00

1057 lines
51 KiB
JSON

{
"_format": "hh-sol-artifact-1",
"contractName": "CompliantUSDC",
"sourceName": "contracts/tokens/CompliantUSDC.sol",
"abi": [
{
"inputs": [
{
"internalType": "address",
"name": "initialOwner",
"type": "address"
},
{
"internalType": "address",
"name": "admin",
"type": "address"
}
],
"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": [
{
"internalType": "address",
"name": "spender",
"type": "address"
},
{
"internalType": "uint256",
"name": "allowance",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "needed",
"type": "uint256"
}
],
"name": "ERC20InsufficientAllowance",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "sender",
"type": "address"
},
{
"internalType": "uint256",
"name": "balance",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "needed",
"type": "uint256"
}
],
"name": "ERC20InsufficientBalance",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "approver",
"type": "address"
}
],
"name": "ERC20InvalidApprover",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "receiver",
"type": "address"
}
],
"name": "ERC20InvalidReceiver",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "sender",
"type": "address"
}
],
"name": "ERC20InvalidSender",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "spender",
"type": "address"
}
],
"name": "ERC20InvalidSpender",
"type": "error"
},
{
"inputs": [],
"name": "EnforcedPause",
"type": "error"
},
{
"inputs": [],
"name": "ExpectedPause",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "owner",
"type": "address"
}
],
"name": "OwnableInvalidOwner",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "OwnableUnauthorizedAccount",
"type": "error"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "owner",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "spender",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "value",
"type": "uint256"
}
],
"name": "Approval",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "string",
"name": "mechanism",
"type": "string"
},
{
"indexed": false,
"internalType": "uint256",
"name": "timestamp",
"type": "uint256"
}
],
"name": "DisputeResolutionMechanismSet",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "string",
"name": "jurisdiction",
"type": "string"
},
{
"indexed": false,
"internalType": "uint256",
"name": "timestamp",
"type": "uint256"
}
],
"name": "JurisdictionDeclared",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "bytes32",
"name": "noticeHash",
"type": "bytes32"
},
{
"indexed": false,
"internalType": "string",
"name": "message",
"type": "string"
},
{
"indexed": false,
"internalType": "uint256",
"name": "timestamp",
"type": "uint256"
}
],
"name": "LegalNotice",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "previousOwner",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "newOwner",
"type": "address"
}
],
"name": "OwnershipTransferred",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "Paused",
"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": false,
"internalType": "uint256",
"name": "value",
"type": "uint256"
}
],
"name": "Transfer",
"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": "from",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "to",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "value",
"type": "uint256"
},
{
"indexed": false,
"internalType": "bytes32",
"name": "legalReferenceHash",
"type": "bytes32"
}
],
"name": "ValueTransferDeclared",
"type": "event"
},
{
"inputs": [],
"name": "DEFAULT_ADMIN_ROLE",
"outputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "DISPUTE_RESOLUTION_MECHANISM",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "ICC_ARBITRATION_SUPPORT",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "ICC_TRADE_TERMS_COMPLIANCE",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "ICC_UNIFORM_RULES_COMPLIANCE",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "INSTRUMENT_CLASSIFICATION",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "ISO_20022_COMPLIANCE",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "ISO_27001_COMPLIANCE",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "ISO_3166_COMPLIANCE",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "ISO_4217_COMPLIANCE",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "ISO_8601_COMPLIANCE",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "LEGAL_ENFORCEABILITY_STATEMENT",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "LEGAL_FRAMEWORK_VERSION",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "LEGAL_JURISDICTION",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "REGULATORY_EXEMPTION_STATEMENT",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "SERVICE_OF_PROCESS_ADDRESS",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "TRANSFERABILITY_STATEMENT",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "TRAVEL_RULE_EXEMPTION_STATEMENT",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "owner",
"type": "address"
},
{
"internalType": "address",
"name": "spender",
"type": "address"
}
],
"name": "allowance",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "spender",
"type": "address"
},
{
"internalType": "uint256",
"name": "value",
"type": "uint256"
}
],
"name": "approve",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "balanceOf",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "burn",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "decimals",
"outputs": [
{
"internalType": "uint8",
"name": "",
"type": "uint8"
}
],
"stateMutability": "pure",
"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": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "mint",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "name",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "owner",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "pause",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "paused",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "string",
"name": "message",
"type": "string"
}
],
"name": "recordLegalNotice",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "renounceOwnership",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "role",
"type": "bytes32"
},
{
"internalType": "address",
"name": "callerConfirmation",
"type": "address"
}
],
"name": "renounceRole",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "role",
"type": "bytes32"
},
{
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "revokeRole",
"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": [],
"name": "totalSupply",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "value",
"type": "uint256"
}
],
"name": "transfer",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "from",
"type": "address"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "value",
"type": "uint256"
}
],
"name": "transferFrom",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "newOwner",
"type": "address"
}
],
"name": "transferOwnership",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "unpause",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
}
],
"bytecode": "0x6080346200055e576200211090601f906001600160401b03601f19388590038481018216840190838211858310176200045d57808591604098899485528339810103126200055e5762000052836200057f565b6200006160208095016200057f565b91865193620000708562000563565b601485527f55534420436f696e2028436f6d706c69616e742900000000000000000000000086860152875196620000a78862000563565b60059586895264635553444360d81b888a01528051918383116200045d5760039283546001938482811c9216801562000553575b8c8310146200053d578b8285859411620004e4575b50508b908483116001146200047f5760009262000473575b505060001982861b1c191690831b1783555b89519384116200045d576004998a548381811c9116801562000452575b8b8210146200043d57828111620003f4575b50899185116001146200038b57849550908492916000956200037f575b50501b92600019911b1c19161785555b82546001600160a01b0382811692909190831562000368576001600160a81b03198216600891821b610100600160a81b0316178655620001e194939291901c167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a3620005e4565b507fb04fb87d7ed8d36e5109d109811c0b54568f44bba39642b4ef8dfdc9629720b76200024b8551620002148162000563565b601981527f496e7465726e6174696f6e616c2050726976617465204c61770000000000000085820152865191829142908362000594565b0390a17ffa37581dabc77e65d6ce6850be7b1d841b83a8b9fecfddfdaa889a16ebd14924620002b78551620002808162000563565b601781527f494343204172626974726174696f6e202850617269732900000000000000000085820152865191829142908362000594565b0390a1331562000351575460ff16620003425760025464e8d4a51000928382018092116200032d57506000917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9160025533835282815284832084815401905584519384523393a351611a999081620006778239f35b601190634e487b7160e01b6000525260246000fd5b50905163d93c066560e01b8152fd5b835163ec442f0560e01b8152600081850152602490fd5b8851631e4fbdf760e01b81526000818a0152602490fd5b01519350388062000166565b9291948416928a600052848a6000209460005b8c89838310620003dc5750505010620003c1575b50505050811b01855562000176565b01519060f884600019921b161c1916905538808080620003b2565b8686015189559097019694850194889350016200039e565b8b6000528a600020838088018c1c8201928d891062000433575b018b1c019084905b8281106200042657505062000149565b6000815501849062000416565b925081926200040e565b60228c634e487b7160e01b6000525260246000fd5b90607f169062000137565b634e487b7160e01b600052604160045260246000fd5b01519050388062000108565b908c91898795168860005283600020936000905b828210620004cc5750508411620004b3575b505050811b0183556200011a565b015160001983881b60f8161c19169055388080620004a5565b83850151865589979095019493840193018f62000493565b90919250866000528482600020918d828701901c830193861062000533575b918d88928796959401901c01915b8281106200052357508d9150620000f0565b6000815585945087910162000511565b9250819262000503565b634e487b7160e01b600052602260045260246000fd5b91607f1691620000db565b600080fd5b604081019081106001600160401b038211176200045d57604052565b51906001600160a01b03821682036200055e57565b9291906040845280519081604086015260005b828110620005cd57505060608160008260209488010152601f8019910116850101930152565b8060208092840101516060828901015201620005a7565b6001600160a01b031660008181527f54cdd369e4e8a8515e52ca72ec816c2101831ad1f18bf44102ed171459c9b4f8602052604081205490919060ff16620006725781805260066020526040822081835260205260408220600160ff1982541617905533917f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d8180a4600190565b509056fe608060408181526004918236101561001657600080fd5b600092833560e01c91826301ffc9a7146115645750816306fdde031461146d578163076e666b1461141c578163095ea7b31461137257816318160ddd1461135357816323b872dd1461125f578163248a9ca3146112345781632a18c8ac146111275781632f2ff15d146110fd578163313ce567146110e157816336568abe1461109b57816337ab06251461100d5781633e2d544f14610fa65781633f4ba83a14610f3c57816340c10f1914610e8457816342966c6814610dc75781634b7e833314610d625781635c975abb14610d3e57816361c109e414610cc45781636286d80614610c6257816370a0823114610c2b578163715018a614610bc75781638456cb5914610b6c578163854a214a14610b0e5781638da5cb5b14610ae157816391d1485414610a9a57816395d89b41146109995781639f22857314610938578163a217fddf1461091d578163a36d5df5146108b4578163a9059cbb14610883578163acc663c414610717578163bca047551461069d578163caaae57314610553578163d547741f14610513578163dd38cfdc146104d6578163dd62ed3e1461048d578163eb58f025146103f6578163f2fde38b1461035557508063fd4153e9146102dc578063fecd73b01461024e5763ffb0a291146101f357600080fd5b3461024a578160031936011261024a5780516102469161021282611606565b601782527f494343204172626974726174696f6e2028506172697329000000000000000000602083015251918291826115da565b0390f35b5080fd5b503461024a578160031936011261024a5780516102469161026e82611638565b604c82527f49434320556e69666f726d2052756c657320666f722044656d616e642047756160208301527f72616e746565732028555244472037353829202d204170706c696361626c6520818301526b6279207265666572656e636560a01b606083015251918291826115da565b503461024a578160031936011261024a578051610246916102fc82611654565b603882527f494343204172626974726174696f6e2052756c6573202d20537570706f72746560208301527f6420666f722064697370757465207265736f6c7574696f6e00000000000000008183015251918291826115da565b9050346103f25760203660031901126103f257610370611692565b610378611a16565b6001600160a01b038181169390929084156103dc57505060058054610100600160a81b03198116600893841b610100600160a81b031617909155901c167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08380a380f35b51631e4fbdf760e01b8152908101859052602490fd5b8280fd5b50503461024a578160031936011261024a5780516102469161041782611638565b605482527f5468697320696e737472756d656e7420726570726573656e747320612074726160208301527f6e7366657261626c6520636c61696d206f722076616c75652c207375626a656381830152733a103a379031b7b73a3930b1ba103a32b936b99760611b606083015251918291826115da565b50503461024a578060031936011261024a57806020926104ab611692565b6104b36116ad565b6001600160a01b0391821683526001865283832091168252845220549051908152f35b50503461024a578160031936011261024a578051610246916104f782611606565b60058252640312e302e360dc1b602083015251918291826115da565b919050346103f257806003193601126103f25761054f913561054a60016105386116ad565b938387526006602052862001546118db565b61199f565b5080f35b83833461024a578160031936011261024a5780519161010083019083821067ffffffffffffffff83111761068a57506102469350815260c782527f5468697320636f6e7472616374206973206e6f7420696e74656e64656420746f60208301527f2062652061206d6f6e6579207472616e736d697373696f6e2073657276696365818301527f2c207061796d656e7420736572766963652c206f7220726567756c617465642060608301527f66696e616e6369616c20696e737472756d656e742e204974206f70657261746560808301527f732061732061207072697661746520696e737472756d656e74206f662076616c60a08301527f7565207472616e73666572206265747765656e20636f6e73656e74696e67207060c08301526630b93a34b2b99760c91b60e083015251918291826115da565b634e487b7160e01b815260418552602490fd5b50503461024a578160031936011261024a578051610246916106be82611654565b603b82527f49534f2032373030312028496e666f726d6174696f6e2053656375726974792960208301527f202d204172636869746563747572616c20436f6d706c69616e636500000000008183015251918291826115da565b83833461024a578160031936011261024a5780519161012083019083821067ffffffffffffffff83111761068a57506102469350815260f582527f5468697320636f6e74726163742069732064657369676e656420666f7220707260208301527f69766174652c20706565722d746f2d706565722076616c7565207472616e7366818301527f657220616e64206973206e6f7420696e74656e64656420746f20666163696c6960608301527f74617465207472616e73616374696f6e73207375626a65637420746f2046415460808301527f462054726176656c2052756c652028652e672e2c206e6f74206120564153502c60a08301527f206e6f206f726967696e61746f722f62656e656669636961727920646174612060c08301527f636f6c6c656374696f6e2c206e6f207472616e73616374696f6e206d6f6e697460e08301527437b934b73396103737903932b837b93a34b733949760591b61010083015251918291826115da565b50503461024a578060031936011261024a576020906108ad6108a3611692565b60243590336116c3565b5160018152f35b50503461024a578160031936011261024a578051610246916108d582611654565b602c82527f50726976617465204469676974616c20496e737472756d656e74206f6620566160208301526b363ab2902a3930b739b332b960a11b8183015251918291826115da565b50503461024a578160031936011261024a5751908152602090f35b50503461024a578160031936011261024a5780516102469161095982611654565b602482527f49534f20333136362028436f756e74727920436f64657329202d20537570706f6020830152631c9d195960e21b8183015251918291826115da565b83833461024a578160031936011261024a5780519180938054916001908360011c9260018516948515610a90575b6020958686108114610a7d57858952908115610a595750600114610a01575b61024687876109f7828c0383611670565b51918291826115da565b81529295507f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b5b828410610a465750505082610246946109f7928201019486806109e6565b8054868501880152928601928101610a28565b60ff19168887015250505050151560051b83010192506109f78261024686806109e6565b634e487b7160e01b845260228352602484fd5b93607f16936109c7565b9050346103f257816003193601126103f2578160209360ff92610abb6116ad565b90358252600686528282206001600160a01b039091168252855220549151911615158152f35b50503461024a578160031936011261024a57600554905160089190911c6001600160a01b03168152602090f35b50503461024a578160031936011261024a57805161024691610b2f82611654565b602182527f49534f2038363031202854696d657374616d707329202d20537570706f7274656020830152601960fa1b8183015251918291826115da565b50503461024a578160031936011261024a5760207f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25891610baa611a16565b610bb2611a45565b600160ff19600554161760055551338152a180f35b8334610c285780600319360112610c2857610be0611a16565b60058054610100600160a81b03198116909155819060081c6001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b80fd5b50503461024a57602036600319011261024a5760209181906001600160a01b03610c53611692565b16815280845220549051908152f35b50503461024a578160031936011261024a57805161024691610c8382611654565b602582527f49534f2034323137202843757272656e637920436f64657329202d20537570706020830152641bdc9d195960da1b8183015251918291826115da565b50503461024a578160031936011261024a57805161024691610ce582611654565b603e82527f49534f203230303232202846696e616e6369616c204d6573736167696e67292060208301527f2d20537570706f72746564207669612049534f3230303232526f7574657200008183015251918291826115da565b50503461024a578160031936011261024a5760209060ff6005541690519015158152f35b50503461024a578160031936011261024a57805161024691610d8382611654565b602882527f496e636f7465726d732032303230202d204170706c696361626c65206279207260208301526765666572656e636560c01b8183015251918291826115da565b83833461024a57602036600319011261024a578235903315610e6e57610deb611a45565b338352826020528083205493828510610e4357508183943385528460205203818420558160025403600255519081527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60203392a380f35b905163391434e360e21b81523391810191825260208201859052604082018390529081906060010390fd5b51634b637e8f60e11b8152808401839052602490fd5b919050346103f257806003193601126103f257610e9f611692565b9060243591610eac611a16565b6001600160a01b0316928315610f2757610ec4611a45565b60025490838201809211610f14575084927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9260209260025585855284835280852082815401905551908152a380f35b634e487b7160e01b865260119052602485fd5b84602492519163ec442f0560e01b8352820152fd5b9050346103f257826003193601126103f257610f56611a16565b6005549060ff821615610f98575060ff1916600555513381527f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa90602090a180f35b8251638dfc202b60e01b8152fd5b50503461024a578160031936011261024a57805161024691610fc782611654565b602a82527f30783030303030303030303030303030303030303030303030303030303030306020830152690303030303030303030360b41b8183015251918291826115da565b50503461024a578160031936011261024a5780516102469161102e82611638565b604b82527f456e666f72636561626c6520756e646572207072697661746520696e7465726e60208301527f6174696f6e616c206c6177207072696e6369706c657320616e64204943432061818301526a393134ba3930ba34b7b71760a91b606083015251918291826115da565b83833461024a578060031936011261024a576110b56116ad565b90336001600160a01b038316036110d2575061054f91923561199f565b5163334bd91960e11b81528390fd5b50503461024a578160031936011261024a576020905160068152f35b919050346103f257806003193601126103f25761054f913561112260016105386116ad565b61191f565b9050346103f257602091826003193601126112305781359267ffffffffffffffff9283851161122c573660238601121561122c578481013593841161122c576024850194602485369201011161122c5785805260068252828620338752825260ff83872054161561120f57508183606092817fa682ce74b614c5743362a5004bd44256cd9dae96513da380b7adbae65d4e810996955182810190828a83376111df868285810142888201520386810184520182611670565b5190209784519685889687528601528585013782820184018890524290830152601f01601f19168101030190a280f35b6044908684519163e2517d3f60e01b835233908301526024820152fd5b8580fd5b8380fd5b9050346103f25760203660031901126103f25781602093600192358152600685522001549051908152f35b90508234610c28576060366003190112610c285761127b611692565b6112836116ad565b916044359360018060a01b0383168083526001602052868320338452602052868320549160001983036112bf575b6020886108ad8989896116c3565b8683106113275781156113105733156112f9575082526001602090815286832033845281529186902090859003905582906108ad876112b1565b8751634a1406b160e11b8152908101849052602490fd5b875163e602df0560e01b8152908101849052602490fd5b8751637dc7a0d960e11b8152339181019182526020820193909352604081018790528291506060010390fd5b50503461024a578160031936011261024a576020906002549051908152f35b9050346103f257816003193601126103f25761138c611692565b602435903315611405576001600160a01b03169182156113ee57508083602095338152600187528181208582528752205582519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925843392a35160018152f35b8351634a1406b160e11b8152908101859052602490fd5b835163e602df0560e01b8152808401869052602490fd5b50503461024a578160031936011261024a5780516102469161143d82611606565b6019825278496e7465726e6174696f6e616c2050726976617465204c617760381b602083015251918291826115da565b919050346103f257826003193601126103f25780519183600354906001908260011c9260018116801561155a575b6020958686108214611547575084885290811561152557506001146114cc575b61024686866109f7828b0383611670565b929550600383527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b5b8284106115125750505082610246946109f79282010194386114bb565b80548685018801529286019281016114f5565b60ff191687860152505050151560051b83010192506109f782610246386114bb565b634e487b7160e01b845260229052602483fd5b93607f169361149b565b8491346103f25760203660031901126103f2573563ffffffff60e01b81168091036103f25760209250637965db0b60e01b81149081156115a6575b5015158152f35b6301ffc9a760e01b1490508361159f565b60005b8381106115ca5750506000910152565b81810151838201526020016115ba565b604091602082526115fa81518092816020860152602086860191016115b7565b601f01601f1916010190565b6040810190811067ffffffffffffffff82111761162257604052565b634e487b7160e01b600052604160045260246000fd5b6080810190811067ffffffffffffffff82111761162257604052565b6060810190811067ffffffffffffffff82111761162257604052565b90601f8019910116810190811067ffffffffffffffff82111761162257604052565b600435906001600160a01b03821682036116a857565b600080fd5b602435906001600160a01b03821682036116a857565b916001600160a01b03808416929083156118c25781169384156118a9576116e8611a45565b6000918483526020918383526040938481205486811061187a579086869289835282875203828220558881522085815401905586868551858882527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a38351908382016d31aaa9a221902a3930b739b332b960911b8152600e835261176d83611606565b855161177881611606565b60058152858101640312e302e360dc1b815287519161179683611606565b601983528783019378496e7465726e6174696f6e616c2050726976617465204c617760381b855289519687968a880199428b52438d8a01523260601b60608a01526bffffffffffffffffffffffff19809260601b1660748a015260601b1660888801528b609c88015251908160bc880161180f926115b7565b85019051918260bc8301611822926115b7565b019051918260bc8301611834926115b7565b0103609c8101825260bc016118499082611670565b5190209082519384528301527f23125a5cf1cce829bdbc17094f5a5a567f6b1f8a455434951cbd1c667fd1788891a3565b855163391434e360e21b81526001600160a01b0384166004820152602481019190915260448101879052606490fd5b60405163ec442f0560e01b815260006004820152602490fd5b604051634b637e8f60e11b815260006004820152602490fd5b80600052600660205260406000203360005260205260ff60406000205416156119015750565b6044906040519063e2517d3f60e01b82523360048301526024820152fd5b906000918083526006602052604083209160018060a01b03169182845260205260ff6040842054161560001461199a5780835260066020526040832082845260205260408320600160ff198254161790557f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d339380a4600190565b505090565b906000918083526006602052604083209160018060a01b03169182845260205260ff60408420541660001461199a578083526006602052604083208284526020526040832060ff1981541690557ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b339380a4600190565b60055460081c6001600160a01b03163303611a2d57565b60405163118cdaa760e01b8152336004820152602490fd5b60ff60055416611a5157565b60405163d93c066560e01b8152600490fdfea26469706673582212203c5645bcaabbf9bb6c9e4cc9c1735fc765ef95de54ce536b31b4a508d6914acd64736f6c63430008160033",
"deployedBytecode": "0x608060408181526004918236101561001657600080fd5b600092833560e01c91826301ffc9a7146115645750816306fdde031461146d578163076e666b1461141c578163095ea7b31461137257816318160ddd1461135357816323b872dd1461125f578163248a9ca3146112345781632a18c8ac146111275781632f2ff15d146110fd578163313ce567146110e157816336568abe1461109b57816337ab06251461100d5781633e2d544f14610fa65781633f4ba83a14610f3c57816340c10f1914610e8457816342966c6814610dc75781634b7e833314610d625781635c975abb14610d3e57816361c109e414610cc45781636286d80614610c6257816370a0823114610c2b578163715018a614610bc75781638456cb5914610b6c578163854a214a14610b0e5781638da5cb5b14610ae157816391d1485414610a9a57816395d89b41146109995781639f22857314610938578163a217fddf1461091d578163a36d5df5146108b4578163a9059cbb14610883578163acc663c414610717578163bca047551461069d578163caaae57314610553578163d547741f14610513578163dd38cfdc146104d6578163dd62ed3e1461048d578163eb58f025146103f6578163f2fde38b1461035557508063fd4153e9146102dc578063fecd73b01461024e5763ffb0a291146101f357600080fd5b3461024a578160031936011261024a5780516102469161021282611606565b601782527f494343204172626974726174696f6e2028506172697329000000000000000000602083015251918291826115da565b0390f35b5080fd5b503461024a578160031936011261024a5780516102469161026e82611638565b604c82527f49434320556e69666f726d2052756c657320666f722044656d616e642047756160208301527f72616e746565732028555244472037353829202d204170706c696361626c6520818301526b6279207265666572656e636560a01b606083015251918291826115da565b503461024a578160031936011261024a578051610246916102fc82611654565b603882527f494343204172626974726174696f6e2052756c6573202d20537570706f72746560208301527f6420666f722064697370757465207265736f6c7574696f6e00000000000000008183015251918291826115da565b9050346103f25760203660031901126103f257610370611692565b610378611a16565b6001600160a01b038181169390929084156103dc57505060058054610100600160a81b03198116600893841b610100600160a81b031617909155901c167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08380a380f35b51631e4fbdf760e01b8152908101859052602490fd5b8280fd5b50503461024a578160031936011261024a5780516102469161041782611638565b605482527f5468697320696e737472756d656e7420726570726573656e747320612074726160208301527f6e7366657261626c6520636c61696d206f722076616c75652c207375626a656381830152733a103a379031b7b73a3930b1ba103a32b936b99760611b606083015251918291826115da565b50503461024a578060031936011261024a57806020926104ab611692565b6104b36116ad565b6001600160a01b0391821683526001865283832091168252845220549051908152f35b50503461024a578160031936011261024a578051610246916104f782611606565b60058252640312e302e360dc1b602083015251918291826115da565b919050346103f257806003193601126103f25761054f913561054a60016105386116ad565b938387526006602052862001546118db565b61199f565b5080f35b83833461024a578160031936011261024a5780519161010083019083821067ffffffffffffffff83111761068a57506102469350815260c782527f5468697320636f6e7472616374206973206e6f7420696e74656e64656420746f60208301527f2062652061206d6f6e6579207472616e736d697373696f6e2073657276696365818301527f2c207061796d656e7420736572766963652c206f7220726567756c617465642060608301527f66696e616e6369616c20696e737472756d656e742e204974206f70657261746560808301527f732061732061207072697661746520696e737472756d656e74206f662076616c60a08301527f7565207472616e73666572206265747765656e20636f6e73656e74696e67207060c08301526630b93a34b2b99760c91b60e083015251918291826115da565b634e487b7160e01b815260418552602490fd5b50503461024a578160031936011261024a578051610246916106be82611654565b603b82527f49534f2032373030312028496e666f726d6174696f6e2053656375726974792960208301527f202d204172636869746563747572616c20436f6d706c69616e636500000000008183015251918291826115da565b83833461024a578160031936011261024a5780519161012083019083821067ffffffffffffffff83111761068a57506102469350815260f582527f5468697320636f6e74726163742069732064657369676e656420666f7220707260208301527f69766174652c20706565722d746f2d706565722076616c7565207472616e7366818301527f657220616e64206973206e6f7420696e74656e64656420746f20666163696c6960608301527f74617465207472616e73616374696f6e73207375626a65637420746f2046415460808301527f462054726176656c2052756c652028652e672e2c206e6f74206120564153502c60a08301527f206e6f206f726967696e61746f722f62656e656669636961727920646174612060c08301527f636f6c6c656374696f6e2c206e6f207472616e73616374696f6e206d6f6e697460e08301527437b934b73396103737903932b837b93a34b733949760591b61010083015251918291826115da565b50503461024a578060031936011261024a576020906108ad6108a3611692565b60243590336116c3565b5160018152f35b50503461024a578160031936011261024a578051610246916108d582611654565b602c82527f50726976617465204469676974616c20496e737472756d656e74206f6620566160208301526b363ab2902a3930b739b332b960a11b8183015251918291826115da565b50503461024a578160031936011261024a5751908152602090f35b50503461024a578160031936011261024a5780516102469161095982611654565b602482527f49534f20333136362028436f756e74727920436f64657329202d20537570706f6020830152631c9d195960e21b8183015251918291826115da565b83833461024a578160031936011261024a5780519180938054916001908360011c9260018516948515610a90575b6020958686108114610a7d57858952908115610a595750600114610a01575b61024687876109f7828c0383611670565b51918291826115da565b81529295507f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b5b828410610a465750505082610246946109f7928201019486806109e6565b8054868501880152928601928101610a28565b60ff19168887015250505050151560051b83010192506109f78261024686806109e6565b634e487b7160e01b845260228352602484fd5b93607f16936109c7565b9050346103f257816003193601126103f2578160209360ff92610abb6116ad565b90358252600686528282206001600160a01b039091168252855220549151911615158152f35b50503461024a578160031936011261024a57600554905160089190911c6001600160a01b03168152602090f35b50503461024a578160031936011261024a57805161024691610b2f82611654565b602182527f49534f2038363031202854696d657374616d707329202d20537570706f7274656020830152601960fa1b8183015251918291826115da565b50503461024a578160031936011261024a5760207f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25891610baa611a16565b610bb2611a45565b600160ff19600554161760055551338152a180f35b8334610c285780600319360112610c2857610be0611a16565b60058054610100600160a81b03198116909155819060081c6001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b80fd5b50503461024a57602036600319011261024a5760209181906001600160a01b03610c53611692565b16815280845220549051908152f35b50503461024a578160031936011261024a57805161024691610c8382611654565b602582527f49534f2034323137202843757272656e637920436f64657329202d20537570706020830152641bdc9d195960da1b8183015251918291826115da565b50503461024a578160031936011261024a57805161024691610ce582611654565b603e82527f49534f203230303232202846696e616e6369616c204d6573736167696e67292060208301527f2d20537570706f72746564207669612049534f3230303232526f7574657200008183015251918291826115da565b50503461024a578160031936011261024a5760209060ff6005541690519015158152f35b50503461024a578160031936011261024a57805161024691610d8382611654565b602882527f496e636f7465726d732032303230202d204170706c696361626c65206279207260208301526765666572656e636560c01b8183015251918291826115da565b83833461024a57602036600319011261024a578235903315610e6e57610deb611a45565b338352826020528083205493828510610e4357508183943385528460205203818420558160025403600255519081527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60203392a380f35b905163391434e360e21b81523391810191825260208201859052604082018390529081906060010390fd5b51634b637e8f60e11b8152808401839052602490fd5b919050346103f257806003193601126103f257610e9f611692565b9060243591610eac611a16565b6001600160a01b0316928315610f2757610ec4611a45565b60025490838201809211610f14575084927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9260209260025585855284835280852082815401905551908152a380f35b634e487b7160e01b865260119052602485fd5b84602492519163ec442f0560e01b8352820152fd5b9050346103f257826003193601126103f257610f56611a16565b6005549060ff821615610f98575060ff1916600555513381527f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa90602090a180f35b8251638dfc202b60e01b8152fd5b50503461024a578160031936011261024a57805161024691610fc782611654565b602a82527f30783030303030303030303030303030303030303030303030303030303030306020830152690303030303030303030360b41b8183015251918291826115da565b50503461024a578160031936011261024a5780516102469161102e82611638565b604b82527f456e666f72636561626c6520756e646572207072697661746520696e7465726e60208301527f6174696f6e616c206c6177207072696e6369706c657320616e64204943432061818301526a393134ba3930ba34b7b71760a91b606083015251918291826115da565b83833461024a578060031936011261024a576110b56116ad565b90336001600160a01b038316036110d2575061054f91923561199f565b5163334bd91960e11b81528390fd5b50503461024a578160031936011261024a576020905160068152f35b919050346103f257806003193601126103f25761054f913561112260016105386116ad565b61191f565b9050346103f257602091826003193601126112305781359267ffffffffffffffff9283851161122c573660238601121561122c578481013593841161122c576024850194602485369201011161122c5785805260068252828620338752825260ff83872054161561120f57508183606092817fa682ce74b614c5743362a5004bd44256cd9dae96513da380b7adbae65d4e810996955182810190828a83376111df868285810142888201520386810184520182611670565b5190209784519685889687528601528585013782820184018890524290830152601f01601f19168101030190a280f35b6044908684519163e2517d3f60e01b835233908301526024820152fd5b8580fd5b8380fd5b9050346103f25760203660031901126103f25781602093600192358152600685522001549051908152f35b90508234610c28576060366003190112610c285761127b611692565b6112836116ad565b916044359360018060a01b0383168083526001602052868320338452602052868320549160001983036112bf575b6020886108ad8989896116c3565b8683106113275781156113105733156112f9575082526001602090815286832033845281529186902090859003905582906108ad876112b1565b8751634a1406b160e11b8152908101849052602490fd5b875163e602df0560e01b8152908101849052602490fd5b8751637dc7a0d960e11b8152339181019182526020820193909352604081018790528291506060010390fd5b50503461024a578160031936011261024a576020906002549051908152f35b9050346103f257816003193601126103f25761138c611692565b602435903315611405576001600160a01b03169182156113ee57508083602095338152600187528181208582528752205582519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925843392a35160018152f35b8351634a1406b160e11b8152908101859052602490fd5b835163e602df0560e01b8152808401869052602490fd5b50503461024a578160031936011261024a5780516102469161143d82611606565b6019825278496e7465726e6174696f6e616c2050726976617465204c617760381b602083015251918291826115da565b919050346103f257826003193601126103f25780519183600354906001908260011c9260018116801561155a575b6020958686108214611547575084885290811561152557506001146114cc575b61024686866109f7828b0383611670565b929550600383527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b5b8284106115125750505082610246946109f79282010194386114bb565b80548685018801529286019281016114f5565b60ff191687860152505050151560051b83010192506109f782610246386114bb565b634e487b7160e01b845260229052602483fd5b93607f169361149b565b8491346103f25760203660031901126103f2573563ffffffff60e01b81168091036103f25760209250637965db0b60e01b81149081156115a6575b5015158152f35b6301ffc9a760e01b1490508361159f565b60005b8381106115ca5750506000910152565b81810151838201526020016115ba565b604091602082526115fa81518092816020860152602086860191016115b7565b601f01601f1916010190565b6040810190811067ffffffffffffffff82111761162257604052565b634e487b7160e01b600052604160045260246000fd5b6080810190811067ffffffffffffffff82111761162257604052565b6060810190811067ffffffffffffffff82111761162257604052565b90601f8019910116810190811067ffffffffffffffff82111761162257604052565b600435906001600160a01b03821682036116a857565b600080fd5b602435906001600160a01b03821682036116a857565b916001600160a01b03808416929083156118c25781169384156118a9576116e8611a45565b6000918483526020918383526040938481205486811061187a579086869289835282875203828220558881522085815401905586868551858882527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a38351908382016d31aaa9a221902a3930b739b332b960911b8152600e835261176d83611606565b855161177881611606565b60058152858101640312e302e360dc1b815287519161179683611606565b601983528783019378496e7465726e6174696f6e616c2050726976617465204c617760381b855289519687968a880199428b52438d8a01523260601b60608a01526bffffffffffffffffffffffff19809260601b1660748a015260601b1660888801528b609c88015251908160bc880161180f926115b7565b85019051918260bc8301611822926115b7565b019051918260bc8301611834926115b7565b0103609c8101825260bc016118499082611670565b5190209082519384528301527f23125a5cf1cce829bdbc17094f5a5a567f6b1f8a455434951cbd1c667fd1788891a3565b855163391434e360e21b81526001600160a01b0384166004820152602481019190915260448101879052606490fd5b60405163ec442f0560e01b815260006004820152602490fd5b604051634b637e8f60e11b815260006004820152602490fd5b80600052600660205260406000203360005260205260ff60406000205416156119015750565b6044906040519063e2517d3f60e01b82523360048301526024820152fd5b906000918083526006602052604083209160018060a01b03169182845260205260ff6040842054161560001461199a5780835260066020526040832082845260205260408320600160ff198254161790557f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d339380a4600190565b505090565b906000918083526006602052604083209160018060a01b03169182845260205260ff60408420541660001461199a578083526006602052604083208284526020526040832060ff1981541690557ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b339380a4600190565b60055460081c6001600160a01b03163303611a2d57565b60405163118cdaa760e01b8152336004820152602490fd5b60ff60055416611a5157565b60405163d93c066560e01b8152600490fdfea26469706673582212203c5645bcaabbf9bb6c9e4cc9c1735fc765ef95de54ce536b31b4a508d6914acd64736f6c63430008160033",
"linkReferences": {},
"deployedLinkReferences": {}
}