0 txs
0 calls
constructor
No constructor.
functions
ADMIN_ROLE
viewfunction ADMIN_ROLE() view returns (uint256)
asset
viewfunction asset() view returns (address)
hasAllRoles
viewfunction hasAllRoles(address user, uint256 roles) view returns (bool)
hasAnyRole
viewfunction hasAnyRole(address user, uint256 roles) view returns (bool)
owner
viewfunction owner() view returns (address result)
ownershipHandoverExpiresAt
viewfunction ownershipHandoverExpiresAt(address pendingOwner) view returns (uint256 result)
pendingXChainInvests
viewfunction pendingXChainInvests(uint256) view returns (uint256)
receiverImplementation
viewfunction receiverImplementation() view returns (address)
receivers
viewfunction receivers(bytes32) view returns (address)
recoveryAddress
viewfunction recoveryAddress() view returns (address)
RELAYER_ROLE
viewfunction RELAYER_ROLE() view returns (uint256)
requests
viewfunction requests(bytes32) view returns (address controller, uint256 requestedAssets, address receiverAddress, bool hasReceiver)
rolesOf
viewfunction rolesOf(address user) view returns (uint256 roles)
selectors
purefunction selectors() pure returns (bytes4[])
superformRouter
viewfunction superformRouter() view returns (address)
superPositions
viewfunction superPositions() view returns (address)
superRegistry
viewfunction superRegistry() view returns (address)
totalPendingXChainDivests
viewfunction totalPendingXChainDivests() view returns (uint256)
totalpendingXChainInvests
viewfunction totalpendingXChainInvests() view returns (uint256)
vault
viewfunction vault() view returns (address)
cancelOwnershipHandover
payablefunction cancelOwnershipHandover() payable
completeOwnershipHandover
payablefunction completeOwnershipHandover(address pendingOwner) payable
getReceiver
nonpayablefunction getReceiver(bytes32 key) returns (address receiverAddress)
grantRoles
payablefunction grantRoles(address user, uint256 roles) payable
investMultiXChainMultiVault
payablefunction investMultiXChainMultiVault(tuple req) payable returns (uint256 totalAmount)
investMultiXChainSingleVault
payablefunction investMultiXChainSingleVault(tuple req) payable returns (uint256 totalAmount)
investSingleXChainMultiVault
payablefunction investSingleXChainMultiVault(tuple req) payable returns (uint256 totalAmount)
investSingleXChainSingleVault
payablefunction investSingleXChainSingleVault(tuple req) payable returns (uint256 totalAmount)
notifyFailedInvest
nonpayablefunction notifyFailedInvest(uint256 superformId, uint256 refundedAssets)
renounceOwnership
payablefunction renounceOwnership() payable
renounceRoles
payablefunction renounceRoles(uint256 roles) payable
requestOwnershipHandover
payablefunction requestOwnershipHandover() payable
revokeRoles
payablefunction revokeRoles(address user, uint256 roles) payable
setRecoveryAddress
nonpayablefunction setRecoveryAddress(address _newRecoveryAddress)
transferOwnership
payablefunction transferOwnership(address newOwner) payable
events
InvestFailed
event InvestFailed(uint256 indexed superformId, uint256 refundedAssets)
OwnershipHandoverCanceled
event OwnershipHandoverCanceled(address indexed pendingOwner)
OwnershipHandoverRequested
event OwnershipHandoverRequested(address indexed pendingOwner)
OwnershipTransferred
event OwnershipTransferred(address indexed oldOwner, address indexed newOwner)
PendingInvestUpdated
event PendingInvestUpdated(uint256 indexed superformId, uint256 oldAmount, uint256 newAmount)
ReceiverDeployed
event ReceiverDeployed(bytes32 indexed key, address indexed receiver)
RecoveryAddressUpdated
event RecoveryAddressUpdated(address indexed oldAddress, address indexed newAddress)
RolesUpdated
event RolesUpdated(address indexed user, uint256 indexed roles)
errors
AlreadyInitialized
error AlreadyInitialized()
InvalidAmount
error InvalidAmount()
InvalidKey
error InvalidKey()
InvalidRecoveryAddress
error InvalidRecoveryAddress()
InvalidSuperformId
error InvalidSuperformId()
NewOwnerIsZeroAddress
error NewOwnerIsZeroAddress()
NoHandoverRequest
error NoHandoverRequest()
NotVault
error NotVault()
TotalAmountMismatch
error TotalAmountMismatch()
Unauthorized
error Unauthorized()
VaultNotListed
error VaultNotListed()
creation bytecode
0x60808060405234601557612d28908161001a8239f35b5f80fdfe60806040526004361015610011575f80fd5b5f3560e01c80630842a26e14610244578063112e335c1461023f57806315916ed81461023a578063183a4f6e146102355780631c10893f146102305780631cd64df41461022b57806324c73dda1461022657806325692962146102215780632de948071461021c57806330c8472f1461021757806338d52e0f146102125780633e9029e21461020d57806349efe5ae146102085780634a4ee7b114610203578063510d0343146101fe578063514e62fc146101f957806352994738146101f457806354d1f13d146101ef57806358fe4362146101ea5780636b2b6e0c146101e55780636e25b978146101e0578063710eb26c146101db578063715018a6146101d657806375b238fc146101d15780638da5cb5b146101cc578063926d7d7f146101c75780639d866985146101c2578063c904f7c1146101bd578063ed61a911146101b8578063f04e283e146101b3578063f08c58a3146101ae578063f2fde38b146101a9578063f795b0fe146101a4578063fbfa77cf1461019f5763fee81cf41461019a575f80fd5b611501565b6114d9565b6113ae565b61136f565b611352565b611301565b6112d7565b6112ab565b611252565b611225565b6111f9565b6111de565b611195565b61116d565b611097565b610fb2565b610f8a565b610f46565b610e1b565b610a86565b610939565b61090d565b610869565b61084c565b610824565b6107fc565b6107bf565b610776565b61074e565b610709565b6106a3565b610689565b61065f565b610638565b610578565b634e487b7160e01b5f52604160045260245ffd5b60c081019081106001600160401b0382111761027857604052565b610249565b606081019081106001600160401b0382111761027857604052565b90601f801991011681019081106001600160401b0382111761027857604052565b604051906102c961016083610298565b565b6001600160401b0381116102785760051b60200190565b60ff8116036102ed57565b5f80fd5b35906102c9826102e2565b9080601f830112156102ed578135610313816102cb565b926103216040519485610298565b81845260208085019260051b8201019283116102ed57602001905b8282106103495750505090565b602080918335610358816102e2565b81520191019061033c565b35906001600160401b03821682036102ed57565b81601f820112156102ed578035906001600160401b03821161027857604051926103ab601f8401601f191660200185610298565b828452602083830101116102ed57815f926020809301838601378301015290565b6001600160a01b038116036102ed57565b35906102c9826103cc565b91909160c0818403126102ed57604051906104028261025d565b81938135916001600160401b0383116102ed5761042560a0939284938301610377565b84526020810135610435816103cc565b6020850152610446604082016103dd565b6040850152610457606082016102f1565b606085015261046860808201610363565b60808501520135910152565b801515036102ed57565b35906102c982610474565b919091610160818403126102ed5761049f6102b9565b928135845260208201356020850152604082013560408501526060820135606085015260808201356001600160401b0381116102ed57816104e19184016103e8565b608085015260a08201356001600160401b0381116102ed5781610505918401610377565b60a085015261051660c0830161047e565b60c085015261052760e0830161047e565b60e085015261053961010083016103dd565b61010085015261054c61012083016103dd565b6101208501526101408201356001600160401b0381116102ed576105709201610377565b610140830152565b60203660031901126102ed576004356001600160401b0381116102ed57606060031982360301126102ed57604051906105b08261027d565b80600401356001600160401b0381116102ed576105d390600436918401016102fc565b82526105e160248201610363565b60208301526044810135916001600160401b0383116102ed5761061061061a92600461062a9536920101610489565b6040820152611537565b6040519081529081906020820190565b0390f35b5f9103126102ed57565b346102ed575f3660031901126102ed575f546040516001600160a01b039091168152602090f35b346102ed5760203660031901126102ed576004355f526009602052602060405f2054604051908152f35b60203660031901126102ed576106a160043533612c42565b005b60403660031901126102ed576004356106bb816103cc565b602435906106c7612bdb565b638b78c6d8600c525f526020600c2090815417809155600c5160601c7f715ad5ce61fc9595c7b415289d59cf203f23a94fa06f04af7e489a0a76e1fe265f80a3005b346102ed5760403660031901126102ed57602061074460043561072b816103cc565b602435918291638b78c6d8600c525f526020600c205490565b1614604051908152f35b346102ed575f3660031901126102ed576003546040516001600160a01b039091168152602090f35b5f3660031901126102ed5763389a75e1600c52335f526202a30042016020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d5f80a2005b346102ed5760203660031901126102ed5760206107f46004356107e1816103cc565b638b78c6d8600c525f526020600c205490565b604051908152f35b346102ed575f3660031901126102ed576001546040516001600160a01b039091168152602090f35b346102ed575f3660031901126102ed576005546040516001600160a01b039091168152602090f35b346102ed575f3660031901126102ed576020600a54604051908152f35b346102ed5760203660031901126102ed57600435610886816103cc565b638b78c6d8600c52335f5260016020600c20541615610900576001600160a01b031680156108f157600680546001600160a01b0319811683179091556001600160a01b03167f184a649b6ce5186087e0a99b53f247181d516649f7d60e3de2b537271250b3955f80a3005b63530a10d160e11b5f5260045ffd5b6382b429005f526004601cfd5b60403660031901126102ed576106a1600435610928816103cc565b60243590610934612bdb565b612c42565b346102ed5760403660031901126102ed57602435600435610958612bea565b8015610a7757805f80516020612cd38339815191526109bb610982835f52600960205260405f2090565b5461099761099282600854611c44565b600855565b5f84815260096020526040812055604080519182525f602083015290918291820190565b0390a26040518281527fd20245dc1c8bfcbcdbf4bd354f2533002f7e90916d54b1f48b31f89ac4900dbd90602090a2806109f157005b600554610a0c9082906001600160a01b031630903390612b8f565b600454610a29906001600160a01b03165b6001600160a01b031690565b803b156102ed5760405163f14faf6f60e01b815260048101929092525f908290602490829084905af18015610a7257610a5e57005b80610a6c5f6106a193610298565b8061062e565b6119f0565b634620307560e11b5f5260045ffd5b346102ed5760403660031901126102ed576020600435610aa5816103cc565b610abf60243591638b78c6d8600c525f526020600c205490565b161515604051908152f35b9080601f830112156102ed578135610ae1816102cb565b92610aef6040519485610298565b81845260208085019260051b820101918383116102ed5760208201905b838210610b1b57505050505090565b81356001600160401b0381116102ed57602091610b3d878480948801016102fc565b815201910190610b0c565b9080601f830112156102ed578135610b5f816102cb565b92610b6d6040519485610298565b81845260208085019260051b8201019283116102ed57602001905b828210610b955750505090565b60208091610ba284610363565b815201910190610b88565b9080601f830112156102ed578135610bc4816102cb565b92610bd26040519485610298565b81845260208085019260051b8201019283116102ed57602001905b828210610bfa5750505090565b8135815260209182019101610bed565b9080601f830112156102ed578135610c21816102cb565b92610c2f6040519485610298565b81845260208085019260051b820101918383116102ed5760208201905b838210610c5b57505050505090565b81356001600160401b0381116102ed57602091610c7d878480948801016103e8565b815201910190610c4c565b9080601f830112156102ed578135610c9f816102cb565b92610cad6040519485610298565b81845260208085019260051b8201019283116102ed57602001905b828210610cd55750505090565b602080918335610ce481610474565b815201910190610cc8565b919091610160818403126102ed57610d056102b9565b9281356001600160401b0381116102ed5781610d22918401610bad565b845260208201356001600160401b0381116102ed5781610d43918401610bad565b602085015260408201356001600160401b0381116102ed5781610d67918401610bad565b604085015260608201356001600160401b0381116102ed5781610d8b918401610bad565b606085015260808201356001600160401b0381116102ed5781610daf918401610c0a565b608085015260a08201356001600160401b0381116102ed5781610dd3918401610377565b60a085015260c08201356001600160401b0381116102ed5781610df7918401610c88565b60c085015260e08201356001600160401b0381116102ed5781610527918401610c88565b60203660031901126102ed576004356001600160401b0381116102ed57606060031982360301126102ed5760405190610e538261027d565b80600401356001600160401b0381116102ed57610e769060043691840101610aca565b825260248101356001600160401b0381116102ed57610e9b9060043691840101610b48565b60208301526044810135906001600160401b0382116102ed5701366023820112156102ed576004810135610ece816102cb565b91610edc6040519384610298565b818352602060048185019360051b83010101903682116102ed5760248101925b828410610f155761062a61061a87876040820152611c51565b83356001600160401b0381116102ed57602091610f3b8392836004369288010101610cef565b815201930192610efc565b5f3660031901126102ed5763389a75e1600c52335f525f6020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c925f80a2005b346102ed575f3660031901126102ed576002546040516001600160a01b039091168152602090f35b60203660031901126102ed576004356001600160401b0381116102ed57606060031982360301126102ed5760405190610fea8261027d565b80600401356001600160401b0381116102ed5761100d90600436918401016102fc565b825261101b60248201610363565b60208301526044810135916001600160401b0383116102ed5761104a61061a92600461062a9536920101610cef565b60408201526123cd565b60206040818301928281528451809452019201905f5b8181106110775750505090565b82516001600160e01b03191684526020938401939092019160010161106a565b346102ed575f3660031901126102ed5760405161062a906110b960e082610298565b60068152601f196110ca60066102cb565b013660208301376110e96110dd8261209f565b6324f7f2d760e11b9052565b6111016110f5826120b1565b630421513760e11b9052565b61111961110d826120c1565b631acadb8360e21b9052565b611131611125826120d1565b637bcad87f60e11b9052565b61114961113d826120e1565b630a5328e760e31b9052565b611161611155826120f1565b63510d034360e01b9052565b60405191829182611054565b346102ed575f3660031901126102ed576006546040516001600160a01b039091168152602090f35b5f3660031901126102ed576111a8612bdb565b5f638b78c6d819547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a35f638b78c6d81955005b346102ed575f3660031901126102ed57602060405160018152f35b346102ed575f3660031901126102ed57638b78c6d819546040516001600160a01b039091168152602090f35b346102ed575f3660031901126102ed57602060405160028152f35b60209060031901126102ed5760043590565b346102ed5761126036611240565b5f52600d602052608060405f2060ff60018060a01b03825416916004600382015491015490604051938452602084015260018060a01b038116604084015260a01c1615156060820152f35b346102ed576112b936611240565b5f526007602052602060018060a01b0360405f205416604051908152f35b346102ed5760206112ef6112ea36611240565b61274e565b6040516001600160a01b039091168152f35b60203660031901126102ed57600435611319816103cc565b611321612bdb565b63389a75e1600c52805f526020600c209081544211611345575f6106a19255612c05565b636f5e88185f526004601cfd5b346102ed575f3660031901126102ed576020600854604051908152f35b60203660031901126102ed57600435611387816103cc565b61138f612bdb565b8060601b156113a1576106a190612c05565b637448fbae5f526004601cfd5b60203660031901126102ed576004356001600160401b0381116102ed57606060031982360301126102ed57604051906113e68261027d565b80600401356001600160401b0381116102ed576114099060043691840101610aca565b825260248101356001600160401b0381116102ed5761142e9060043691840101610b48565b60208301526044810135906001600160401b0382116102ed5701366023820112156102ed576004810135611461816102cb565b9161146f6040519384610298565b818352602060048185019360051b83010101903682116102ed5760248101925b8284106114a85761062a61061a8787604082015261285c565b83356001600160401b0381116102ed576020916114ce8392836004369288010101610489565b81520193019261148f565b346102ed575f3660031901126102ed576004546040516001600160a01b039091168152602090f35b346102ed5760203660031901126102ed5760043561151e816103cc565b63389a75e1600c525f52602080600c2054604051908152f35b6004546001600160a01b03811633036119315760065434470391906001600160a01b0316156108f157604083018051519093909161157d906001600160a01b0316610a1d565b604051632500ed8d60e21b81526004810184905290949060c081602481895afa908115610a72576115c660a06115ef936020935f91611902575b5001516001600160a01b031690565b604051634f2a078560e01b81526001600160a01b03909116600482015291829081906024820190565b0381895afa908115610a72575f916118d3575b50156118c4578051608081015180515190929190156118b0575060035461166e926020916116489060609061163f906001600160a01b0316610a1d565b92015160ff1690565b604051633a16cad560e21b815260ff909116600482015293849190829081906024820190565b03915afa918215610a72576116ab926020915f91611883575b506080835101515190604051808096819463137776b960e31b835260048301611a76565b03916001600160a01b03165afa918215610a725761171c926116e6915f91611854575b5080975b6005546001600160a01b0316903091612b8f565b600654610100906001600160a01b031682516001600160a01b03821661012090910152915b516001600160a01b03909216910152565b61172e825f52600960205260405f2090565b5491611742815f52600960205260405f2090565b61174d868254611aa6565b9055600854906117606109928784611aa6565b600254611775906001600160a01b0316610a1d565b803b156102ed5761179d935f91604051808097819463e5672e2360e01b835260048301611bfc565b039134905af18015610a72575f945f80516020612cd3833981519152948592611840575b506117d4835f52600960205260405f2090565b5460408051928352602083019190915290a2600854604080519283526020830191909152819081015b0390a247908110806001146118335715611815575090565b5f9081803892325af1156118265790565b63b12d13eb5f526004601cfd5b631c26714c5f526004601cfd5b80610a6c8861184e93610298565b5f6117c1565b611876915060203d60201161187c575b61186e8183610298565b810190611a28565b5f6116ce565b503d611864565b6118a39150823d84116118a9575b61189b8183610298565b810190611a13565b5f611687565b503d611891565b61171c925060206116e691015180976116d2565b63f6ad13d560e01b5f5260045ffd5b6118f5915060203d6020116118fb575b6118ed8183610298565b8101906119fb565b5f611602565b503d6118e3565b611924915060c03d60c01161192a575b61191c8183610298565b810190611973565b5f6115b7565b503d611912565b6362df054560e01b5f5260045ffd5b51906102c9826102e2565b51906fffffffffffffffffffffffffffffffff821682036102ed57565b51906102c9826103cc565b908160c09103126102ed576040519061198b8261025d565b805163ffffffff811681036102ed576119e89160a09184526020810151602085015260408101516119bb816103cc565b60408501526119cc60608201611940565b60608501526119dd6080820161194b565b608085015201611968565b60a082015290565b6040513d5f823e3d90fd5b908160209103126102ed5751611a1081610474565b90565b908160209103126102ed5751611a10816103cc565b908160209103126102ed575190565b91908251928382525f5b848110611a61575050825f602080949584010152601f8019910116010190565b80602080928401015182828601015201611a41565b91906020611a8d5f92604086526040860190611a37565b930152565b634e487b7160e01b5f52601160045260245ffd5b91908201809211611ab357565b611a92565b90602080835192838152019201905f5b818110611ad55750505090565b825160ff16845260209384019390920191600101611ac8565b9060a080611b05845160c0855260c0850190611a37565b93600180831b036020820151166020850152600180831b03604082015116604085015260ff60608201511660608501526001600160401b036080820151166080850152015191015290565b611a109181518152602082015160208201526040820151604082015260608201516060820152610140611ba9611b9760808501516101606080860152610160850190611aee565b60a085015184820360a0860152611a37565b60c0808501511515908401529260e081810151151590840152610100818101516001600160a01b0316908401525b610120818101516001600160a01b031690840152015190610140818403910152611a37565b90611a1091602081526040611c1d8351606060208501526080840190611ab8565b926001600160401b03602082015116828401520151906060601f1982850301910152611b50565b91908203918211611ab357565b6004549091906001600160a01b03163303611931576006545f9234470392916001600160a01b0316156108f15760408101918251511561207c57935f905b83518051831015611fa85782611ca491612101565b5151946020611cb4848751612101565b510151600654909490611cea906001600160a01b0316611cdc8161012061170b898c51612101565b61010061170b878a51612101565b8651855103611f99575f925b8751841015611f8757611d098489612101565b51858589611d26826080611d1e868551612101565b510151612101565b51515115611f7557611d666060611d5d6020946080611d1e611d8c98611d56610a1d60035460018060a01b031690565b9751612101565b51015160ff1690565b604051633a16cad560e21b815260ff909116600482015292839190829081906024820190565b03915afa8015610a725789602091888a611dd7955f93611f4b575b50611d1e608091611db9949551612101565b515190604051808095819463137776b960e31b835260048301611a76565b03916001600160a01b03165afa908115610a72575f91611f2d575b505b600454611e09906001600160a01b0316610a1d565b604051632500ed8d60e21b81526004810184905260c081602481855afa918215610a7257611e4e60a0611e7a946020945f91611f15575001516001600160a01b031690565b604051634f2a078560e01b81526001600160a01b03909116600482015292839190829081906024820190565b03915afa908115610a72575f91611ef7575b50156118c457600192825f80516020612cd383398151915283611eba611eef965f52600960205260405f2090565b54611ecd845f52600960205260405f2090565b611ed8838254611aa6565b9055604080519182526020820192909252a2611aa6565b930192611cf6565b611f0f915060203d81116118fb576118ed8183610298565b5f611e8c565b611924915060c03d811161192a5761191c8183610298565b611f45915060203d811161187c5761186e8183610298565b5f611df2565b611db99350608091611f6c611d1e92883d81116118a95761189b8183610298565b94509150611da7565b50611f81915088612101565b51611df4565b91965093506001909201919050611c8f565b631ae3648760e01b5f5260045ffd5b5093925050600854611fbd6109928583611aa6565b600554611fec9085906001600160a01b03165b600454611fe5906001600160a01b0316610a1d565b3091612b8f565b600254612001906001600160a01b0316610a1d565b803b156102ed57612029925f916040518080968194633e753c6360e21b835260048301612332565b039134905af1908115610a72575f925f80516020612cd383398151915292612068575b50600854604080519283526020830191909152819081016117fd565b80610a6c8561207693610298565b5f61204c565b63162908e360e11b5f5260045ffd5b634e487b7160e01b5f52603260045260245ffd5b8051156120ac5760200190565b61208b565b8051600110156120ac5760400190565b8051600210156120ac5760600190565b8051600310156120ac5760800190565b8051600410156120ac5760a00190565b8051600510156120ac5760c00190565b80518210156120ac5760209160051b010190565b9080602083519182815201916020808360051b8301019401925f915b83831061214057505050505090565b909192939460208061215e600193601f198682030187528951611ab8565b97019301930191939290612131565b90602080835192838152019201905f5b81811061218a5750505090565b82516001600160401b031684526020938401939092019160010161217d565b90602080835192838152019201905f5b8181106121c65750505090565b82518452602093840193909201916001016121b9565b9080602083519182815201916020808360051b8301019401925f915b83831061220757505050505090565b9091929394602080612225600193601f198682030187528951611aee565b970193019301919392906121f8565b90602080835192838152019201905f5b8181106122515750505090565b82511515845260209384019390920191600101612244565b611a10916101406123186123066122f46122e26122d06122be6122ac61229a8a516101608b526101608b01906121a9565b60208b01518a820360208c01526121a9565b60408a015189820360408b01526121a9565b606089015188820360608a01526121a9565b608088015187820360808901526121dc565b60a087015186820360a0880152611a37565b60c086015185820360c0870152612234565b60e085015184820360e0860152612234565b610100808501516001600160a01b03169084015292611bd7565b906020825260406123676123528351606060208701526080860190612115565b6020840151858203601f19018487015261216d565b910151916060601f1982840301910152815180825260208201916020808360051b8301019401925f915b8383106123a057505050505090565b90919293946020806123be600193601f198682030187528951612269565b97019301930191939290612391565b6004546001600160a01b0316330361193157600654344703925f9290916001600160a01b0316156108f1576040810191825151511561207c57825160208151519101515103611f9957825130610120909101525f5b8351518051821015612626578161243891612101565b5160065485516001600160a01b03909116610120909101819052855161010001529461246982608087510151612101565b5151511561260c576003546124a2919060209061248e906001600160a01b0316610a1d565b6116486060611d5d8760808c510151612101565b03915afa918215610a72576124e9926020915f916125ef575b506124cb8560808a510151612101565b515190604051808096819463137776b960e31b835260048301611a76565b03916001600160a01b03165afa8015610a725761252c925f916125d1575b50905b875f80516020612cd383398151915283611eba835f52600960205260405f2090565b9461256660c0612546610a1d60045460018060a01b031690565b9260405180938192632500ed8d60e21b8352600483019190602083019252565b0381855afa918215610a7257611e4e60a0612593946020945f91611f15575001516001600160a01b031690565b03915afa908115610a72575f916125b3575b50156118c457600101612422565b6125cb915060203d81116118fb576118ed8183610298565b5f6125a5565b6125e9915060203d811161187c5761186e8183610298565b5f612507565b6126069150823d81116118a95761189b8183610298565b5f6124bb565b61252c9061261f83602088510151612101565b519061250a565b50509391505f5f80516020612cd383398151915260085461264a6109928783611aa6565b60085460408051928352602083019190915290a260055461268e9084906001600160a01b0316600454309190612688906001600160a01b0316610a1d565b90612b8f565b6002546126a3906001600160a01b0316610a1d565b803b156102ed576126cb915f91604051808095819463881d42bb60e01b835260048301612706565b039134905af18015610a72576126f2575b5047908110806001146118335715611815575090565b80610a6c5f61270093610298565b5f6126dc565b90611a10916020815260406127278351606060208501526080840190611ab8565b926001600160401b03602082015116828401520151906060601f1982850301910152612269565b801561284d57612776612769825f52600760205260405f2090565b546001600160a01b031690565b906001600160a01b0382161561278a575090565b5f54909291506127a2906001600160a01b0316612c87565b916001600160a01b03831690813b156102ed57604051639498bd7160e01b8152600481018290525f8160248183875af18015610a7257612839575b50612813846127f4835f52600760205260405f2090565b80546001600160a01b0319166001600160a01b03909216919091179055565b7f5eb251e783ba28250e9da29022abe8b0418830c9874be62308f8cf79bcc1e6fe5f80a3565b80610a6c5f61284793610298565b5f6127dd565b630eda9c3d60e31b5f5260045ffd5b6004549091906001600160a01b03163303611931576006545f9234470392916001600160a01b0316156108f15760408101918251511561207c575f945b83518051871015612aa457866128ae91612101565b515160806128bd888751612101565b510151515115612a8f57600354612900906020906128e3906001600160a01b0316610a1d565b611d66606060806128f58d8c51612101565b510151015160ff1690565b03915afa908115610a7257612947916020915f91612a72575b5060806129278b8a51612101565b5101515190604051808095819463137776b960e31b835260048301611a76565b03916001600160a01b03165afa908115610a72575f91612a54575b505b600654612994906001600160a01b03166129868161012061170b8d8c51612101565b61010061170b8b8a51612101565b6004546129a9906001600160a01b0316610a1d565b604051632500ed8d60e21b81526004810184905260c081602481855afa918215610a7257611e4e60a06129ee946020945f91611f15575001516001600160a01b031690565b03915afa908115610a72575f91612a36575b50156118c457600192825f80516020612cd383398151915283611eba612a2e965f52600960205260405f2090565b950194612899565b612a4e915060203d81116118fb576118ed8183610298565b5f612a00565b612a6c915060203d811161187c5761186e8183610298565b5f612962565b612a899150823d81116118a95761189b8183610298565b5f612919565b6020612a9c888751612101565b510151612964565b509392509350600854612aba6109928583611aa6565b600554612ad19085906001600160a01b0316611fd0565b600254612ae6906001600160a01b0316610a1d565b803b156102ed57612029925f916040518080968194635708347960e11b83526004830190602082526040612b296123528351606060208701526080860190612115565b910151916060601f1982840301910152815180825260208201916020808360051b8301019401925f915b838310612b6257505050505090565b9091929394602080612b80600193601f198682030187528951611b50565b97019301930191939290612b53565b601c5f60649281946020966040519860605260405260601b602c526323b872dd60601b600c525af13d1560015f5114171615612bce575f606052604052565b637939f4245f526004601cfd5b638b78c6d81954330361090057565b638b78c6d8600c52335f5260026020600c2054161561090057565b60018060a01b031680638b78c6d819547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3638b78c6d81955565b638b78c6d8600c525f526020600c2090815490811618809155600c5160601c7f715ad5ce61fc9595c7b415289d59cf203f23a94fa06f04af7e489a0a76e1fe265f80a3565b6c5af43d3d93803e602a57fd5bf360215260145273602c3d8160093d39f33d3d3d3d363d3d37363d735f526035600c5ff0908115612cc5575f602152565b63301164255f526004601cfdfe5fcd1c548f9a5d1e129df33fa5b847c6d286c3b3e4f30813c7aecccef080fc69a264697066735822122026d4c300895f50fd63bfce93e1c5e042390c80fdc4dc92fc0e9fb15cb614f6f764736f6c634300081a0033