Files
2026-03-02 12:14:09 -08:00

579 lines
28 KiB
JSON

{
"_format": "hh-sol-artifact-1",
"contractName": "ReserveTokenIntegration",
"sourceName": "contracts/reserve/ReserveTokenIntegration.sol",
"abi": [
{
"inputs": [
{
"internalType": "address",
"name": "admin",
"type": "address"
},
{
"internalType": "address",
"name": "reserveSystem_",
"type": "address"
},
{
"internalType": "address",
"name": "tokenFactory_",
"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": [],
"name": "ReentrancyGuardReentrantCall",
"type": "error"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "token",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "reserveAsset",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "newBackingRatio",
"type": "uint256"
}
],
"name": "ReserveBackingUpdated",
"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": "token",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "reserveAsset",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "backingRatio",
"type": "uint256"
}
],
"name": "TokenBackedByReserve",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "sourceToken",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "targetToken",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "sourceAmount",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "targetAmount",
"type": "uint256"
},
{
"indexed": false,
"internalType": "bytes32",
"name": "conversionId",
"type": "bytes32"
}
],
"name": "TokenConvertedViaReserve",
"type": "event"
},
{
"inputs": [],
"name": "DEFAULT_ADMIN_ROLE",
"outputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "INTEGRATION_OPERATOR_ROLE",
"outputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "token",
"type": "address"
}
],
"name": "checkReserveAdequacy",
"outputs": [
{
"internalType": "bool",
"name": "isAdequate",
"type": "bool"
},
{
"internalType": "uint256",
"name": "requiredReserve",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "currentReserve",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "sourceToken",
"type": "address"
},
{
"internalType": "address",
"name": "targetToken",
"type": "address"
},
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "convertTokensViaReserve",
"outputs": [
{
"internalType": "uint256",
"name": "targetAmount",
"type": "uint256"
},
{
"internalType": "bytes32",
"name": "conversionId",
"type": "bytes32"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "role",
"type": "bytes32"
}
],
"name": "getRoleAdmin",
"outputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "token",
"type": "address"
}
],
"name": "getTokenBacking",
"outputs": [
{
"internalType": "address",
"name": "reserveAsset",
"type": "address"
},
{
"internalType": "uint256",
"name": "backingRatio",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "reserveBalance",
"type": "uint256"
}
],
"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": "bytes32",
"name": "role",
"type": "bytes32"
},
{
"internalType": "address",
"name": "callerConfirmation",
"type": "address"
}
],
"name": "renounceRole",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"name": "reserveAssetToken",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"name": "reserveBackingRatio",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "reserveSystem",
"outputs": [
{
"internalType": "contract IReserveSystem",
"name": "",
"type": "address"
}
],
"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": "token",
"type": "address"
},
{
"internalType": "address",
"name": "reserveAsset",
"type": "address"
},
{
"internalType": "uint256",
"name": "backingRatio",
"type": "uint256"
}
],
"name": "setTokenBacking",
"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": "tokenFactory",
"outputs": [
{
"internalType": "contract ITokenFactory138",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"name": "tokenReserveAsset",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "token",
"type": "address"
},
{
"internalType": "uint256",
"name": "newBackingRatio",
"type": "uint256"
}
],
"name": "updateBackingRatio",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
}
],
"bytecode": "0x608034620000c157601f6200117138819003918201601f19168301916001600160401b03831184841017620000c657808492606094604052833981010312620000c1576200004d81620000dc565b620000846200006d60406200006560208601620000dc565b9401620000dc565b91600180556200007d81620000f1565b5062000171565b50600280546001600160a01b039384166001600160a01b03199182161790915560038054929093169116179055604051610f3d9081620002148239f35b600080fd5b634e487b7160e01b600052604160045260246000fd5b51906001600160a01b0382168203620000c157565b6001600160a01b031660008181527fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5602052604081205490919060ff166200016d57818052816020526040822081835260205260408220600160ff198254161790553391600080516020620011518339815191528180a4600190565b5090565b6001600160a01b031660008181527f4db6b467286c1b97d945adab8ac14f018db862dc3f7dd56afe44232680c6cda460205260408120549091907f8340864bc328d3ce41b03142236fd8022fe6827517da8993f52c573ce75afd0b9060ff166200020e57808352826020526040832082845260205260408320600160ff1982541617905560008051602062001151833981519152339380a4600190565b50509056fe608060408181526004918236101561001657600080fd5b600092833560e01c91826301ffc9a714610b2d57508163163fecf514610af2578163248a9ca314610ac85781632f2ff15d14610a9e57816336568abe14610a585781637521325114610a2057816375cdc84b1461094657816381c4af5a1461091d5781638f9ba28814610810578163907563871461077057816391d148541461072a5781639ce8ba01146105e3578163a217fddf146105c8578163b6a1f1e11461058e578163c1b306b014610553578163ca40f39e14610159578163d547741f14610116575063e77772fe146100eb57600080fd5b3461011257816003193601126101125760035490516001600160a01b039091168152602090f35b5080fd5b91905034610155578060031936011261015557610151913561014c600161013b610b80565b938387528660205286200154610dee565b610e92565b5080f35b8280fd5b905082346103115761016a36610bb1565b906002600194939454146105435760026001556001600160a01b039384169081156104ed57841691821561049757801561044857818452602093868552858882205416958482528089832054169680156103f257871561039c57843b1561015557895163158a1cc360e01b8152338a82015260248101859052630307830360e41b60448201528381606481838a5af180156103925761037e575b506060908584526006885260648a858d6127109687610226838520548c610d4b565b04906002541691519d8e96879563ed8b742b60e01b8752860152602485015260448401525af180156103145782978391610346575b5081810291818304149015171561033357848252600686528882205490811561031e570496843b1561011257885190630f22c5f760e11b82523390820152876024820152816044820152818160648183895af18015610314576102fd575b505060607f387f0e7834cd907b21c35273b33e473edd0a760bbd5a1342488fc22506ea800991885190815287868201528689820152a3600180558351928352820152f35b6103078291610be6565b61031157806102b9565b80fd5b89513d84823e3d90fd5b601289634e487b7160e01b6000525260246000fd5b634e487b7160e01b825260118852602482fd5b9750506060873d606011610376575b8161036260609383610c10565b81010312610112578587519701518a61025b565b3d9150610355565b9261038b60609294610be6565b9290610204565b8b513d86823e3d90fd5b895162461bcd60e51b8152808a01889052602a60248201527f52657365727665546f6b656e496e746567726174696f6e3a20746172676574206044820152691b9bdd08189858dad95960b21b6064820152608490fd5b895162461bcd60e51b8152808a01889052602a60248201527f52657365727665546f6b656e496e746567726174696f6e3a20736f75726365206044820152691b9bdd08189858dad95960b21b6064820152608490fd5b865162461bcd60e51b81526020818801526024808201527f52657365727665546f6b656e496e746567726174696f6e3a207a65726f20616d6044820152631bdd5b9d60e21b6064820152608490fd5b865162461bcd60e51b8152602081880152602a60248201527f52657365727665546f6b656e496e746567726174696f6e3a207a65726f2074616044820152693933b2ba103a37b5b2b760b11b6064820152608490fd5b865162461bcd60e51b8152602081880152602a60248201527f52657365727665546f6b656e496e746567726174696f6e3a207a65726f20736f6044820152693ab931b2903a37b5b2b760b11b6064820152608490fd5b8551633ee5aeb560e01b81528590fd5b505034610112576020366003190112610112576020916001600160a01b039082908261057d610b9b565b168152600585522054169051908152f35b905034610155576020366003190112610155576020926001600160a01b0391839190836105b9610b9b565b16825285522054169051908152f35b50503461011257816003193601126101125751908152602090f35b9050346101555760209182600319360112610726576001600160a01b0380610609610b9b565b1680865283855281838720541690610622821515610ced565b83516318160ddd60e01b81529086828781845afa91821561071c57908793929189926106e6575b50610664602492612710928b5260068652878b205490610d4b565b04936002541695855196879384926305489ad560e21b84528301525afa9283156106dc5785936106a5575b5060609450815193818410158552840152820152f35b9092508381813d83116106d5575b6106bd8183610c10565b810103126106d1576060945051913861068f565b8480fd5b503d6106b3565b82513d87823e3d90fd5b8092508491943d8311610715575b6106fe8183610c10565b8101031261071157518692610664610649565b8780fd5b503d6106f4565b85513d8a823e3d90fd5b8380fd5b9050346101555781600319360112610155578160209360ff9261074b610b80565b903582528186528282206001600160a01b039091168252855220549151911615158152f35b9050346101555781600319360112610155577f02b6aa513242e899506f7813e15fde10664d79ff6b1d78ba1e71daa018a5297460206107ad610b9b565b602435906107b9610d74565b6001600160a01b03908116946107d0861515610c32565b6107de612710841115610c8a565b8588528084526107f482888a2054161515610ced565b858852835285872054169460068352818188205551908152a380f35b919050346101555761082136610bb1565b9161082d939193610d74565b6001600160a01b0390811693610844851515610c32565b169384156108c757916020917f15ae79afb8c9de4c04839333e931ed56e9ac4bb34eb28f3731347e6c2a50313e93610880612710841115610c8a565b85885283528087206bffffffffffffffffffffffff60a01b90878282541617905586885260058452858289209182541617905584875260068352818188205551908152a380f35b6020608492519162461bcd60e51b8352820152602b60248201527f52657365727665546f6b656e496e746567726174696f6e3a207a65726f20726560448201526a1cd95c9d9948185cdcd95d60aa1b6064820152fd5b50503461011257816003193601126101125760025490516001600160a01b039091168152602090f35b838334610112576020908160031936011261015557610963610b9b565b6001600160a01b03908116845284835281842054600684528285205491959086169493908490866109a2575b5050606095508251948552840152820152f35b9194509585602486926002541693865194859384926305489ad560e21b84528301525afa908115610a165786916109e1575b506060955092868061098f565b90508381813d8311610a0f575b6109f88183610c10565b81010312610a0b576060955051866109d4565b8580fd5b503d6109ee565b83513d88823e3d90fd5b5050346101125760203660031901126101125760209181906001600160a01b03610a48610b9b565b1681526006845220549051908152f35b838334610112578060031936011261011257610a72610b80565b90336001600160a01b03831603610a8f5750610151919235610e92565b5163334bd91960e11b81528390fd5b919050346101555780600319360112610155576101519135610ac3600161013b610b80565b610e14565b90503461015557602036600319011261015557816020936001923581528085522001549051908152f35b505034610112578160031936011261011257602090517f8340864bc328d3ce41b03142236fd8022fe6827517da8993f52c573ce75afd0b8152f35b849134610155576020366003190112610155573563ffffffff60e01b81168091036101555760209250637965db0b60e01b8114908115610b6f575b5015158152f35b6301ffc9a760e01b14905083610b68565b602435906001600160a01b0382168203610b9657565b600080fd5b600435906001600160a01b0382168203610b9657565b6060906003190112610b96576001600160a01b03906004358281168103610b9657916024359081168103610b96579060443590565b67ffffffffffffffff8111610bfa57604052565b634e487b7160e01b600052604160045260246000fd5b90601f8019910116810190811067ffffffffffffffff821117610bfa57604052565b15610c3957565b60405162461bcd60e51b815260206004820152602360248201527f52657365727665546f6b656e496e746567726174696f6e3a207a65726f20746f60448201526235b2b760e91b6064820152608490fd5b15610c9157565b60405162461bcd60e51b815260206004820152602e60248201527f52657365727665546f6b656e496e746567726174696f6e3a20696e76616c696460448201526d206261636b696e6720726174696f60901b6064820152608490fd5b15610cf457565b60405162461bcd60e51b815260206004820152602960248201527f52657365727665546f6b656e496e746567726174696f6e3a20746f6b656e206e6044820152681bdd08189858dad95960ba1b6064820152608490fd5b81810292918115918404141715610d5e57565b634e487b7160e01b600052601160045260246000fd5b3360009081527f4db6b467286c1b97d945adab8ac14f018db862dc3f7dd56afe44232680c6cda460205260409020547f8340864bc328d3ce41b03142236fd8022fe6827517da8993f52c573ce75afd0b9060ff1615610dd05750565b6044906040519063e2517d3f60e01b82523360048301526024820152fd5b80600052600060205260406000203360005260205260ff6040600020541615610dd05750565b9060009180835282602052604083209160018060a01b03169182845260205260ff60408420541615600014610e8d57808352826020526040832082845260205260408320600160ff198254161790557f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d339380a4600190565b505090565b9060009180835282602052604083209160018060a01b03169182845260205260ff604084205416600014610e8d5780835282602052604083208284526020526040832060ff1981541690557ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b339380a460019056fea264697066735822122054d00e52da3232939eea785112c4146aab06f7777c41269c3f79ef16d4ea461464736f6c634300081600332f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d",
"deployedBytecode": "0x608060408181526004918236101561001657600080fd5b600092833560e01c91826301ffc9a714610b2d57508163163fecf514610af2578163248a9ca314610ac85781632f2ff15d14610a9e57816336568abe14610a585781637521325114610a2057816375cdc84b1461094657816381c4af5a1461091d5781638f9ba28814610810578163907563871461077057816391d148541461072a5781639ce8ba01146105e3578163a217fddf146105c8578163b6a1f1e11461058e578163c1b306b014610553578163ca40f39e14610159578163d547741f14610116575063e77772fe146100eb57600080fd5b3461011257816003193601126101125760035490516001600160a01b039091168152602090f35b5080fd5b91905034610155578060031936011261015557610151913561014c600161013b610b80565b938387528660205286200154610dee565b610e92565b5080f35b8280fd5b905082346103115761016a36610bb1565b906002600194939454146105435760026001556001600160a01b039384169081156104ed57841691821561049757801561044857818452602093868552858882205416958482528089832054169680156103f257871561039c57843b1561015557895163158a1cc360e01b8152338a82015260248101859052630307830360e41b60448201528381606481838a5af180156103925761037e575b506060908584526006885260648a858d6127109687610226838520548c610d4b565b04906002541691519d8e96879563ed8b742b60e01b8752860152602485015260448401525af180156103145782978391610346575b5081810291818304149015171561033357848252600686528882205490811561031e570496843b1561011257885190630f22c5f760e11b82523390820152876024820152816044820152818160648183895af18015610314576102fd575b505060607f387f0e7834cd907b21c35273b33e473edd0a760bbd5a1342488fc22506ea800991885190815287868201528689820152a3600180558351928352820152f35b6103078291610be6565b61031157806102b9565b80fd5b89513d84823e3d90fd5b601289634e487b7160e01b6000525260246000fd5b634e487b7160e01b825260118852602482fd5b9750506060873d606011610376575b8161036260609383610c10565b81010312610112578587519701518a61025b565b3d9150610355565b9261038b60609294610be6565b9290610204565b8b513d86823e3d90fd5b895162461bcd60e51b8152808a01889052602a60248201527f52657365727665546f6b656e496e746567726174696f6e3a20746172676574206044820152691b9bdd08189858dad95960b21b6064820152608490fd5b895162461bcd60e51b8152808a01889052602a60248201527f52657365727665546f6b656e496e746567726174696f6e3a20736f75726365206044820152691b9bdd08189858dad95960b21b6064820152608490fd5b865162461bcd60e51b81526020818801526024808201527f52657365727665546f6b656e496e746567726174696f6e3a207a65726f20616d6044820152631bdd5b9d60e21b6064820152608490fd5b865162461bcd60e51b8152602081880152602a60248201527f52657365727665546f6b656e496e746567726174696f6e3a207a65726f2074616044820152693933b2ba103a37b5b2b760b11b6064820152608490fd5b865162461bcd60e51b8152602081880152602a60248201527f52657365727665546f6b656e496e746567726174696f6e3a207a65726f20736f6044820152693ab931b2903a37b5b2b760b11b6064820152608490fd5b8551633ee5aeb560e01b81528590fd5b505034610112576020366003190112610112576020916001600160a01b039082908261057d610b9b565b168152600585522054169051908152f35b905034610155576020366003190112610155576020926001600160a01b0391839190836105b9610b9b565b16825285522054169051908152f35b50503461011257816003193601126101125751908152602090f35b9050346101555760209182600319360112610726576001600160a01b0380610609610b9b565b1680865283855281838720541690610622821515610ced565b83516318160ddd60e01b81529086828781845afa91821561071c57908793929189926106e6575b50610664602492612710928b5260068652878b205490610d4b565b04936002541695855196879384926305489ad560e21b84528301525afa9283156106dc5785936106a5575b5060609450815193818410158552840152820152f35b9092508381813d83116106d5575b6106bd8183610c10565b810103126106d1576060945051913861068f565b8480fd5b503d6106b3565b82513d87823e3d90fd5b8092508491943d8311610715575b6106fe8183610c10565b8101031261071157518692610664610649565b8780fd5b503d6106f4565b85513d8a823e3d90fd5b8380fd5b9050346101555781600319360112610155578160209360ff9261074b610b80565b903582528186528282206001600160a01b039091168252855220549151911615158152f35b9050346101555781600319360112610155577f02b6aa513242e899506f7813e15fde10664d79ff6b1d78ba1e71daa018a5297460206107ad610b9b565b602435906107b9610d74565b6001600160a01b03908116946107d0861515610c32565b6107de612710841115610c8a565b8588528084526107f482888a2054161515610ced565b858852835285872054169460068352818188205551908152a380f35b919050346101555761082136610bb1565b9161082d939193610d74565b6001600160a01b0390811693610844851515610c32565b169384156108c757916020917f15ae79afb8c9de4c04839333e931ed56e9ac4bb34eb28f3731347e6c2a50313e93610880612710841115610c8a565b85885283528087206bffffffffffffffffffffffff60a01b90878282541617905586885260058452858289209182541617905584875260068352818188205551908152a380f35b6020608492519162461bcd60e51b8352820152602b60248201527f52657365727665546f6b656e496e746567726174696f6e3a207a65726f20726560448201526a1cd95c9d9948185cdcd95d60aa1b6064820152fd5b50503461011257816003193601126101125760025490516001600160a01b039091168152602090f35b838334610112576020908160031936011261015557610963610b9b565b6001600160a01b03908116845284835281842054600684528285205491959086169493908490866109a2575b5050606095508251948552840152820152f35b9194509585602486926002541693865194859384926305489ad560e21b84528301525afa908115610a165786916109e1575b506060955092868061098f565b90508381813d8311610a0f575b6109f88183610c10565b81010312610a0b576060955051866109d4565b8580fd5b503d6109ee565b83513d88823e3d90fd5b5050346101125760203660031901126101125760209181906001600160a01b03610a48610b9b565b1681526006845220549051908152f35b838334610112578060031936011261011257610a72610b80565b90336001600160a01b03831603610a8f5750610151919235610e92565b5163334bd91960e11b81528390fd5b919050346101555780600319360112610155576101519135610ac3600161013b610b80565b610e14565b90503461015557602036600319011261015557816020936001923581528085522001549051908152f35b505034610112578160031936011261011257602090517f8340864bc328d3ce41b03142236fd8022fe6827517da8993f52c573ce75afd0b8152f35b849134610155576020366003190112610155573563ffffffff60e01b81168091036101555760209250637965db0b60e01b8114908115610b6f575b5015158152f35b6301ffc9a760e01b14905083610b68565b602435906001600160a01b0382168203610b9657565b600080fd5b600435906001600160a01b0382168203610b9657565b6060906003190112610b96576001600160a01b03906004358281168103610b9657916024359081168103610b96579060443590565b67ffffffffffffffff8111610bfa57604052565b634e487b7160e01b600052604160045260246000fd5b90601f8019910116810190811067ffffffffffffffff821117610bfa57604052565b15610c3957565b60405162461bcd60e51b815260206004820152602360248201527f52657365727665546f6b656e496e746567726174696f6e3a207a65726f20746f60448201526235b2b760e91b6064820152608490fd5b15610c9157565b60405162461bcd60e51b815260206004820152602e60248201527f52657365727665546f6b656e496e746567726174696f6e3a20696e76616c696460448201526d206261636b696e6720726174696f60901b6064820152608490fd5b15610cf457565b60405162461bcd60e51b815260206004820152602960248201527f52657365727665546f6b656e496e746567726174696f6e3a20746f6b656e206e6044820152681bdd08189858dad95960ba1b6064820152608490fd5b81810292918115918404141715610d5e57565b634e487b7160e01b600052601160045260246000fd5b3360009081527f4db6b467286c1b97d945adab8ac14f018db862dc3f7dd56afe44232680c6cda460205260409020547f8340864bc328d3ce41b03142236fd8022fe6827517da8993f52c573ce75afd0b9060ff1615610dd05750565b6044906040519063e2517d3f60e01b82523360048301526024820152fd5b80600052600060205260406000203360005260205260ff6040600020541615610dd05750565b9060009180835282602052604083209160018060a01b03169182845260205260ff60408420541615600014610e8d57808352826020526040832082845260205260408320600160ff198254161790557f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d339380a4600190565b505090565b9060009180835282602052604083209160018060a01b03169182845260205260ff604084205416600014610e8d5780835282602052604083208284526020526040832060ff1981541690557ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b339380a460019056fea264697066735822122054d00e52da3232939eea785112c4146aab06f7777c41269c3f79ef16d4ea461464736f6c63430008160033",
"linkReferences": {},
"deployedLinkReferences": {}
}