2 txs
3 calls
constructor
constructor(address _accessManager, address _bridgeRouter, address _crossChainRegistry, address _fleetAddress, uint16 _sourceChainId)
functions
ADMIRALS_QUARTERS_ROLE
viewfunction ADMIRALS_QUARTERS_ROLE() view returns (bytes32)
bridgeRouter
viewfunction bridgeRouter() view returns (address)
CROSS_CHAIN_REGISTRY
viewfunction CROSS_CHAIN_REGISTRY() view returns (address)
crossChainRegistry
viewfunction crossChainRegistry() view returns (address)
DECAY_CONTROLLER_ROLE
viewfunction DECAY_CONTROLLER_ROLE() view returns (bytes32)
defaultGasLimit
viewfunction defaultGasLimit() view returns (uint256)
fleetAddress
viewfunction fleetAddress() view returns (address)
generateRole
purefunction generateRole(uint8 roleName, address roleTargetContract) pure returns (bytes32)
getBalance
viewfunction getBalance(address token) view returns (uint256)
getSupportedOperationTypes
viewfunction getSupportedOperationTypes() view returns (uint8[] supportedTypes)
GOVERNOR_ROLE
viewfunction GOVERNOR_ROLE() view returns (bytes32)
GUARDIAN_ROLE
viewfunction GUARDIAN_ROLE() view returns (bytes32)
hasAdmiralsQuartersRole
viewfunction hasAdmiralsQuartersRole(address account) view returns (bool)
hubChainId
viewfunction hubChainId() view returns (uint16)
inflightWithdrawals
viewfunction inflightWithdrawals() view returns (uint256)
isExecutor
viewfunction isExecutor(address executor) view returns (bool)
latestIncomingTransferId
viewfunction latestIncomingTransferId() view returns (bytes32)
paused
viewfunction paused() view returns (bool)
SUPER_KEEPER_ROLE
viewfunction SUPER_KEEPER_ROLE() view returns (bytes32)
supportsInterface
purefunction supportsInterface(bytes4 interfaceId) pure returns (bool)
totalAssets
viewfunction totalAssets() view returns (uint256)
forceUpdateInflightAssets
nonpayablefunction forceUpdateInflightAssets(uint256 amount)
notifySourceChain
payablefunction notifySourceChain(tuple options) payable
pause
nonpayablefunction pause()
receiveOperation
nonpayablefunction receiveOperation(uint8 operationType, bytes encodedParams)
unpause
nonpayablefunction unpause()
updateInflightAssets
nonpayablefunction updateInflightAssets(uint256 amount)
withdrawAndTransfer
payablefunction withdrawAndTransfer(uint256 amount, tuple options) payable
events
AssetsSent
event AssetsSent(address indexed token, uint256 amount, uint16 indexed sourceChainId, bytes32 indexed messageId)
AssetsWithdrawnAndTransferred
event AssetsWithdrawnAndTransferred(uint256 amount, address asset, uint16 sourceChainId)
CrossChainOperationReceived
event CrossChainOperationReceived(uint8 indexed operationType, bytes32 indexed operationId, uint16 indexed sourceChainId)
InflightAssetsUpdated
event InflightAssetsUpdated(uint256 amount)
MessageContentNotExpected
event MessageContentNotExpected()
Paused
event Paused(address account)
ProxyDeposit
event ProxyDeposit(address indexed fleetContract, address indexed token, uint256 amount, uint16 indexed sourceChainId)
ProxyWithdrawal
event ProxyWithdrawal(address indexed recipient, address indexed token, uint256 amount, bytes32 indexed operationId)
Unpaused
event Unpaused(address account)
errors
BridgeOperationFailed
error BridgeOperationFailed()
CallerIsNotAdmin
error CallerIsNotAdmin(address caller)
CallerIsNotAuthorizedToBoard
error CallerIsNotAuthorizedToBoard(address caller)
CallerIsNotCommander
error CallerIsNotCommander(address caller)
CallerIsNotContractSpecificRole
error CallerIsNotContractSpecificRole(address caller, bytes32 role)
CallerIsNotCurator
error CallerIsNotCurator(address caller)
CallerIsNotDecayController
error CallerIsNotDecayController(address caller)
CallerIsNotFoundation
error CallerIsNotFoundation(address caller)
CallerIsNotGovernor
error CallerIsNotGovernor(address caller)
CallerIsNotGuardian
error CallerIsNotGuardian(address caller)
CallerIsNotGuardianOrGovernor
error CallerIsNotGuardianOrGovernor(address caller)
CallerIsNotKeeper
error CallerIsNotKeeper(address caller)
CallerIsNotRaft
error CallerIsNotRaft(address caller)
CallerIsNotRaftOrCommander
error CallerIsNotRaftOrCommander(address caller)
CallerIsNotSuperKeeper
error CallerIsNotSuperKeeper(address caller)
CallerNotRegisteredAdapter
error CallerNotRegisteredAdapter()
CrossChainConfigManagerZeroAddress
error CrossChainConfigManagerZeroAddress()
CrossChainRegistryZeroAddress
error CrossChainRegistryZeroAddress()
DirectGrantIsDisabled
error DirectGrantIsDisabled(address caller)
DirectRevokeIsDisabled
error DirectRevokeIsDisabled(address caller)
EnforcedPause
error EnforcedPause()
ExpectedPause
error ExpectedPause()
InsufficientBalance
error InsufficientBalance(uint256 requested, uint256 available)
InvalidAccessManagerAddress
error InvalidAccessManagerAddress(address invalidAddress)
InvalidAmount
error InvalidAmount()
InvalidAsset
error InvalidAsset()
InvalidBridgeRouter
error InvalidBridgeRouter()
InvalidFleetContract
error InvalidFleetContract()
InvalidOperation
error InvalidOperation()
InvalidRecipient
error InvalidRecipient()
InvalidRegistry
error InvalidRegistry()
InvalidRequestor
error InvalidRequestor()
InvalidSatelliteChain
error InvalidSatelliteChain()
InvalidSourceChain
error InvalidSourceChain()
NoAssets
error NoAssets()
NoMessage
error NoMessage()
OnlyAuthorizedExecutor
error OnlyAuthorizedExecutor()
OnlyBridgeRouter
error OnlyBridgeRouter()
ReentrancyGuardReentrantCall
error ReentrancyGuardReentrantCall()
SafeERC20FailedOperation
error SafeERC20FailedOperation(address token)
Unauthorized
error Unauthorized()
UnsupportedOperationType
error UnsupportedOperationType()
WithdrawalFailed
error WithdrawalFailed()
creation bytecode
0x61010080604052346102105760a0816122188038038091610020828561023a565b8339810103126102105761003381610271565b9061004060208201610271565b61004c60408301610271565b608061005a60608501610271565b9301519361ffff85168503610210576001600160a01b03168015610227576040516301ffc9a760e01b815263261c910560e21b6004820152602081602481855afa90811561021c575f916101dd575b50156101cb576080526001600160a01b031680156101bc5760a0525f805460ff19169055600180556001600160a01b0316156101ad576001600160a01b0381161561019e5760c05260e052604051611f929081610286823960805181818161028c01528181610a9901528181610bd101528181610d8601528181610e6f01526113fc015260a051818181610339015281816108dc01528181610930015281816119cf01528181611b6e0152611d35015260c05181818161059f01528181610b5d01528181610f1601528181611482015261174f015260e05181818161098b01528181611031015281816114c40152611e180152f35b632e2999d360e01b5f5260045ffd5b63870240b160e01b5f5260045ffd5b6322fdc95360e11b5f5260045ffd5b6347bd7c1d60e01b5f5260045260245ffd5b90506020813d602011610214575b816101f86020938361023a565b8101031261021057518015158103610210575f6100a9565b5f80fd5b3d91506101eb565b6040513d5f823e3d90fd5b6347bd7c1d60e01b5f525f60045260245ffd5b601f909101601f19168101906001600160401b0382119082101761025d57604052565b634e487b7160e01b5f52604160045260245ffd5b51906001600160a01b03821682036102105756fe6080806040526004361015610012575f80fd5b5f3560e01c90816301e1d1141461172e5750806301ffc9a7146116c25780630e442eb6146113bf57806322eaa0c01461137657806324ea54f41461133c5780632729ca7f14610e2f5780633f4ba83a14610d4857806341af5b5214610d1c5780635c975abb14610cfb57806366e943f114610cd457806369b3054b14610c5f5780637eba626f14610b8c5780637f2ff8d014610b485780638456cb5914610a4857806392001f37146109af5780639251d3cd146108c7578063929f58401461097157806395368d2e1461090b5780639b250844146108c7578063a89f38a31461088d578063c0b534c214610853578063ccc574901461082c578063d5896fcd14610375578063debfda30146102f6578063ebc136d014610223578063f16debac14610206578063f8b2cb4f146101715763fdc0aefb14610150575f80fd5b3461016d575f36600319011261016d576020600354604051908152f35b5f80fd5b3461016d57602036600319011261016d57602460206001600160a01b036101966117d2565b16604051928380926370a0823160e01b82523060048301525afa80156101fb575f906101c8575b602090604051908152f35b506020813d6020116101f3575b816101e260209383611850565b8101031261016d57602090516101bd565b3d91506101d5565b6040513d5f823e3d90fd5b3461016d575f36600319011261016d576020600254604051908152f35b3461016d57602036600319011261016d5761023c6117d2565b604051632474521560e21b81527fb00be3d6a5434b97b328543d1486d56adcb7e74080170d1cdd7e0306c3d9ba3d60048201526001600160a01b03918216602482015290602090829060449082907f0000000000000000000000000000000000000000000000000000000000000000165afa80156101fb576020915f916102c9575b506040519015158152f35b6102e99150823d84116102ef575b6102e18183611850565b8101906118a1565b826102be565b503d6102d7565b3461016d57602036600319011261016d5761030f6117d2565b604051632315efd360e11b81526001600160a01b03918216600482015290602090829060249082907f0000000000000000000000000000000000000000000000000000000000000000165afa80156101fb576020915f916102c957506040519015158152f35b3461016d57604036600319011261016d57600435600381101561016d576024356001600160401b03811161016d573660238201121561016d578060040135906001600160401b03821161016d576024810191810191602483019336851161016d576001600160a01b036103e66119ba565b16330361081e576103f6816117fc565b806104a0575060208284031261016d5735906001600160401b03821161016d57019060a0908290031261016d57604051916104308361181a565b60248201358352610443604483016117e8565b602084015261045460648301611ab1565b6040840152610465608483016117e8565b606084015260a4820135906001600160401b03821161016d57602461048e926080940101611a5c565b9101526369e89c1160e11b5f5260045ffd5b6104a9816117fc565b60028103610769575060208284031261016d5735906001600160401b03821161016d57019060e0908290031261016d57604051916104e683611835565b602482013583526104f9604483016117e8565b916020840192835261050d60648201611ab1565b60408501908152610520608483016117e8565b606086015261053160a483016117e8565b916080860192835260a086019360c4820135855260e4820135916001600160401b03831161016d576105669201602401611a5c565b60c0860152610573611ac0565b845115610740575b61058961ffff825116611d26565b156107315781516040516338d52e0f60e01b81527f0000000000000000000000000000000000000000000000000000000000000000956001600160a01b0387811695939192911690602081600481895afa9081156101fb575f91610702575b506001600160a01b0316036106f3578451156106e4575182516001600160a01b03918216919061061b9061ffff16611b5f565b16036106d557519251905161ffff16936001600160a01b039093169261064390829085611c16565b604051636e553f6560e01b8152600481018290523060248201526020816044815f875af180156101fb576106a4575b5060207f3e42db3a282c825608be4a217940bc1d997e2d0e9a5b0f617a66e06a3c5d823b91604051908152a451600355005b6020813d6020116106cd575b816106bd60209383611850565b8101031261016d57506020610672565b3d91506106b0565b63321b59a560e21b5f5260045ffd5b635373815f60e01b5f5260045ffd5b636448d6e960e11b5f5260045ffd5b610724915060203d60201161072a575b61071c8183611850565b81019061199b565b896105e8565b503d610712565b639284b19760e01b5f5260045ffd5b7f19df458591d7bef5f63411f40177e932acb44b12946457a5f1c3352eec5fb9ca5f80a161057b565b600190610775816117fc565b0361080f5760208284031261016d5735906001600160401b03821161016d5701906060908290031261016d5760405191606083018381106001600160401b038211176107fb576040526024820135906001600160401b03821161016d57826107e9606492602461048e956040970101611a5c565b85526044810135602086015201611ab1565b634e487b7160e01b5f52604160045260245ffd5b6369e89c1160e11b5f5260045ffd5b6282b42960e81b5f5260045ffd5b3461016d575f36600319011261016d5760206040515f516020611efd5f395f51905f528152f35b3461016d575f36600319011261016d5760206040517f025d8bbf3268be680d2605ebf6da15063b9915615bf1087dab336efc1bf970cb8152f35b3461016d575f36600319011261016d5760206040517fb00be3d6a5434b97b328543d1486d56adcb7e74080170d1cdd7e0306c3d9ba3d8152f35b3461016d575f36600319011261016d576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461016d575f36600319011261016d57604051634a9b469760e11b81526020816004817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa80156101fb575f906101c857602090604051908152f35b3461016d575f36600319011261016d57602060405161ffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461016d575f36600319011261016d57604080516109cd8282611850565b600181526020810190601f198301368337805115610a345760028252825160208082529151918101829052928392908301915f5b818110610a0f575050500390f35b919350916020806001928651610a24816117fc565b8152019401910191849392610a01565b634e487b7160e01b5f52603260045260245ffd5b3461016d575f36600319011261016d57604051632474521560e21b81527f55435dd261a4b9b3364963f7738a7a662ad9c84396d64be3365284bb7f0a504160048201523360248201526020816044817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9081156101fb575f91610b29575b5015610b1657610adf611ac0565b600160ff195f5416175f557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586020604051338152a1005b635560e16d60e01b5f523360045260245ffd5b610b42915060203d6020116102ef576102e18183611850565b81610ad1565b3461016d575f36600319011261016d576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461016d57602036600319011261016d57604051632474521560e21b81525f516020611efd5f395f51905f5260048281019190915233602483015235906020816044817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9081156101fb575f91610c40575b5015610c2d576020815f516020611f3d5f395f51905f5292600255604051908152a1005b630ea7d7ed60e21b5f523360045260245ffd5b610c59915060203d6020116102ef576102e18183611850565b82610c09565b3461016d57604036600319011261016d57600435600381101561016d57602435906001600160a01b038216820361016d5760405160209281840192610ca3816117fc565b60f81b835260601b6001600160601b031916602182015260158152610cc9603582611850565b519020604051908152f35b3461016d575f36600319011261016d5760206040515f516020611f1d5f395f51905f528152f35b3461016d575f36600319011261016d57602060ff5f54166040519015158152f35b3461016d575f36600319011261016d576020610d366119ba565b6040516001600160a01b039091168152f35b3461016d575f36600319011261016d57604051632474521560e21b81525f516020611efd5f395f51905f5260048201523360248201526020816044817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9081156101fb575f91610e10575b5015610c2d575f5460ff811615610e015760ff19165f557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6020604051338152a1005b638dfc202b60e01b5f5260045ffd5b610e29915060203d6020116102ef576102e18183611850565b81610dbe565b604036600319011261016d576004356024356001600160401b03811161016d5760a0600319823603011261016d57610e65611ac0565b610e6d611ada565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610ecc6020610ea530611a26565b604051632474521560e21b8152600481019190915233602482015291829081906044820190565b0381855afa9081156101fb575f9161131d575b501590816112b4575b506112a15781156106e4576001600160a01b03610f036119ba565b6040516338d52e0f60e01b8152911691907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690602081600481855afa9081156101fb575f91611282575b50604051632d182be560e21b81528560048201523060248201523060448201526020816064815f875af180156101fb57611251575b506020602492604051938480926370a0823160e01b82523060048301525afa9182156101fb575f9261121d575b506040516370a0823160e01b81523060048201526001600160a01b03919091169390602081602481885afa80156101fb5786915f916111e8575b50106111d95761ffff6020915f516020611f3d5f395f51905f528361101989600254611880565b80600255604051908152a161102f878288611c16565b7f000000000000000000000000000000000000000000000000000000000000000061105981611b5f565b946040519085820152848152611070604082611850565b61114a6040519161108083611835565b30835285878401941698898552604084019860018060a01b03168952606084019a8b52608084019b8c5260a0840191825261112560c08501923384526040519a8b998a988998633446ec9d60e01b8a52604060048b015260018060a01b0390511660448a01525116606488015260018060a01b03905116608487015260018060a01b038d511660a48701528d5160c48701525160e060e48701526101248601906118b9565b91516001600160a01b03166101048501528382036003190160248501526004016118dd565b039134905af180156101fb576111a4575b7fbb0925bf1b1f2a0663055f67a397fd80bcf9a65eff49431def568608c16111b76060848487519160018060a01b0390511660405192835260208301526040820152a160018055005b91906020833d6020116111d1575b816111bf60209383611850565b8101031261016d57909150606061115b565b3d91506111b2565b6327fcd9d160e01b5f5260045ffd5b9150506020813d602011611215575b8161120460209383611850565b8101031261016d5785905187610ff2565b3d91506111f7565b9091506020813d602011611249575b8161123960209383611850565b8101031261016d57519085610fb8565b3d915061122c565b6020813d60201161127a575b8161126a60209383611850565b8101031261016d57506020610f8b565b3d915061125d565b61129b915060203d60201161072a5761071c8183611850565b85610f56565b6329068e8160e21b5f523360045260245ffd5b604051632474521560e21b81525f516020611f1d5f395f51905f5260048201523360248201529150602090829060449082905afa9081156101fb575f916112fe575b501583610ee8565b611317915060203d6020116102ef576102e18183611850565b836112f6565b611336915060203d6020116102ef576102e18183611850565b84610edf565b3461016d575f36600319011261016d5760206040517f55435dd261a4b9b3364963f7738a7a662ad9c84396d64be3365284bb7f0a50418152f35b3461016d57602036600319011261016d576004356001600160a01b0361139a6119ba565b16330361081e576020815f516020611f3d5f395f51905f5292600255604051908152a1005b602036600319011261016d576004356001600160401b03811161016d5760a0600319823603011261016d576113f2611ac0565b6113fa611ada565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166114326020610ea530611a26565b0381855afa9081156101fb575f916116a3575b5015908161163a575b506112a1576001600160a01b036114636119ba565b6040516370a0823160e01b8152306004820152929116906020836024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9283156101fb575f93611605575b5060209161ffff917f0000000000000000000000000000000000000000000000000000000000000000906115bf6114f083611b5f565b966003546040519188830152604082015260408152611510606082611850565b6040519261151d8461181a565b3084528688850195168552604084019860018060a01b031689526060840191825261159b60808501923384526040519a8b998a9889986318ba405b60e11b8a52604060048b015260018060a01b0390511660448a01525116606488015260018060a01b0390511660848701525160a060a487015260e48601906118b9565b91516001600160a01b031660c48501528382036003190160248501526004016118dd565b039134905af180156101fb576115d6575b60018055005b6115f79060203d6020116115fe575b6115ef8183611850565b810190611871565b50806115d0565b503d6115e5565b9092506020813d602011611632575b8161162160209383611850565b8101031261016d57519160206114ba565b3d9150611614565b604051632474521560e21b81525f516020611f1d5f395f51905f5260048201523360248201529150602090829060449082905afa9081156101fb575f91611684575b50158261144e565b61169d915060203d6020116102ef576102e18183611850565b8261167c565b6116bc915060203d6020116102ef576102e18183611850565b83611445565b3461016d57602036600319011261016d5760043563ffffffff60e01b811680910361016d576020906323c4b87d60e11b811490811561171e575b811561170d57506040519015158152f35b6301ffc9a760e01b149050826102be565b628baa8360e61b811491506116fc565b3461016d575f36600319011261016d576278744560e21b81526020816004817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9081156101fb575f9161179e575b60206117968360025490611880565b604051908152f35b90506020813d6020116117ca575b816117b960209383611850565b8101031261016d5751611796611787565b3d91506117ac565b600435906001600160a01b038216820361016d57565b35906001600160a01b038216820361016d57565b6003111561180657565b634e487b7160e01b5f52602160045260245ffd5b60a081019081106001600160401b038211176107fb57604052565b60e081019081106001600160401b038211176107fb57604052565b90601f801991011681019081106001600160401b038211176107fb57604052565b9081602091031261016d575190565b9190820180921161188d57565b634e487b7160e01b5f52601160045260245ffd5b9081602091031261016d5751801515810361016d5790565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b6001600160a01b036118ee826117e8565b16825260208101356001600160401b03811680910361016d576020830152604081013563ffffffff811680910361016d57604083015260608101356001600160801b0381169081900361016d5760608301526080810135601e198236030181121561016d570190602082359201916001600160401b03811161016d57803603831361016d578060c09360a060808501528160a0850152848401375f828201840152601f01601f1916010190565b9081602091031261016d57516001600160a01b038116810361016d5790565b6040516320d7ada960e11b81526020816004817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9081156101fb575f91611a0a575090565b611a23915060203d60201161072a5761071c8183611850565b90565b6040516020810191600160f81b835260601b6001600160601b031916602182015260158152611a56603582611850565b51902090565b81601f8201121561016d578035906001600160401b0382116107fb5760405192611a90601f8401601f191660200185611850565b8284526020838301011161016d57815f926020809301838601378301015290565b359061ffff8216820361016d57565b60ff5f5416611acb57565b63d93c066560e01b5f5260045ffd5b600260015414611aeb576002600155565b633ee5aeb560e01b5f5260045ffd5b9081602091031261016d575161ffff8116810361016d5790565b61ffff9182168152911660208201526001600160a01b0390911660408201527ffaa2c59f2367c44b2132ca55934afd6395bc2278b808e0e3d1fbfdbf74a38b28606082015260800190565b60405163365d6dfd60e11b81527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031691602082600481865afa9283156101fb57611bd4936020935f91611be9575b5060405180958194829363e06df2d960e01b8452309160048501611b14565b03915afa9081156101fb575f91611a0a575090565b611c099150843d8611611c0f575b611c018183611850565b810190611afa565b5f611bb5565b503d611bf7565b60205f604051938285019063095ea7b360e01b825260018060a01b031695866024870152604486015260448552611c4e606486611850565b84519082855af15f513d82611ca9575b505015611c6a57505050565b611ca2611ca7936040519063095ea7b360e01b602083015260248201525f604482015260448152611c9c606482611850565b82611cce565b611cce565b565b909150611cc657506001600160a01b0381163b15155b5f80611c5e565b600114611cbf565b905f602091828151910182855af1156101fb575f513d611d1d57506001600160a01b0381163b155b611cfd5750565b635274afe760e01b5f9081526001600160a01b0391909116600452602490fd5b60011415611cf6565b60405163365d6dfd60e11b81527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169190602081600481865afa9182156101fb57611d9b926020925f91611edf575b5060405163e06df2d960e01b81529384928392309160048501611b14565b0381855afa5f9181611ebe575b50611db35750505f90565b6001600160a01b03169081611dc85750505f90565b60405163365d6dfd60e11b815290602082600481845afa80156101fb5761ffff936020935f92611e9e575b5060a49192604051958694859363508238cf60e01b85526004850152306024850152817f00000000000000000000000000000000000000000000000000000000000000001660448501521660648301527ffaa2c59f2367c44b2132ca55934afd6395bc2278b808e0e3d1fbfdbf74a38b2860848301525afa5f9181611e7d575b50611a2357505f90565b611e9791925060203d6020116102ef576102e18183611850565b905f611e73565b60a49250611eb890853d8711611c0f57611c018183611850565b91611df3565b611ed891925060203d60201161072a5761071c8183611850565b905f611da8565b611ef69150833d8511611c0f57611c018183611850565b5f611d7d56fe7935bd0ae54bc31f548c14dba4d37c5c64b3f8ca900cb468fb8abd54d5894f550d186688925976bbe6755ae984501c8e3e2b103a7af59fd803ab9c6d891ae7e097bc620824912b0d421762db1ac154ca86e5887c04b19fdea39f57fd39b6239da26469706673582212203f357a8ba9791a1577c4bcde93797d42cf633b813a47f2289242882eb2f1565c64736f6c634300081c0033000000000000000000000000603821f86dedc794a3225d62afe1f175fe4ae86100000000000000000000000011fdaa50347865f1e8e506529309364437eff657000000000000000000000000fb7dad21b5bdd30d1317f20c63731dfbf834c01000000000000000000000000098c49e13bf99d7cad8069faa2a370933ec9ecf17000000000000000000000000000000000000000000000000000000000000000a