From b6d52f980c55ae9cb0db26ff779fc76712548276 Mon Sep 17 00:00:00 2001 From: Ryan <80392855+RayXpub@users.noreply.github.com> Date: Tue, 10 Sep 2024 09:37:00 +0400 Subject: [PATCH 01/19] chore: make onRamp mutable in OffRamp --- contracts/src/v0.8/ccip/offRamp/OffRamp.sol | 20 ++++----- .../src/v0.8/ccip/test/offRamp/OffRamp.t.sol | 43 +++++++++++-------- 2 files changed, 36 insertions(+), 27 deletions(-) diff --git a/contracts/src/v0.8/ccip/offRamp/OffRamp.sol b/contracts/src/v0.8/ccip/offRamp/OffRamp.sol index 6897ba5751..a236feeb2c 100644 --- a/contracts/src/v0.8/ccip/offRamp/OffRamp.sol +++ b/contracts/src/v0.8/ccip/offRamp/OffRamp.sol @@ -132,6 +132,8 @@ contract OffRamp is ITypeAndVersion, MultiOCR3Base { // STATIC CONFIG string public constant override typeAndVersion = "OffRamp 1.6.0-dev"; + /// @dev Hash of encoded address(0) used for empty address checks + bytes32 internal constant EMPTY_ENCODED_ADDRESS_HASH = keccak256(abi.encode(address(0))); /// @dev ChainSelector of this chain uint64 internal immutable i_chainSelector; /// @dev The RMN verification contract @@ -738,22 +740,20 @@ contract OffRamp is ITypeAndVersion, MultiOCR3Base { } SourceChainConfig storage currentConfig = s_sourceChainConfigs[sourceChainSelector]; - bytes memory currentOnRamp = currentConfig.onRamp; bytes memory newOnRamp = sourceConfigUpdate.onRamp; - // OnRamp can never be zero - if it is, then the source chain has been added for the first time - if (currentOnRamp.length == 0) { - if (newOnRamp.length == 0) { - revert ZeroAddressNotAllowed(); - } - - currentConfig.onRamp = newOnRamp; + if (currentConfig.onRamp.length == 0) { currentConfig.minSeqNr = 1; emit SourceChainSelectorAdded(sourceChainSelector); - } else if (keccak256(currentOnRamp) != keccak256(newOnRamp)) { - revert InvalidStaticConfig(sourceChainSelector); } + // OnRamp can never be zero - if it is, then the source chain has been added for the first time + if (newOnRamp.length == 0 || keccak256(newOnRamp) == EMPTY_ENCODED_ADDRESS_HASH) { + revert ZeroAddressNotAllowed(); + } + + currentConfig.onRamp = newOnRamp; + currentConfig.isEnabled = sourceConfigUpdate.isEnabled; currentConfig.router = sourceConfigUpdate.router; emit SourceChainConfigSet(sourceChainSelector, currentConfig); diff --git a/contracts/src/v0.8/ccip/test/offRamp/OffRamp.t.sol b/contracts/src/v0.8/ccip/test/offRamp/OffRamp.t.sol index cce4a19105..8d396fbed5 100644 --- a/contracts/src/v0.8/ccip/test/offRamp/OffRamp.t.sol +++ b/contracts/src/v0.8/ccip/test/offRamp/OffRamp.t.sol @@ -3047,6 +3047,28 @@ contract OffRamp_applySourceChainConfigUpdates is OffRampSetup { ); } + function test_ReplaceExistingChainOnRamp_Success() public { + OffRamp.SourceChainConfigArgs[] memory sourceChainConfigs = new OffRamp.SourceChainConfigArgs[](1); + sourceChainConfigs[0] = OffRamp.SourceChainConfigArgs({ + router: s_destRouter, + sourceChainSelector: SOURCE_CHAIN_SELECTOR_1, + onRamp: ON_RAMP_ADDRESS_1, + isEnabled: true + }); + + s_offRamp.applySourceChainConfigUpdates(sourceChainConfigs); + + sourceChainConfigs[0].onRamp = ON_RAMP_ADDRESS_2; + + + vm.expectEmit(); + emit OffRamp.SourceChainConfigSet( + SOURCE_CHAIN_SELECTOR_1, + OffRamp.SourceChainConfig({router: s_destRouter, isEnabled: true, minSeqNr: 1, onRamp: ON_RAMP_ADDRESS_2}) + ); + s_offRamp.applySourceChainConfigUpdates(sourceChainConfigs); + } + // Reverts function test_ZeroOnRampAddress_Revert() public { @@ -3060,6 +3082,10 @@ contract OffRamp_applySourceChainConfigUpdates is OffRampSetup { vm.expectRevert(OffRamp.ZeroAddressNotAllowed.selector); s_offRamp.applySourceChainConfigUpdates(sourceChainConfigs); + + sourceChainConfigs[0].onRamp = abi.encode(address(0)); + vm.expectRevert(OffRamp.ZeroAddressNotAllowed.selector); + s_offRamp.applySourceChainConfigUpdates(sourceChainConfigs); } function test_RouterAddress_Revert() public { @@ -3087,23 +3113,6 @@ contract OffRamp_applySourceChainConfigUpdates is OffRampSetup { vm.expectRevert(OffRamp.ZeroChainSelectorNotAllowed.selector); s_offRamp.applySourceChainConfigUpdates(sourceChainConfigs); } - - function test_ReplaceExistingChainOnRamp_Revert() public { - OffRamp.SourceChainConfigArgs[] memory sourceChainConfigs = new OffRamp.SourceChainConfigArgs[](1); - sourceChainConfigs[0] = OffRamp.SourceChainConfigArgs({ - router: s_destRouter, - sourceChainSelector: SOURCE_CHAIN_SELECTOR_1, - onRamp: ON_RAMP_ADDRESS_1, - isEnabled: true - }); - - s_offRamp.applySourceChainConfigUpdates(sourceChainConfigs); - - sourceChainConfigs[0].onRamp = ON_RAMP_ADDRESS_2; - - vm.expectRevert(abi.encodeWithSelector(OffRamp.InvalidStaticConfig.selector, SOURCE_CHAIN_SELECTOR_1)); - s_offRamp.applySourceChainConfigUpdates(sourceChainConfigs); - } } contract OffRamp_commit is OffRampSetup { From 2a6fb273bd2b742efb1aca1e343409ffeff6503b Mon Sep 17 00:00:00 2001 From: Ryan <80392855+RayXpub@users.noreply.github.com> Date: Tue, 10 Sep 2024 09:39:04 +0400 Subject: [PATCH 02/19] chore: update gas snapshot and geth wrappers --- contracts/gas-snapshots/ccip.gas-snapshot | 40 +++++++++---------- .../ccip/generated/offramp/offramp.go | 2 +- ...rapper-dependency-versions-do-not-edit.txt | 2 +- 3 files changed, 22 insertions(+), 22 deletions(-) diff --git a/contracts/gas-snapshots/ccip.gas-snapshot b/contracts/gas-snapshots/ccip.gas-snapshot index 8d215c59b5..bf0b6d1adf 100644 --- a/contracts/gas-snapshots/ccip.gas-snapshot +++ b/contracts/gas-snapshots/ccip.gas-snapshot @@ -608,15 +608,15 @@ OCR2Base_transmit:test_Transmit2SignersSuccess_gas() (gas: 51689) OCR2Base_transmit:test_UnAuthorizedTransmitter_Revert() (gas: 23499) OCR2Base_transmit:test_UnauthorizedSigner_Revert() (gas: 39695) OCR2Base_transmit:test_WrongNumberOfSignatures_Revert() (gas: 20572) -OffRamp_afterOC3ConfigSet:test_afterOCR3ConfigSet_SignatureVerificationDisabled_Revert() (gas: 5849491) -OffRamp_applySourceChainConfigUpdates:test_AddMultipleChains_Success() (gas: 468052) -OffRamp_applySourceChainConfigUpdates:test_AddNewChain_Success() (gas: 99216) +OffRamp_afterOC3ConfigSet:test_afterOCR3ConfigSet_SignatureVerificationDisabled_Revert() (gas: 5814548) +OffRamp_applySourceChainConfigUpdates:test_AddMultipleChains_Success() (gas: 467570) +OffRamp_applySourceChainConfigUpdates:test_AddNewChain_Success() (gas: 99037) OffRamp_applySourceChainConfigUpdates:test_ApplyZeroUpdates_Success() (gas: 12392) -OffRamp_applySourceChainConfigUpdates:test_ReplaceExistingChainOnRamp_Revert() (gas: 93196) -OffRamp_applySourceChainConfigUpdates:test_ReplaceExistingChain_Success() (gas: 109927) -OffRamp_applySourceChainConfigUpdates:test_RouterAddress_Revert() (gas: 13266) -OffRamp_applySourceChainConfigUpdates:test_ZeroOnRampAddress_Revert() (gas: 18000) -OffRamp_applySourceChainConfigUpdates:test_ZeroSourceChainSelector_Revert() (gas: 15349) +OffRamp_applySourceChainConfigUpdates:test_ReplaceExistingChainOnRamp_Success() (gas: 100810) +OffRamp_applySourceChainConfigUpdates:test_ReplaceExistingChain_Success() (gas: 110185) +OffRamp_applySourceChainConfigUpdates:test_RouterAddress_Revert() (gas: 13278) +OffRamp_applySourceChainConfigUpdates:test_ZeroOnRampAddress_Revert() (gas: 72310) +OffRamp_applySourceChainConfigUpdates:test_ZeroSourceChainSelector_Revert() (gas: 15344) OffRamp_batchExecute:test_MultipleReportsDifferentChainsSkipCursedChain_Success() (gas: 176901) OffRamp_batchExecute:test_MultipleReportsDifferentChains_Success() (gas: 332739) OffRamp_batchExecute:test_MultipleReportsSameChain_Success() (gas: 276107) @@ -630,8 +630,8 @@ OffRamp_commit:test_FailedRMNVerification_Reverts() (gas: 64462) OffRamp_commit:test_InvalidIntervalMinLargerThanMax_Revert() (gas: 67674) OffRamp_commit:test_InvalidInterval_Revert() (gas: 59928) OffRamp_commit:test_InvalidRootRevert() (gas: 58963) -OffRamp_commit:test_NoConfigWithOtherConfigPresent_Revert() (gas: 6454659) -OffRamp_commit:test_NoConfig_Revert() (gas: 6038472) +OffRamp_commit:test_NoConfigWithOtherConfigPresent_Revert() (gas: 6419179) +OffRamp_commit:test_NoConfig_Revert() (gas: 6002992) OffRamp_commit:test_OnlyGasPriceUpdates_Success() (gas: 113541) OffRamp_commit:test_OnlyPriceUpdateStaleReport_Revert() (gas: 121576) OffRamp_commit:test_OnlyTokenPriceUpdates_Success() (gas: 113562) @@ -645,23 +645,23 @@ OffRamp_commit:test_UnauthorizedTransmitter_Revert() (gas: 122475) OffRamp_commit:test_Unhealthy_Revert() (gas: 57991) OffRamp_commit:test_ValidPriceUpdateThenStaleReportWithRoot_Success() (gas: 212415) OffRamp_commit:test_ZeroEpochAndRound_Revert() (gas: 51324) -OffRamp_constructor:test_Constructor_Success() (gas: 6038780) -OffRamp_constructor:test_SourceChainSelector_Revert() (gas: 136917) -OffRamp_constructor:test_ZeroChainSelector_Revert() (gas: 103646) -OffRamp_constructor:test_ZeroNonceManager_Revert() (gas: 101523) -OffRamp_constructor:test_ZeroOnRampAddress_Revert() (gas: 139565) -OffRamp_constructor:test_ZeroRMNRemote_Revert() (gas: 101452) -OffRamp_constructor:test_ZeroTokenAdminRegistry_Revert() (gas: 101467) +OffRamp_constructor:test_Constructor_Success() (gas: 6003471) +OffRamp_constructor:test_SourceChainSelector_Revert() (gas: 136819) +OffRamp_constructor:test_ZeroChainSelector_Revert() (gas: 103548) +OffRamp_constructor:test_ZeroNonceManager_Revert() (gas: 101425) +OffRamp_constructor:test_ZeroOnRampAddress_Revert() (gas: 162340) +OffRamp_constructor:test_ZeroRMNRemote_Revert() (gas: 101354) +OffRamp_constructor:test_ZeroTokenAdminRegistry_Revert() (gas: 101369) OffRamp_execute:test_IncorrectArrayType_Revert() (gas: 17281) OffRamp_execute:test_LargeBatch_Success() (gas: 3378308) OffRamp_execute:test_MultipleReportsWithPartialValidationFailures_Success() (gas: 372457) OffRamp_execute:test_MultipleReports_Success() (gas: 298416) -OffRamp_execute:test_NoConfigWithOtherConfigPresent_Revert() (gas: 6861122) -OffRamp_execute:test_NoConfig_Revert() (gas: 6085920) +OffRamp_execute:test_NoConfigWithOtherConfigPresent_Revert() (gas: 6825642) +OffRamp_execute:test_NoConfig_Revert() (gas: 6050440) OffRamp_execute:test_NonArray_Revert() (gas: 27721) OffRamp_execute:test_SingleReport_Success() (gas: 175215) OffRamp_execute:test_UnauthorizedTransmitter_Revert() (gas: 147455) -OffRamp_execute:test_WrongConfigWithSigners_Revert() (gas: 6863865) +OffRamp_execute:test_WrongConfigWithSigners_Revert() (gas: 6828385) OffRamp_execute:test_ZeroReports_Revert() (gas: 17162) OffRamp_executeSingleMessage:test_MessageSender_Revert() (gas: 18212) OffRamp_executeSingleMessage:test_NonContractWithTokens_Success() (gas: 249178) diff --git a/core/gethwrappers/ccip/generated/offramp/offramp.go b/core/gethwrappers/ccip/generated/offramp/offramp.go index 60c42366cb..c79a8d7b8a 100644 --- a/core/gethwrappers/ccip/generated/offramp/offramp.go +++ b/core/gethwrappers/ccip/generated/offramp/offramp.go @@ -163,7 +163,7 @@ type OffRampStaticConfig struct { var OffRampMetaData = &bind.MetaData{ ABI: "[{\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"chainSelector\",\"type\":\"uint64\"},{\"internalType\":\"contractIRMNV2\",\"name\":\"rmn\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tokenAdminRegistry\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"nonceManager\",\"type\":\"address\"}],\"internalType\":\"structOffRamp.StaticConfig\",\"name\":\"staticConfig\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"feeQuoter\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"permissionLessExecutionThresholdSeconds\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"maxTokenTransferGas\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"maxPoolReleaseOrMintGas\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"messageValidator\",\"type\":\"address\"}],\"internalType\":\"structOffRamp.DynamicConfig\",\"name\":\"dynamicConfig\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"contractIRouter\",\"name\":\"router\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"bool\",\"name\":\"isEnabled\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"onRamp\",\"type\":\"bytes\"}],\"internalType\":\"structOffRamp.SourceChainConfigArgs[]\",\"name\":\"sourceChainConfigs\",\"type\":\"tuple[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"CanOnlySelfCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"expected\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"actual\",\"type\":\"bytes32\"}],\"name\":\"ConfigDigestMismatch\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"}],\"name\":\"CursedByRMN\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"EmptyReport\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"messageId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"err\",\"type\":\"bytes\"}],\"name\":\"ExecutionError\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"expected\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"actual\",\"type\":\"uint256\"}],\"name\":\"ForkedChain\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"enumMultiOCR3Base.InvalidConfigErrorType\",\"name\":\"errorType\",\"type\":\"uint8\"}],\"name\":\"InvalidConfig\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"expected\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"got\",\"type\":\"uint256\"}],\"name\":\"InvalidDataLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"encodedAddress\",\"type\":\"bytes\"}],\"name\":\"InvalidEVMAddress\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"min\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"max\",\"type\":\"uint64\"}],\"name\":\"InvalidInterval\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"newLimit\",\"type\":\"uint256\"}],\"name\":\"InvalidManualExecutionGasLimit\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"messageDestChainSelector\",\"type\":\"uint64\"}],\"name\":\"InvalidMessageDestChainSelector\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"sequenceNumber\",\"type\":\"uint64\"},{\"internalType\":\"enumInternal.MessageExecutionState\",\"name\":\"newState\",\"type\":\"uint8\"}],\"name\":\"InvalidNewState\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidProof\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidRoot\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"}],\"name\":\"InvalidStaticConfig\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LeavesCannotBeEmpty\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ManualExecutionGasLimitMismatch\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"}],\"name\":\"ManualExecutionNotYetEnabled\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"errorReason\",\"type\":\"bytes\"}],\"name\":\"MessageValidationError\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NonUniqueSignatures\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"notPool\",\"type\":\"address\"}],\"name\":\"NotACompatiblePool\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OracleCannotBeZeroAddress\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"err\",\"type\":\"bytes\"}],\"name\":\"ReceiverError\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amountReleased\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balancePre\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balancePost\",\"type\":\"uint256\"}],\"name\":\"ReleaseOrMintBalanceMismatch\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"merkleRoot\",\"type\":\"bytes32\"}],\"name\":\"RootAlreadyCommitted\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"}],\"name\":\"RootNotCommitted\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SignatureVerificationDisabled\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SignaturesOutOfRegistration\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"}],\"name\":\"SourceChainNotEnabled\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"reportSourceChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"messageSourceChainSelector\",\"type\":\"uint64\"}],\"name\":\"SourceChainSelectorMismatch\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"StaleCommitReport\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"ocrPluginType\",\"type\":\"uint8\"}],\"name\":\"StaticConfigCannotBeChanged\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"sequenceNumber\",\"type\":\"uint64\"}],\"name\":\"TokenDataMismatch\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"err\",\"type\":\"bytes\"}],\"name\":\"TokenHandlingError\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UnauthorizedSigner\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UnauthorizedTransmitter\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UnexpectedTokenData\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"expected\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"actual\",\"type\":\"uint256\"}],\"name\":\"WrongMessageLength\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"WrongNumberOfSignatures\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZeroAddressNotAllowed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZeroChainSelectorNotAllowed\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"sequenceNumber\",\"type\":\"uint64\"}],\"name\":\"AlreadyAttempted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"components\":[{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"sourceToken\",\"type\":\"address\"},{\"internalType\":\"uint224\",\"name\":\"usdPerToken\",\"type\":\"uint224\"}],\"internalType\":\"structInternal.TokenPriceUpdate[]\",\"name\":\"tokenPriceUpdates\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"uint64\",\"name\":\"destChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"uint224\",\"name\":\"usdPerUnitGas\",\"type\":\"uint224\"}],\"internalType\":\"structInternal.GasPriceUpdate[]\",\"name\":\"gasPriceUpdates\",\"type\":\"tuple[]\"}],\"internalType\":\"structInternal.PriceUpdates\",\"name\":\"priceUpdates\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"onRampAddress\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"minSeqNr\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"maxSeqNr\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"merkleRoot\",\"type\":\"bytes32\"}],\"internalType\":\"structInternal.MerkleRoot[]\",\"name\":\"merkleRoots\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"internalType\":\"structIRMNV2.Signature[]\",\"name\":\"rmnSignatures\",\"type\":\"tuple[]\"}],\"indexed\":false,\"internalType\":\"structOffRamp.CommitReport\",\"name\":\"report\",\"type\":\"tuple\"}],\"name\":\"CommitReportAccepted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"ocrPluginType\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"configDigest\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"signers\",\"type\":\"address[]\"},{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"transmitters\",\"type\":\"address[]\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"F\",\"type\":\"uint8\"}],\"name\":\"ConfigSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"feeQuoter\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"permissionLessExecutionThresholdSeconds\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"maxTokenTransferGas\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"maxPoolReleaseOrMintGas\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"messageValidator\",\"type\":\"address\"}],\"indexed\":false,\"internalType\":\"structOffRamp.DynamicConfig\",\"name\":\"dynamicConfig\",\"type\":\"tuple\"}],\"name\":\"DynamicConfigSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"sequenceNumber\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"messageId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"messageHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"enumInternal.MessageExecutionState\",\"name\":\"state\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"returnData\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"gasUsed\",\"type\":\"uint256\"}],\"name\":\"ExecutionStateChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"OwnershipTransferRequested\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"root\",\"type\":\"bytes32\"}],\"name\":\"RootRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"sequenceNumber\",\"type\":\"uint64\"}],\"name\":\"SkippedAlreadyExecutedMessage\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"}],\"name\":\"SkippedReportExecution\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"components\":[{\"internalType\":\"contractIRouter\",\"name\":\"router\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"isEnabled\",\"type\":\"bool\"},{\"internalType\":\"uint64\",\"name\":\"minSeqNr\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"onRamp\",\"type\":\"bytes\"}],\"indexed\":false,\"internalType\":\"structOffRamp.SourceChainConfig\",\"name\":\"sourceConfig\",\"type\":\"tuple\"}],\"name\":\"SourceChainConfigSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"}],\"name\":\"SourceChainSelectorAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"chainSelector\",\"type\":\"uint64\"},{\"internalType\":\"contractIRMNV2\",\"name\":\"rmn\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tokenAdminRegistry\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"nonceManager\",\"type\":\"address\"}],\"indexed\":false,\"internalType\":\"structOffRamp.StaticConfig\",\"name\":\"staticConfig\",\"type\":\"tuple\"}],\"name\":\"StaticConfigSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint8\",\"name\":\"ocrPluginType\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"configDigest\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"sequenceNumber\",\"type\":\"uint64\"}],\"name\":\"Transmitted\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"acceptOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"contractIRouter\",\"name\":\"router\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"bool\",\"name\":\"isEnabled\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"onRamp\",\"type\":\"bytes\"}],\"internalType\":\"structOffRamp.SourceChainConfigArgs[]\",\"name\":\"sourceChainConfigUpdates\",\"type\":\"tuple[]\"}],\"name\":\"applySourceChainConfigUpdates\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"messageId\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"sender\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"structClient.EVMTokenAmount[]\",\"name\":\"destTokenAmounts\",\"type\":\"tuple[]\"}],\"internalType\":\"structClient.Any2EVMMessage\",\"name\":\"\",\"type\":\"tuple\"}],\"name\":\"ccipReceive\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32[3]\",\"name\":\"reportContext\",\"type\":\"bytes32[3]\"},{\"internalType\":\"bytes\",\"name\":\"report\",\"type\":\"bytes\"},{\"internalType\":\"bytes32[]\",\"name\":\"rs\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes32[]\",\"name\":\"ss\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes32\",\"name\":\"rawVs\",\"type\":\"bytes32\"}],\"name\":\"commit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32[3]\",\"name\":\"reportContext\",\"type\":\"bytes32[3]\"},{\"internalType\":\"bytes\",\"name\":\"report\",\"type\":\"bytes\"}],\"name\":\"execute\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"messageId\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"destChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"sequenceNumber\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"internalType\":\"structInternal.RampMessageHeader\",\"name\":\"header\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"sender\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"gasLimit\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"bytes\",\"name\":\"sourcePoolAddress\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"destTokenAddress\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"extraData\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"destExecData\",\"type\":\"bytes\"}],\"internalType\":\"structInternal.RampTokenAmount[]\",\"name\":\"tokenAmounts\",\"type\":\"tuple[]\"}],\"internalType\":\"structInternal.Any2EVMRampMessage\",\"name\":\"message\",\"type\":\"tuple\"},{\"internalType\":\"bytes[]\",\"name\":\"offchainTokenData\",\"type\":\"bytes[]\"}],\"name\":\"executeSingleMessage\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getDynamicConfig\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"feeQuoter\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"permissionLessExecutionThresholdSeconds\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"maxTokenTransferGas\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"maxPoolReleaseOrMintGas\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"messageValidator\",\"type\":\"address\"}],\"internalType\":\"structOffRamp.DynamicConfig\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"sequenceNumber\",\"type\":\"uint64\"}],\"name\":\"getExecutionState\",\"outputs\":[{\"internalType\":\"enumInternal.MessageExecutionState\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getLatestPriceSequenceNumber\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"root\",\"type\":\"bytes32\"}],\"name\":\"getMerkleRoot\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"}],\"name\":\"getSourceChainConfig\",\"outputs\":[{\"components\":[{\"internalType\":\"contractIRouter\",\"name\":\"router\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"isEnabled\",\"type\":\"bool\"},{\"internalType\":\"uint64\",\"name\":\"minSeqNr\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"onRamp\",\"type\":\"bytes\"}],\"internalType\":\"structOffRamp.SourceChainConfig\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getStaticConfig\",\"outputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"chainSelector\",\"type\":\"uint64\"},{\"internalType\":\"contractIRMNV2\",\"name\":\"rmn\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tokenAdminRegistry\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"nonceManager\",\"type\":\"address\"}],\"internalType\":\"structOffRamp.StaticConfig\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"ocrPluginType\",\"type\":\"uint8\"}],\"name\":\"latestConfigDetails\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"configDigest\",\"type\":\"bytes32\"},{\"internalType\":\"uint8\",\"name\":\"F\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"n\",\"type\":\"uint8\"},{\"internalType\":\"bool\",\"name\":\"isSignatureVerificationEnabled\",\"type\":\"bool\"}],\"internalType\":\"structMultiOCR3Base.ConfigInfo\",\"name\":\"configInfo\",\"type\":\"tuple\"},{\"internalType\":\"address[]\",\"name\":\"signers\",\"type\":\"address[]\"},{\"internalType\":\"address[]\",\"name\":\"transmitters\",\"type\":\"address[]\"}],\"internalType\":\"structMultiOCR3Base.OCRConfig\",\"name\":\"ocrConfig\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"components\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"messageId\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"destChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"sequenceNumber\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"internalType\":\"structInternal.RampMessageHeader\",\"name\":\"header\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"sender\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"gasLimit\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"bytes\",\"name\":\"sourcePoolAddress\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"destTokenAddress\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"extraData\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"destExecData\",\"type\":\"bytes\"}],\"internalType\":\"structInternal.RampTokenAmount[]\",\"name\":\"tokenAmounts\",\"type\":\"tuple[]\"}],\"internalType\":\"structInternal.Any2EVMRampMessage[]\",\"name\":\"messages\",\"type\":\"tuple[]\"},{\"internalType\":\"bytes[][]\",\"name\":\"offchainTokenData\",\"type\":\"bytes[][]\"},{\"internalType\":\"bytes32[]\",\"name\":\"proofs\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"proofFlagBits\",\"type\":\"uint256\"}],\"internalType\":\"structInternal.ExecutionReportSingleChain[]\",\"name\":\"reports\",\"type\":\"tuple[]\"},{\"internalType\":\"uint256[][]\",\"name\":\"gasLimitOverrides\",\"type\":\"uint256[][]\"}],\"name\":\"manuallyExecute\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"feeQuoter\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"permissionLessExecutionThresholdSeconds\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"maxTokenTransferGas\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"maxPoolReleaseOrMintGas\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"messageValidator\",\"type\":\"address\"}],\"internalType\":\"structOffRamp.DynamicConfig\",\"name\":\"dynamicConfig\",\"type\":\"tuple\"}],\"name\":\"setDynamicConfig\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"configDigest\",\"type\":\"bytes32\"},{\"internalType\":\"uint8\",\"name\":\"ocrPluginType\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"F\",\"type\":\"uint8\"},{\"internalType\":\"bool\",\"name\":\"isSignatureVerificationEnabled\",\"type\":\"bool\"},{\"internalType\":\"address[]\",\"name\":\"signers\",\"type\":\"address[]\"},{\"internalType\":\"address[]\",\"name\":\"transmitters\",\"type\":\"address[]\"}],\"internalType\":\"structMultiOCR3Base.OCRConfigArgs[]\",\"name\":\"ocrConfigArgs\",\"type\":\"tuple[]\"}],\"name\":\"setOCR3Configs\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"typeAndVersion\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"}]", - Bin: "0x6101206040523480156200001257600080fd5b5060405162006cca38038062006cca8339810160408190526200003591620008c7565b33806000816200008c5760405162461bcd60e51b815260206004820152601860248201527f43616e6e6f7420736574206f776e657220746f207a65726f000000000000000060448201526064015b60405180910390fd5b600080546001600160a01b0319166001600160a01b0384811691909117909155811615620000bf57620000bf81620001fa565b5050466080525060208301516001600160a01b03161580620000ec575060408301516001600160a01b0316155b8062000103575060608301516001600160a01b0316155b1562000122576040516342bcdf7f60e11b815260040160405180910390fd5b82516001600160401b03166000036200014e5760405163c656089560e01b815260040160405180910390fd5b82516001600160401b0390811660a052602080850180516001600160a01b0390811660c05260408088018051831660e0526060808a01805185166101005283518b519098168852945184169587019590955251821690850152905116908201527f683eb52ee924eb817377cfa8f41f238f4bb7a877da5267869dfffbad85f564d89060800160405180910390a1620001e682620002a5565b620001f181620003c1565b50505062000c67565b336001600160a01b03821603620002545760405162461bcd60e51b815260206004820152601760248201527f43616e6e6f74207472616e7366657220746f2073656c66000000000000000000604482015260640162000083565b600180546001600160a01b0319166001600160a01b0383811691821790925560008054604051929316917fed8889f560326eb138920d842192f0eb3dd22b4f139c87a2c57538e05bae12789190a350565b80516001600160a01b0316620002ce576040516342bcdf7f60e11b815260040160405180910390fd5b80516004805460208085018051604080880180516060808b0180516001600160a01b039b8c166001600160c01b0319909a168a17600160a01b63ffffffff98891602176001600160c01b0316600160c01b948816949094026001600160e01b031693909317600160e01b93871693909302929092179098556080808b018051600580546001600160a01b031916918d169190911790558451988952955185169688019690965290518316918601919091525116938301939093529151909216908201527fa55bd56595c45f517e5967a3067f3dca684445a3080e7c04a4e0d5a40cda627d9060a00160405180910390a150565b60005b815181101562000666576000828281518110620003e557620003e562000a1d565b60200260200101519050600081602001519050806001600160401b0316600003620004235760405163c656089560e01b815260040160405180910390fd5b81516001600160a01b03166200044c576040516342bcdf7f60e11b815260040160405180910390fd5b6001600160401b0381166000908152600660205260408120600181018054919291620004789062000a33565b80601f0160208091040260200160405190810160405280929190818152602001828054620004a69062000a33565b8015620004f75780601f10620004cb57610100808354040283529160200191620004f7565b820191906000526020600020905b815481529060010190602001808311620004d957829003601f168201915b5050505050905060008460600151905081516000036200059e57805160000362000534576040516342bcdf7f60e11b815260040160405180910390fd5b6001830162000544828262000ac4565b508254600160a81b600160e81b031916600160a81b1783556040516001600160401b03851681527ff4c1390c70e5c0f491ae1ccbc06f9117cbbadf2767b247b3bc203280f24c0fb99060200160405180910390a1620005d9565b8080519060200120828051906020012014620005d95760405163c39a620560e01b81526001600160401b038516600482015260240162000083565b604080860151845487516001600160a01b03166001600160a01b0319921515600160a01b02929092166001600160a81b031990911617178455516001600160401b038516907f49f51971edd25182e97182d6ea372a0488ce2ab639f6a3a7ab4df0d2636fe56b906200064d90869062000b90565b60405180910390a25050505050806001019050620003c4565b5050565b634e487b7160e01b600052604160045260246000fd5b604051608081016001600160401b0381118282101715620006a557620006a56200066a565b60405290565b604051601f8201601f191681016001600160401b0381118282101715620006d657620006d66200066a565b604052919050565b80516001600160401b0381168114620006f657600080fd5b919050565b6001600160a01b03811681146200071157600080fd5b50565b805163ffffffff81168114620006f657600080fd5b6000601f83601f8401126200073d57600080fd5b825160206001600160401b03808311156200075c576200075c6200066a565b8260051b6200076d838201620006ab565b93845286810183019383810190898611156200078857600080fd5b84890192505b85831015620008ba57825184811115620007a85760008081fd5b89016080601f19828d038101821315620007c25760008081fd5b620007cc62000680565b88840151620007db81620006fb565b81526040620007ec858201620006de565b8a8301526060808601518015158114620008065760008081fd5b838301529385015193898511156200081e5760008081fd5b84860195508f603f8701126200083657600094508485fd5b8a8601519450898511156200084f576200084f6200066a565b620008608b858f88011601620006ab565b93508484528f82868801011115620008785760008081fd5b60005b8581101562000898578681018301518582018d01528b016200087b565b5060009484018b0194909452509182015283525091840191908401906200078e565b9998505050505050505050565b6000806000838503610140811215620008df57600080fd5b6080811215620008ee57600080fd5b620008f862000680565b6200090386620006de565b815260208601516200091581620006fb565b602082015260408601516200092a81620006fb565b604082015260608601516200093f81620006fb565b6060820152935060a0607f19820112156200095957600080fd5b5060405160a081016001600160401b0380821183831017156200098057620009806200066a565b81604052608087015191506200099682620006fb565b818352620009a760a0880162000714565b6020840152620009ba60c0880162000714565b6040840152620009cd60e0880162000714565b60608401526101008701519150620009e582620006fb565b608083018290526101208701519294508083111562000a0357600080fd5b505062000a138682870162000729565b9150509250925092565b634e487b7160e01b600052603260045260246000fd5b600181811c9082168062000a4857607f821691505b60208210810362000a6957634e487b7160e01b600052602260045260246000fd5b50919050565b601f82111562000abf576000816000526020600020601f850160051c8101602086101562000a9a5750805b601f850160051c820191505b8181101562000abb5782815560010162000aa6565b5050505b505050565b81516001600160401b0381111562000ae05762000ae06200066a565b62000af88162000af1845462000a33565b8462000a6f565b602080601f83116001811462000b30576000841562000b175750858301515b600019600386901b1c1916600185901b17855562000abb565b600085815260208120601f198616915b8281101562000b615788860151825594840194600190910190840162000b40565b508582101562000b805787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b602080825282546001600160a01b0381168383015260a081901c60ff161515604084015260a81c6001600160401b0316606083015260808083015260018084018054600093929190849062000be58162000a33565b8060a089015260c0600183166000811462000c09576001811462000c265762000c58565b60ff19841660c08b015260c083151560051b8b0101945062000c58565b85600052602060002060005b8481101562000c4f5781548c820185015290880190890162000c32565b8b0160c0019550505b50929998505050505050505050565b60805160a05160c05160e05161010051615fed62000cdd600039600081816102400152612a6b0152600081816102110152612f5f0152600081816101e20152818161077f0152818161098601526123ed0152600081816101b2015261267a0152600081816117db01526118270152615fed6000f3fe608060405234801561001057600080fd5b50600436106101515760003560e01c806379ba5097116100cd578063c673e58411610081578063e9d68a8e11610066578063e9d68a8e1461052a578063f2fde38b1461054a578063f716f99f1461055d57600080fd5b8063c673e584146104c5578063ccd37ba3146104e557600080fd5b80638da5cb5b116100b25780638da5cb5b14610484578063991a50181461049f578063a80036b4146104b257600080fd5b806379ba50971461046e57806385572ffb1461047657600080fd5b80632d04ab76116101245780633f4b04aa116101095780633f4b04aa146103365780635e36480c146103525780637437ff9f1461037257600080fd5b80632d04ab7614610310578063311cd5131461032357600080fd5b806304666f9c1461015657806305d938b51461016b57806306285c691461017e578063181f5a77146102c7575b600080fd5b61016961016436600461412b565b610570565b005b6101696101793660046147b5565b610584565b61027060408051608081018252600080825260208201819052918101829052606081019190915260405180608001604052807f000000000000000000000000000000000000000000000000000000000000000067ffffffffffffffff1681526020017f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031681526020017f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031681526020017f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316815250905090565b6040516102be9190815167ffffffffffffffff1681526020808301516001600160a01b0390811691830191909152604080840151821690830152606092830151169181019190915260800190565b60405180910390f35b6103036040518060400160405280601181526020017f4f666652616d7020312e362e302d64657600000000000000000000000000000081525081565b6040516102be9190614930565b61016961031e3660046149db565b610729565b610169610331366004614a8e565b610cbf565b60095460405167ffffffffffffffff90911681526020016102be565b610365610360366004614ae2565b610d28565b6040516102be9190614b3f565b6104116040805160a081018252600080825260208201819052918101829052606081018290526080810191909152506040805160a0810182526004546001600160a01b03808216835263ffffffff600160a01b83048116602085015278010000000000000000000000000000000000000000000000008304811694840194909452600160e01b9091049092166060820152600554909116608082015290565b6040516102be9190600060a0820190506001600160a01b03808451168352602084015163ffffffff808216602086015280604087015116604086015280606087015116606086015250508060808501511660808401525092915050565b610169610d7e565b610169610151366004614b4d565b6000546040516001600160a01b0390911681526020016102be565b6101696104ad366004614b9c565b610e3c565b6101696104c0366004614c10565b610e4d565b6104d86104d3366004614c7d565b6111c0565b6040516102be9190614cdd565b61051c6104f3366004614d52565b67ffffffffffffffff919091166000908152600860209081526040808320938352929052205490565b6040519081526020016102be565b61053d610538366004614d7c565b61131e565b6040516102be9190614d97565b610169610558366004614de5565b61142b565b61016961056b366004614e6a565b61143c565b61057861147e565b610581816114da565b50565b61058c6117d8565b8151815181146105c8576040517f83e3f56400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60005b818110156107195760008482815181106105e7576105e7614fa8565b6020026020010151905060008160200151519050600085848151811061060f5761060f614fa8565b6020026020010151905080518214610653576040517f83e3f56400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60005b8281101561070a57600082828151811061067257610672614fa8565b6020026020010151905080600014610701578460200151828151811061069a5761069a614fa8565b6020026020010151608001518110156107015784516040517fc8e9605100000000000000000000000000000000000000000000000000000000815267ffffffffffffffff909116600482015260248101839052604481018290526064015b60405180910390fd5b50600101610656565b505050508060010190506105cb565b506107248383611859565b505050565b6000610737878901896151d7565b602081015151909150156107e357602081015160408083015190517fccd5af000000000000000000000000000000000000000000000000000000000081526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169263ccd5af00926107b29260040161543d565b60006040518083038186803b1580156107ca57600080fd5b505afa1580156107de573d6000803e3d6000fd5b505050505b805151511515806107f957508051602001515115155b156108f95760095460208a01359067ffffffffffffffff808316911610156108b8576009805467ffffffffffffffff191667ffffffffffffffff83161790556004805483516040517f3937306f0000000000000000000000000000000000000000000000000000000081526001600160a01b0390921692633937306f9261088192910161551f565b600060405180830381600087803b15801561089b57600080fd5b505af11580156108af573d6000803e3d6000fd5b505050506108f7565b8160200151516000036108f7576040517f2261116700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505b60005b816020015151811015610c085760008260200151828151811061092157610921614fa8565b602090810291909101015180516040517f2cbc26bb00000000000000000000000000000000000000000000000000000000815277ffffffffffffffff00000000000000000000000000000000608083901b166004820152919250906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690632cbc26bb90602401602060405180830381865afa1580156109cd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109f19190615532565b15610a34576040517ffdbd6a7200000000000000000000000000000000000000000000000000000000815267ffffffffffffffff821660048201526024016106f8565b6000610a3f82611909565b6040840151815491925067ffffffffffffffff908116600160a81b90920416141580610a865750826060015167ffffffffffffffff16836040015167ffffffffffffffff16115b15610ae5578251604080850151606086015191517fd5e0f0d600000000000000000000000000000000000000000000000000000000815267ffffffffffffffff93841660048201529083166024820152911660448201526064016106f8565b608083015180610b21576040517f504570e300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b835167ffffffffffffffff16600090815260086020908152604080832084845290915290205415610b945783516040517f32cf0cbf00000000000000000000000000000000000000000000000000000000815267ffffffffffffffff9091166004820152602481018290526044016106f8565b6060840151610ba4906001615565565b82547fffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffff16600160a81b67ffffffffffffffff9283160217909255925116600090815260086020908152604080832094835293905291909120429055506001016108fc565b507f23bc80217a08968cec0790cd045b396fa7eea0a21af469e603329940b883d86d81604051610c38919061558d565b60405180910390a1610cb460008a8a8a8a8a8080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020808e0282810182019093528d82529093508d92508c9182918501908490808284376000920191909152508b9250611970915050565b505050505050505050565b610cff610cce828401846155e5565b6040805160008082526020820190925290610cf9565b6060815260200190600190039081610ce45790505b50611859565b604080516000808252602082019092529050610d22600185858585866000611970565b50505050565b6000610d366001600461561a565b6002610d43608085615643565b67ffffffffffffffff16610d57919061566a565b610d618585611ce7565b901c166003811115610d7557610d75614b15565b90505b92915050565b6001546001600160a01b03163314610dd85760405162461bcd60e51b815260206004820152601660248201527f4d7573742062652070726f706f736564206f776e65720000000000000000000060448201526064016106f8565b600080543373ffffffffffffffffffffffffffffffffffffffff19808316821784556001805490911690556040516001600160a01b0390921692909183917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a350565b610e4461147e565b61058181611d2e565b333014610e86576040517f371a732800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040805160008082526020820190925281610ec3565b6040805180820190915260008082526020820152815260200190600190039081610e9c5790505b5060a08501515190915015610ef757610ef48460a00151856020015186606001518760000151602001518787611e94565b90505b6040805160a0810182528551518152855160209081015167ffffffffffffffff1681830152808701518351600094840192610f33929101614930565b60408051601f19818403018152918152908252878101516020830152018390526005549091506001600160a01b03168015611040576040517f08d450a10000000000000000000000000000000000000000000000000000000081526001600160a01b038216906308d450a190610fad908590600401615723565b600060405180830381600087803b158015610fc757600080fd5b505af1925050508015610fd8575060015b611040573d808015611006576040519150601f19603f3d011682016040523d82523d6000602084013e61100b565b606091505b50806040517f09c253250000000000000000000000000000000000000000000000000000000081526004016106f89190614930565b60408601515115801561105557506080860151155b8061106c575060608601516001600160a01b03163b155b806110ac575060608601516110aa906001600160a01b03167f85572ffb00000000000000000000000000000000000000000000000000000000611fb3565b155b156110b957505050505050565b855160209081015167ffffffffffffffff1660009081526006909152604080822054608089015160608a015192517f3cf9798300000000000000000000000000000000000000000000000000000000815284936001600160a01b0390931692633cf97983926111319289926113889291600401615736565b6000604051808303816000875af1158015611150573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526111789190810190615772565b5091509150816111b657806040517f0a8d6e8c0000000000000000000000000000000000000000000000000000000081526004016106f89190614930565b5050505050505050565b6112036040805160e081019091526000606082018181526080830182905260a0830182905260c08301919091528190815260200160608152602001606081525090565b60ff808316600090815260026020818152604092839020835160e081018552815460608201908152600183015480881660808401526101008104881660a0840152620100009004909616151560c0820152948552918201805484518184028101840190955280855292938583019390928301828280156112ac57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161128e575b505050505081526020016003820180548060200260200160405190810160405280929190818152602001828054801561130e57602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116112f0575b5050505050815250509050919050565b604080516080808201835260008083526020808401829052838501829052606080850181905267ffffffffffffffff878116845260068352928690208651948501875280546001600160a01b0381168652600160a01b810460ff16151593860193909352600160a81b9092049092169483019490945260018401805493949293918401916113ab90615808565b80601f01602080910402602001604051908101604052809291908181526020018280546113d790615808565b801561130e5780601f106113f95761010080835404028352916020019161130e565b820191906000526020600020905b81548152906001019060200180831161140757505050919092525091949350505050565b61143361147e565b61058181611fcf565b61144461147e565b60005b815181101561147a5761147282828151811061146557611465614fa8565b6020026020010151612085565b600101611447565b5050565b6000546001600160a01b031633146114d85760405162461bcd60e51b815260206004820152601660248201527f4f6e6c792063616c6c61626c65206279206f776e65720000000000000000000060448201526064016106f8565b565b60005b815181101561147a5760008282815181106114fa576114fa614fa8565b602002602001015190506000816020015190508067ffffffffffffffff16600003611551576040517fc656089500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81516001600160a01b0316611579576040516342bcdf7f60e11b815260040160405180910390fd5b67ffffffffffffffff811660009081526006602052604081206001810180549192916115a490615808565b80601f01602080910402602001604051908101604052809291908181526020018280546115d090615808565b801561161d5780601f106115f25761010080835404028352916020019161161d565b820191906000526020600020905b81548152906001019060200180831161160057829003601f168201915b5050505050905060008460600151905081516000036116d5578051600003611658576040516342bcdf7f60e11b815260040160405180910390fd5b600183016116668282615892565b5082547fffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffff16600160a81b17835560405167ffffffffffffffff851681527ff4c1390c70e5c0f491ae1ccbc06f9117cbbadf2767b247b3bc203280f24c0fb99060200160405180910390a1611728565b8080519060200120828051906020012014611728576040517fc39a620500000000000000000000000000000000000000000000000000000000815267ffffffffffffffff851660048201526024016106f8565b604080860151845487516001600160a01b031673ffffffffffffffffffffffffffffffffffffffff19921515600160a01b02929092167fffffffffffffffffffffff000000000000000000000000000000000000000000909116171784555167ffffffffffffffff8516907f49f51971edd25182e97182d6ea372a0488ce2ab639f6a3a7ab4df0d2636fe56b906117c0908690615952565b60405180910390a250505050508060010190506114dd565b467f0000000000000000000000000000000000000000000000000000000000000000146114d8576040517f0f01ce850000000000000000000000000000000000000000000000000000000081527f000000000000000000000000000000000000000000000000000000000000000060048201524660248201526044016106f8565b8151600003611893576040517ebf199700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b805160408051600080825260208201909252911591905b8451811015611902576118fa8582815181106118c8576118c8614fa8565b6020026020010151846118f4578583815181106118e7576118e7614fa8565b6020026020010151612399565b83612399565b6001016118aa565b5050505050565b67ffffffffffffffff811660009081526006602052604081208054600160a01b900460ff16610d78576040517fed053c5900000000000000000000000000000000000000000000000000000000815267ffffffffffffffff841660048201526024016106f8565b60ff878116600090815260026020908152604080832081516080810183528154815260019091015480861693820193909352610100830485169181019190915262010000909104909216151560608301528735906119cf8760a4615a20565b9050826060015115611a175784516119e890602061566a565b86516119f590602061566a565b611a009060a0615a20565b611a0a9190615a20565b611a149082615a20565b90505b368114611a59576040517f8e1192e1000000000000000000000000000000000000000000000000000000008152600481018290523660248201526044016106f8565b5081518114611aa15781516040517f93df584c0000000000000000000000000000000000000000000000000000000081526004810191909152602481018290526044016106f8565b611aa96117d8565b60ff808a1660009081526003602090815260408083203384528252808320815180830190925280548086168352939491939092840191610100909104166002811115611af757611af7614b15565b6002811115611b0857611b08614b15565b9052509050600281602001516002811115611b2557611b25614b15565b148015611b795750600260008b60ff1660ff168152602001908152602001600020600301816000015160ff1681548110611b6157611b61614fa8565b6000918252602090912001546001600160a01b031633145b611baf576040517fda0f08e800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50816060015115611c91576020820151611bca906001615a33565b60ff16855114611c06576040517f71253a2500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8351855114611c41576040517fa75d88af00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008787604051611c53929190615a4c565b604051908190038120611c6a918b90602001615a5c565b604051602081830303815290604052805190602001209050611c8f8a82888888612d19565b505b6040805182815260208a81013567ffffffffffffffff169082015260ff8b16917f198d6990ef96613a9026203077e422916918b03ff47f0be6bee7b02d8e139ef0910160405180910390a2505050505050505050565b67ffffffffffffffff8216600090815260076020526040812081611d0c608085615a70565b67ffffffffffffffff1681526020810191909152604001600020549392505050565b80516001600160a01b0316611d56576040516342bcdf7f60e11b815260040160405180910390fd5b80516004805460208085018051604080880180516060808b0180516001600160a01b039b8c167fffffffffffffffff000000000000000000000000000000000000000000000000909a168a17600160a01b63ffffffff988916021777ffffffffffffffffffffffffffffffffffffffffffffffff167801000000000000000000000000000000000000000000000000948816949094026001600160e01b031693909317600160e01b93871693909302929092179098556080808b0180516005805473ffffffffffffffffffffffffffffffffffffffff1916918d169190911790558451988952955185169688019690965290518316918601919091525116938301939093529151909216908201527fa55bd56595c45f517e5967a3067f3dca684445a3080e7c04a4e0d5a40cda627d9060a00160405180910390a150565b6060865167ffffffffffffffff811115611eb057611eb0613f42565b604051908082528060200260200182016040528015611ef557816020015b6040805180820190915260008082526020820152815260200190600190039081611ece5790505b50905060005b8751811015611fa757611f82888281518110611f1957611f19614fa8565b6020026020010151888888888887818110611f3657611f36614fa8565b9050602002810190611f489190615a97565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612efe92505050565b828281518110611f9457611f94614fa8565b6020908102919091010152600101611efb565b505b9695505050505050565b6000611fbe836132a3565b8015610d755750610d758383613307565b336001600160a01b038216036120275760405162461bcd60e51b815260206004820152601760248201527f43616e6e6f74207472616e7366657220746f2073656c6600000000000000000060448201526064016106f8565b6001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0383811691821790925560008054604051929316917fed8889f560326eb138920d842192f0eb3dd22b4f139c87a2c57538e05bae12789190a350565b806040015160ff166000036120b0576000604051631b3fab5160e11b81526004016106f89190615ade565b60208082015160ff8082166000908152600290935260408320600181015492939092839216900361211d57606084015160018201805491151562010000027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff909216919091179055612172565b6060840151600182015460ff6201000090910416151590151514612172576040517f87f6037c00000000000000000000000000000000000000000000000000000000815260ff841660048201526024016106f8565b60a08401518051610100101561219e576001604051631b3fab5160e11b81526004016106f89190615ade565b61220484846003018054806020026020016040519081016040528092919081815260200182805480156121fa57602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116121dc575b50505050506133c2565b84606001511561230e5761227284846002018054806020026020016040519081016040528092919081815260200182805480156121fa576020028201919060005260206000209081546001600160a01b031681526001909101906020018083116121dc5750505050506133c2565b60808501518051610100101561229e576002604051631b3fab5160e11b81526004016106f89190615ade565b60408601516122ae906003615af8565b60ff168151116122d4576003604051631b3fab5160e11b81526004016106f89190615ade565b805160018401805461ff00191661010060ff8416021790556122ff9060028601906020840190613ebb565b5061230c8582600161342b565b505b61231a8482600261342b565b805161232f9060038501906020840190613ebb565b5060408581015160018401805460ff191660ff8316179055865180855560a088015192517fab8b1b57514019638d7b5ce9c638fe71366fe8e2be1c40a7a80f1733d0e9f547936123889389939260028a01929190615b14565b60405180910390a16119028461359f565b815181516040517f2cbc26bb000000000000000000000000000000000000000000000000000000008152608083901b77ffffffffffffffff00000000000000000000000000000000166004820152901515907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690632cbc26bb90602401602060405180830381865afa15801561243c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124609190615532565b156124ec5780156124a9576040517ffdbd6a7200000000000000000000000000000000000000000000000000000000815267ffffffffffffffff831660048201526024016106f8565b60405167ffffffffffffffff831681527faab522ed53d887e56ed53dd37398a01aeef6a58e0fa77c2173beb9512d8949339060200160405180910390a150505050565b60006124f783611909565b600101805461250590615808565b80601f016020809104026020016040519081016040528092919081815260200182805461253190615808565b801561257e5780601f106125535761010080835404028352916020019161257e565b820191906000526020600020905b81548152906001019060200180831161256157829003601f168201915b505050602088015151929350505060008190036125c6576040517ebf199700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8560400151518114612604576040517f57e0e08300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008167ffffffffffffffff81111561261f5761261f613f42565b604051908082528060200260200182016040528015612648578160200160208202803683370190505b50905060005b828110156127a15760008860200151828151811061266e5761266e614fa8565b602002602001015190507f000000000000000000000000000000000000000000000000000000000000000067ffffffffffffffff1681600001516040015167ffffffffffffffff161461270157805160409081015190517f38432a2200000000000000000000000000000000000000000000000000000000815267ffffffffffffffff90911660048201526024016106f8565b8667ffffffffffffffff1681600001516020015167ffffffffffffffff1614612771578051602001516040517f6c95f1eb00000000000000000000000000000000000000000000000000000000815267ffffffffffffffff808a16600483015290911660248201526044016106f8565b61277b818661360f565b83838151811061278d5761278d614fa8565b60209081029190910101525060010161264e565b5060006127b886838a606001518b60800151613731565b905080600003612800576040517f7dd17a7e00000000000000000000000000000000000000000000000000000000815267ffffffffffffffff871660048201526024016106f8565b60005b83811015610cb45760005a905060008a60200151838151811061282857612828614fa8565b6020026020010151905060006128468a836000015160600151610d28565b9050600081600381111561285c5761285c614b15565b14806128795750600381600381111561287757612877614b15565b145b6128d1578151606001516040805167ffffffffffffffff808e16825290921660208301527f3b575419319662b2a6f5e2467d84521517a3382b908eb3d557bb3fdb0c50e23c91015b60405180910390a1505050612d11565b88156129a157600454600090600160a01b900463ffffffff166128f4874261561a565b11905080806129145750600382600381111561291257612912614b15565b145b612956576040517fa9cfc86200000000000000000000000000000000000000000000000000000000815267ffffffffffffffff8c1660048201526024016106f8565b8b858151811061296857612968614fa8565b602002602001015160001461299b578b858151811061298957612989614fa8565b60200260200101518360800181815250505b50612a02565b60008160038111156129b5576129b5614b15565b14612a02578151606001516040805167ffffffffffffffff808e16825290921660208301527f3ef2a99c550a751d4b0b261268f05a803dfb049ab43616a1ffb388f61fe6512091016128c1565b81516080015167ffffffffffffffff1615612af1576000816003811115612a2b57612a2b614b15565b03612af15781516080015160208301516040517fe0e03cae0000000000000000000000000000000000000000000000000000000081526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169263e0e03cae92612aa2928f929190600401615bc0565b6020604051808303816000875af1158015612ac1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ae59190615532565b612af157505050612d11565b60008c604001518581518110612b0957612b09614fa8565b6020026020010151905080518360a001515114612b6d578251606001516040517f1cfe6d8b00000000000000000000000000000000000000000000000000000000815267ffffffffffffffff808e16600483015290911660248201526044016106f8565b612b818b846000015160600151600161376f565b600080612b8e8584613817565b91509150612ba58d8660000151606001518461376f565b8b15612c15576003826003811115612bbf57612bbf614b15565b03612c15576000846003811115612bd857612bd8614b15565b14612c15578451516040517f2b11b8d90000000000000000000000000000000000000000000000000000000081526106f891908390600401615bed565b6002826003811115612c2957612c29614b15565b14612c83576003826003811115612c4257612c42614b15565b14612c83578451606001516040517f926c5a3e0000000000000000000000000000000000000000000000000000000081526106f8918f918590600401615c06565b84600001516000015185600001516060015167ffffffffffffffff168e67ffffffffffffffff167f05665fe9ad095383d018353f4cbcba77e84db27dd215081bbf7cdf9ae6fbe48b8c8b81518110612cdd57612cdd614fa8565b602002602001015186865a612cf2908e61561a565b604051612d029493929190615c2c565b60405180910390a45050505050505b600101612803565b8251600090815b818110156111b6576000600188868460208110612d3f57612d3f614fa8565b612d4c91901a601b615a33565b898581518110612d5e57612d5e614fa8565b6020026020010151898681518110612d7857612d78614fa8565b602002602001015160405160008152602001604052604051612db6949392919093845260ff9290921660208401526040830152606082015260800190565b6020604051602081039080840390855afa158015612dd8573d6000803e3d6000fd5b505060408051601f1981015160ff808e166000908152600360209081528582206001600160a01b03851683528152858220858701909652855480841686529397509095509293928401916101009004166002811115612e3957612e39614b15565b6002811115612e4a57612e4a614b15565b9052509050600181602001516002811115612e6757612e67614b15565b14612e9e576040517fca31867a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8051600160ff9091161b851615612ee1576040517ff67bc7c400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b806000015160ff166001901b851794505050806001019050612d20565b60408051808201909152600080825260208201526000612f2187602001516138e1565b6040517fbbe4f6db0000000000000000000000000000000000000000000000000000000081526001600160a01b0380831660048301529192506000917f0000000000000000000000000000000000000000000000000000000000000000169063bbe4f6db90602401602060405180830381865afa158015612fa6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612fca9190615c63565b90506001600160a01b038116158061301257506130106001600160a01b0382167faff2afbf00000000000000000000000000000000000000000000000000000000611fb3565b155b15613054576040517fae9b4ce90000000000000000000000000000000000000000000000000000000081526001600160a01b03821660048201526024016106f8565b60045460009081906130769089908690600160e01b900463ffffffff16613987565b9150915060008060006131436040518061010001604052808e81526020018c67ffffffffffffffff1681526020018d6001600160a01b031681526020018f606001518152602001896001600160a01b031681526020018f6000015181526020018f6040015181526020018b8152506040516024016130f49190615c80565b60408051601f198184030181529190526020810180516001600160e01b03167f390775370000000000000000000000000000000000000000000000000000000017905287866113886084613ab5565b9250925092508261318257816040517fe1cd55090000000000000000000000000000000000000000000000000000000081526004016106f89190614930565b81516020146131ca5781516040517f78ef80240000000000000000000000000000000000000000000000000000000081526020600482015260248101919091526044016106f8565b6000828060200190518101906131e09190615d4d565b9050866001600160a01b03168c6001600160a01b0316146132755760006132118d8a61320c868a61561a565b613987565b5090508681108061322b575081613228888361561a565b14155b15613273576040517fa966e21f0000000000000000000000000000000000000000000000000000000081526004810183905260248101889052604481018290526064016106f8565b505b604080518082019091526001600160a01b039098168852602088015250949550505050505095945050505050565b60006132cf827f01ffc9a700000000000000000000000000000000000000000000000000000000613307565b8015610d785750613300827fffffffff00000000000000000000000000000000000000000000000000000000613307565b1592915050565b6040517fffffffff0000000000000000000000000000000000000000000000000000000082166024820152600090819060440160408051601f19818403018152919052602080820180516001600160e01b03167f01ffc9a700000000000000000000000000000000000000000000000000000000178152825192935060009283928392909183918a617530fa92503d915060005190508280156133ab575060208210155b80156133b75750600081115b979650505050505050565b60005b81518110156107245760ff8316600090815260036020526040812083519091908490849081106133f7576133f7614fa8565b6020908102919091018101516001600160a01b03168252810191909152604001600020805461ffff191690556001016133c5565b60005b8251811015610d2257600083828151811061344b5761344b614fa8565b602002602001015190506000600281111561346857613468614b15565b60ff80871660009081526003602090815260408083206001600160a01b038716845290915290205461010090041660028111156134a7576134a7614b15565b146134c8576004604051631b3fab5160e11b81526004016106f89190615ade565b6001600160a01b038116613508576040517fd6c62c9b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60405180604001604052808360ff16815260200184600281111561352e5761352e614b15565b905260ff80871660009081526003602090815260408083206001600160a01b0387168452825290912083518154931660ff198416811782559184015190929091839161ffff19161761010083600281111561358b5761358b614b15565b02179055509050505080600101905061342e565b60ff81166105815760ff808216600090815260026020526040902060010154620100009004166135fb576040517f7a3b4c9400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6009805467ffffffffffffffff1916905550565b815160208082015160409283015192516000938493613655937f2425b0b9f9054c76ff151b0a175b18f37a4a4e82013a72e9f15c9caa095ed21f93909291889101615d66565b60408051601f1981840301815290829052805160209182012086518051888401516060808b0151908401516080808d0151950151959761369e9794969395929491939101615d99565b604051602081830303815290604052805190602001208560400151805190602001208660a001516040516020016136d59190615e9e565b60408051601f198184030181528282528051602091820120908301969096528101939093526060830191909152608082015260a081019190915260c0015b60405160208183030381529060405280519060200120905092915050565b60008061373f858585613bdb565b67ffffffffffffffff8716600090815260086020908152604080832093835292905220549150505b949350505050565b6000600261377e608085615643565b67ffffffffffffffff16613792919061566a565b905060006137a08585611ce7565b9050816137af6001600461561a565b901b1916818360038111156137c6576137c6614b15565b67ffffffffffffffff871660009081526007602052604081209190921b929092179182916137f5608088615a70565b67ffffffffffffffff1681526020810191909152604001600020555050505050565b6040517fa80036b4000000000000000000000000000000000000000000000000000000008152600090606090309063a80036b49061385b9087908790600401615efe565b600060405180830381600087803b15801561387557600080fd5b505af1925050508015613886575060015b6138c5573d8080156138b4576040519150601f19603f3d011682016040523d82523d6000602084013e6138b9565b606091505b506003925090506138da565b50506040805160208101909152600081526002905b9250929050565b6000815160201461392057816040517f8d666f600000000000000000000000000000000000000000000000000000000081526004016106f89190614930565b6000828060200190518101906139369190615d4d565b90506001600160a01b0381118061394e575061040081105b15610d7857826040517f8d666f600000000000000000000000000000000000000000000000000000000081526004016106f89190614930565b6000806000806000613a01886040516024016139b291906001600160a01b0391909116815260200190565b60408051601f198184030181529190526020810180516001600160e01b03167f70a082310000000000000000000000000000000000000000000000000000000017905288886113886084613ab5565b92509250925082613a4057816040517fe1cd55090000000000000000000000000000000000000000000000000000000081526004016106f89190614930565b6020825114613a885781516040517f78ef80240000000000000000000000000000000000000000000000000000000081526020600482015260248101919091526044016106f8565b81806020019051810190613a9c9190615d4d565b613aa6828861561a565b94509450505050935093915050565b6000606060008361ffff1667ffffffffffffffff811115613ad857613ad8613f42565b6040519080825280601f01601f191660200182016040528015613b02576020820181803683370190505b509150863b613b35577f0c3b563c0000000000000000000000000000000000000000000000000000000060005260046000fd5b5a85811015613b68577fafa32a2c0000000000000000000000000000000000000000000000000000000060005260046000fd5b8590036040810481038710613ba1577f37c3be290000000000000000000000000000000000000000000000000000000060005260046000fd5b505a6000808a5160208c0160008c8cf193505a900390503d84811115613bc45750835b808352806000602085013e50955095509592505050565b8251825160009190818303613c1c576040517f11a6b26400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6101018211801590613c3057506101018111155b613c4d576040516309bde33960e01b815260040160405180910390fd5b60001982820101610100811115613c77576040516309bde33960e01b815260040160405180910390fd5b80600003613ca45786600081518110613c9257613c92614fa8565b60200260200101519350505050613e73565b60008167ffffffffffffffff811115613cbf57613cbf613f42565b604051908082528060200260200182016040528015613ce8578160200160208202803683370190505b50905060008080805b85811015613e125760006001821b8b811603613d4c5788851015613d35578c5160018601958e918110613d2657613d26614fa8565b60200260200101519050613d6e565b8551600185019487918110613d2657613d26614fa8565b8b5160018401938d918110613d6357613d63614fa8565b602002602001015190505b600089861015613d9e578d5160018701968f918110613d8f57613d8f614fa8565b60200260200101519050613dc0565b8651600186019588918110613db557613db5614fa8565b602002602001015190505b82851115613de1576040516309bde33960e01b815260040160405180910390fd5b613deb8282613e7a565b878481518110613dfd57613dfd614fa8565b60209081029190910101525050600101613cf1565b506001850382148015613e2457508683145b8015613e2f57508581145b613e4c576040516309bde33960e01b815260040160405180910390fd5b836001860381518110613e6157613e61614fa8565b60200260200101519750505050505050505b9392505050565b6000818310613e9257613e8d8284613e98565b610d75565b610d7583835b604080516001602082015290810183905260608101829052600090608001613713565b828054828255906000526020600020908101928215613f1d579160200282015b82811115613f1d578251825473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03909116178255602090920191600190910190613edb565b50613f29929150613f2d565b5090565b5b80821115613f295760008155600101613f2e565b634e487b7160e01b600052604160045260246000fd5b6040516080810167ffffffffffffffff81118282101715613f7b57613f7b613f42565b60405290565b60405160a0810167ffffffffffffffff81118282101715613f7b57613f7b613f42565b60405160c0810167ffffffffffffffff81118282101715613f7b57613f7b613f42565b6040805190810167ffffffffffffffff81118282101715613f7b57613f7b613f42565b6040516060810167ffffffffffffffff81118282101715613f7b57613f7b613f42565b604051601f8201601f1916810167ffffffffffffffff8111828210171561403657614036613f42565b604052919050565b600067ffffffffffffffff82111561405857614058613f42565b5060051b60200190565b6001600160a01b038116811461058157600080fd5b803567ffffffffffffffff8116811461408f57600080fd5b919050565b801515811461058157600080fd5b803561408f81614094565b600067ffffffffffffffff8211156140c7576140c7613f42565b50601f01601f191660200190565b600082601f8301126140e657600080fd5b81356140f96140f4826140ad565b61400d565b81815284602083860101111561410e57600080fd5b816020850160208301376000918101602001919091529392505050565b6000602080838503121561413e57600080fd5b823567ffffffffffffffff8082111561415657600080fd5b818501915085601f83011261416a57600080fd5b81356141786140f48261403e565b81815260059190911b8301840190848101908883111561419757600080fd5b8585015b8381101561423d578035858111156141b35760008081fd5b86016080818c03601f19018113156141cb5760008081fd5b6141d3613f58565b898301356141e081614062565b815260406141ef848201614077565b8b83015260608085013561420281614094565b8383015292840135928984111561421b57600091508182fd5b6142298f8d868801016140d5565b90830152508552505091860191860161419b565b5098975050505050505050565b600060a0828403121561425c57600080fd5b614264613f81565b90508135815261427660208301614077565b602082015261428760408301614077565b604082015261429860608301614077565b60608201526142a960808301614077565b608082015292915050565b803561408f81614062565b600082601f8301126142d057600080fd5b813560206142e06140f48361403e565b82815260059290921b840181019181810190868411156142ff57600080fd5b8286015b84811015611fa757803567ffffffffffffffff808211156143245760008081fd5b9088019060a0828b03601f190181131561433e5760008081fd5b614346613f81565b87840135838111156143585760008081fd5b6143668d8a838801016140d5565b8252506040808501358481111561437d5760008081fd5b61438b8e8b838901016140d5565b8a84015250606080860135858111156143a45760008081fd5b6143b28f8c838a01016140d5565b838501525060809150818601358184015250828501359250838311156143d85760008081fd5b6143e68d8a858801016140d5565b908201528652505050918301918301614303565b6000610140828403121561440d57600080fd5b614415613fa4565b9050614421838361424a565b815260a082013567ffffffffffffffff8082111561443e57600080fd5b61444a858386016140d5565b602084015260c084013591508082111561446357600080fd5b61446f858386016140d5565b604084015261448060e085016142b4565b606084015261010084013560808401526101208401359150808211156144a557600080fd5b506144b2848285016142bf565b60a08301525092915050565b600082601f8301126144cf57600080fd5b813560206144df6140f48361403e565b82815260059290921b840181019181810190868411156144fe57600080fd5b8286015b84811015611fa757803567ffffffffffffffff8111156145225760008081fd5b6145308986838b01016143fa565b845250918301918301614502565b600082601f83011261454f57600080fd5b8135602061455f6140f48361403e565b82815260059290921b8401810191818101908684111561457e57600080fd5b8286015b84811015611fa757803567ffffffffffffffff808211156145a257600080fd5b818901915089603f8301126145b657600080fd5b858201356145c66140f48261403e565b81815260059190911b830160400190878101908c8311156145e657600080fd5b604085015b8381101561461f5780358581111561460257600080fd5b6146118f6040838a01016140d5565b8452509189019189016145eb565b50875250505092840192508301614582565b600082601f83011261464257600080fd5b813560206146526140f48361403e565b8083825260208201915060208460051b87010193508684111561467457600080fd5b602086015b84811015611fa75780358352918301918301614679565b600082601f8301126146a157600080fd5b813560206146b16140f48361403e565b82815260059290921b840181019181810190868411156146d057600080fd5b8286015b84811015611fa757803567ffffffffffffffff808211156146f55760008081fd5b9088019060a0828b03601f190181131561470f5760008081fd5b614717613f81565b614722888501614077565b8152604080850135848111156147385760008081fd5b6147468e8b838901016144be565b8a840152506060808601358581111561475f5760008081fd5b61476d8f8c838a010161453e565b83850152506080915081860135858111156147885760008081fd5b6147968f8c838a0101614631565b91840191909152509190930135908301525083529183019183016146d4565b60008060408084860312156147c957600080fd5b833567ffffffffffffffff808211156147e157600080fd5b6147ed87838801614690565b945060209150818601358181111561480457600080fd5b8601601f8101881361481557600080fd5b80356148236140f48261403e565b81815260059190911b8201840190848101908a83111561484257600080fd5b8584015b838110156148ce5780358681111561485e5760008081fd5b8501603f81018d136148705760008081fd5b878101356148806140f48261403e565b81815260059190911b82018a0190898101908f8311156148a05760008081fd5b928b01925b828410156148be5783358252928a0192908a01906148a5565b8652505050918601918601614846565b50809750505050505050509250929050565b60005b838110156148fb5781810151838201526020016148e3565b50506000910152565b6000815180845261491c8160208601602086016148e0565b601f01601f19169290920160200192915050565b602081526000610d756020830184614904565b8060608101831015610d7857600080fd5b60008083601f84011261496657600080fd5b50813567ffffffffffffffff81111561497e57600080fd5b6020830191508360208285010111156138da57600080fd5b60008083601f8401126149a857600080fd5b50813567ffffffffffffffff8111156149c057600080fd5b6020830191508360208260051b85010111156138da57600080fd5b60008060008060008060008060e0898b0312156149f757600080fd5b614a018a8a614943565b9750606089013567ffffffffffffffff80821115614a1e57600080fd5b614a2a8c838d01614954565b909950975060808b0135915080821115614a4357600080fd5b614a4f8c838d01614996565b909750955060a08b0135915080821115614a6857600080fd5b50614a758b828c01614996565b999c989b50969995989497949560c00135949350505050565b600080600060808486031215614aa357600080fd5b614aad8585614943565b9250606084013567ffffffffffffffff811115614ac957600080fd5b614ad586828701614954565b9497909650939450505050565b60008060408385031215614af557600080fd5b614afe83614077565b9150614b0c60208401614077565b90509250929050565b634e487b7160e01b600052602160045260246000fd5b60048110614b3b57614b3b614b15565b9052565b60208101610d788284614b2b565b600060208284031215614b5f57600080fd5b813567ffffffffffffffff811115614b7657600080fd5b820160a08185031215613e7357600080fd5b803563ffffffff8116811461408f57600080fd5b600060a08284031215614bae57600080fd5b614bb6613f81565b8235614bc181614062565b8152614bcf60208401614b88565b6020820152614be060408401614b88565b6040820152614bf160608401614b88565b60608201526080830135614c0481614062565b60808201529392505050565b600080600060408486031215614c2557600080fd5b833567ffffffffffffffff80821115614c3d57600080fd5b614c49878388016143fa565b94506020860135915080821115614c5f57600080fd5b50614ad586828701614996565b803560ff8116811461408f57600080fd5b600060208284031215614c8f57600080fd5b610d7582614c6c565b60008151808452602080850194506020840160005b83811015614cd25781516001600160a01b031687529582019590820190600101614cad565b509495945050505050565b60208152600082518051602084015260ff602082015116604084015260ff604082015116606084015260608101511515608084015250602083015160c060a0840152614d2c60e0840182614c98565b90506040840151601f198483030160c0850152614d498282614c98565b95945050505050565b60008060408385031215614d6557600080fd5b614d6e83614077565b946020939093013593505050565b600060208284031215614d8e57600080fd5b610d7582614077565b602081526001600160a01b03825116602082015260208201511515604082015267ffffffffffffffff60408301511660608201526000606083015160808084015261376760a0840182614904565b600060208284031215614df757600080fd5b8135613e7381614062565b600082601f830112614e1357600080fd5b81356020614e236140f48361403e565b8083825260208201915060208460051b870101935086841115614e4557600080fd5b602086015b84811015611fa7578035614e5d81614062565b8352918301918301614e4a565b60006020808385031215614e7d57600080fd5b823567ffffffffffffffff80821115614e9557600080fd5b818501915085601f830112614ea957600080fd5b8135614eb76140f48261403e565b81815260059190911b83018401908481019088831115614ed657600080fd5b8585015b8381101561423d57803585811115614ef157600080fd5b860160c0818c03601f19011215614f085760008081fd5b614f10613fa4565b8882013581526040614f23818401614c6c565b8a8301526060614f34818501614c6c565b8284015260809150614f478285016140a2565b9083015260a08381013589811115614f5f5760008081fd5b614f6d8f8d83880101614e02565b838501525060c0840135915088821115614f875760008081fd5b614f958e8c84870101614e02565b9083015250845250918601918601614eda565b634e487b7160e01b600052603260045260246000fd5b80356001600160e01b038116811461408f57600080fd5b600082601f830112614fe657600080fd5b81356020614ff66140f48361403e565b82815260069290921b8401810191818101908684111561501557600080fd5b8286015b84811015611fa757604081890312156150325760008081fd5b61503a613fc7565b61504382614077565b8152615050858301614fbe565b81860152835291830191604001615019565b600082601f83011261507357600080fd5b813560206150836140f48361403e565b82815260059290921b840181019181810190868411156150a257600080fd5b8286015b84811015611fa757803567ffffffffffffffff808211156150c75760008081fd5b9088019060a0828b03601f19018113156150e15760008081fd5b6150e9613f81565b6150f4888501614077565b81526040808501358481111561510a5760008081fd5b6151188e8b838901016140d5565b8a840152506060935061512c848601614077565b90820152608061513d858201614077565b938201939093529201359082015283529183019183016150a6565b600082601f83011261516957600080fd5b813560206151796140f48361403e565b82815260069290921b8401810191818101908684111561519857600080fd5b8286015b84811015611fa757604081890312156151b55760008081fd5b6151bd613fc7565b81358152848201358582015283529183019160400161519c565b600060208083850312156151ea57600080fd5b823567ffffffffffffffff8082111561520257600080fd5b908401906060828703121561521657600080fd5b61521e613fea565b82358281111561522d57600080fd5b8301604081890381131561524057600080fd5b615248613fc7565b82358581111561525757600080fd5b8301601f81018b1361526857600080fd5b80356152766140f48261403e565b81815260069190911b8201890190898101908d83111561529557600080fd5b928a01925b828410156152e55785848f0312156152b25760008081fd5b6152ba613fc7565b84356152c581614062565b81526152d2858d01614fbe565b818d0152825292850192908a019061529a565b8452505050828701359150848211156152fd57600080fd5b6153098a838501614fd5565b8188015283525050828401358281111561532257600080fd5b61532e88828601615062565b8583015250604083013593508184111561534757600080fd5b61535387858501615158565b60408201529695505050505050565b600082825180855260208086019550808260051b84010181860160005b848110156153f457601f19868403018952815160a067ffffffffffffffff8083511686528683015182888801526153b883880182614904565b6040858101518416908901526060808601519093169288019290925250608092830151929095019190915250978301979083019060010161537f565b5090979650505050505050565b60008151808452602080850194506020840160005b83811015614cd2578151805188528301518388015260409096019590820190600101615416565b6040815260006154506040830185615362565b8281036020840152614d498185615401565b805160408084528151848201819052600092602091908201906060870190855b818110156154b957835180516001600160a01b031684528501516001600160e01b0316858401529284019291850191600101615482565b50508583015187820388850152805180835290840192506000918401905b80831015615513578351805167ffffffffffffffff1683528501516001600160e01b0316858301529284019260019290920191908501906154d7565b50979650505050505050565b602081526000610d756020830184615462565b60006020828403121561554457600080fd5b8151613e7381614094565b634e487b7160e01b600052601160045260246000fd5b67ffffffffffffffff8181168382160190808211156155865761558661554f565b5092915050565b6020815260008251606060208401526155a96080840182615462565b90506020840151601f19808584030160408601526155c78383615362565b9250604086015191508085840301606086015250614d498282615401565b6000602082840312156155f757600080fd5b813567ffffffffffffffff81111561560e57600080fd5b61376784828501614690565b81810381811115610d7857610d7861554f565b634e487b7160e01b600052601260045260246000fd5b600067ffffffffffffffff8084168061565e5761565e61562d565b92169190910692915050565b8082028115828204841417610d7857610d7861554f565b805182526000602067ffffffffffffffff81840151168185015260408084015160a060408701526156b560a0870182614904565b9050606085015186820360608801526156ce8282614904565b608087810151898303918a01919091528051808352908601935060009250908501905b8083101561551357835180516001600160a01b03168352860151868301529285019260019290920191908401906156f1565b602081526000610d756020830184615681565b6080815260006157496080830187615681565b61ffff9590951660208301525060408101929092526001600160a01b0316606090910152919050565b60008060006060848603121561578757600080fd5b835161579281614094565b602085015190935067ffffffffffffffff8111156157af57600080fd5b8401601f810186136157c057600080fd5b80516157ce6140f4826140ad565b8181528760208385010111156157e357600080fd5b6157f48260208301602086016148e0565b809450505050604084015190509250925092565b600181811c9082168061581c57607f821691505b60208210810361583c57634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115610724576000816000526020600020601f850160051c8101602086101561586b5750805b601f850160051c820191505b8181101561588a57828155600101615877565b505050505050565b815167ffffffffffffffff8111156158ac576158ac613f42565b6158c0816158ba8454615808565b84615842565b602080601f8311600181146158f557600084156158dd5750858301515b600019600386901b1c1916600185901b17855561588a565b600085815260208120601f198616915b8281101561592457888601518255948401946001909101908401615905565b50858210156159425787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6000602080835283546001600160a01b038116602085015260ff8160a01c161515604085015267ffffffffffffffff8160a81c166060850152506001808501608080860152600081546159a481615808565b8060a089015260c060018316600081146159c557600181146159e157615a11565b60ff19841660c08b015260c083151560051b8b01019450615a11565b85600052602060002060005b84811015615a085781548c82018501529088019089016159ed565b8b0160c0019550505b50929998505050505050505050565b80820180821115610d7857610d7861554f565b60ff8181168382160190811115610d7857610d7861554f565b8183823760009101908152919050565b828152606082602083013760800192915050565b600067ffffffffffffffff80841680615a8b57615a8b61562d565b92169190910492915050565b6000808335601e19843603018112615aae57600080fd5b83018035915067ffffffffffffffff821115615ac957600080fd5b6020019150368190038213156138da57600080fd5b6020810160058310615af257615af2614b15565b91905290565b60ff81811683821602908116908181146155865761558661554f565b600060a0820160ff881683526020878185015260a0604085015281875480845260c0860191508860005282600020935060005b81811015615b6c5784546001600160a01b031683526001948501949284019201615b47565b50508481036060860152865180825290820192508187019060005b81811015615bac5782516001600160a01b031685529383019391830191600101615b87565b50505060ff85166080850152509050611fa9565b600067ffffffffffffffff808616835280851660208401525060606040830152614d496060830184614904565b8281526040602082015260006137676040830184614904565b67ffffffffffffffff848116825283166020820152606081016137676040830184614b2b565b848152615c3c6020820185614b2b565b608060408201526000615c526080830185614904565b905082606083015295945050505050565b600060208284031215615c7557600080fd5b8151613e7381614062565b6020815260008251610100806020850152615c9f610120850183614904565b91506020850151615cbc604086018267ffffffffffffffff169052565b5060408501516001600160a01b038116606086015250606085015160808501526080850151615cf660a08601826001600160a01b03169052565b5060a0850151601f19808685030160c0870152615d138483614904565b935060c08701519150808685030160e0870152615d308483614904565b935060e0870151915080868503018387015250611fa98382614904565b600060208284031215615d5f57600080fd5b5051919050565b848152600067ffffffffffffffff808616602084015280851660408401525060806060830152611fa96080830184614904565b86815260c060208201526000615db260c0830188614904565b6001600160a01b039690961660408301525067ffffffffffffffff9384166060820152608081019290925290911660a09091015292915050565b600082825180855260208086019550808260051b84010181860160005b848110156153f457601f19868403018952815160a08151818652615e2f82870182614904565b9150508582015185820387870152615e478282614904565b91505060408083015186830382880152615e618382614904565b92505050606080830151818701525060808083015192508582038187015250615e8a8183614904565b9a86019a9450505090830190600101615e09565b602081526000610d756020830184615dec565b60008282518085526020808601955060208260051b8401016020860160005b848110156153f457601f19868403018952615eec838351614904565b98840198925090830190600101615ed0565b604081526000835180516040840152602081015167ffffffffffffffff80821660608601528060408401511660808601528060608401511660a08601528060808401511660c086015250505060208401516101408060e0850152615f66610180850183614904565b91506040860151603f198086850301610100870152615f858483614904565b935060608801519150615fa46101208701836001600160a01b03169052565b60808801518387015260a0880151925080868503016101608701525050615fcb8282615dec565b9150508281036020840152614d498185615eb156fea164736f6c6343000818000a", + Bin: "0x6101206040523480156200001257600080fd5b5060405162006b8038038062006b8083398101604081905262000035916200082b565b33806000816200008c5760405162461bcd60e51b815260206004820152601860248201527f43616e6e6f7420736574206f776e657220746f207a65726f000000000000000060448201526064015b60405180910390fd5b600080546001600160a01b0319166001600160a01b0384811691909117909155811615620000bf57620000bf81620001fa565b5050466080525060208301516001600160a01b03161580620000ec575060408301516001600160a01b0316155b8062000103575060608301516001600160a01b0316155b1562000122576040516342bcdf7f60e11b815260040160405180910390fd5b82516001600160401b03166000036200014e5760405163c656089560e01b815260040160405180910390fd5b82516001600160401b0390811660a052602080850180516001600160a01b0390811660c05260408088018051831660e0526060808a01805185166101005283518b519098168852945184169587019590955251821690850152905116908201527f683eb52ee924eb817377cfa8f41f238f4bb7a877da5267869dfffbad85f564d89060800160405180910390a1620001e682620002a5565b620001f181620003c1565b50505062000bcb565b336001600160a01b03821603620002545760405162461bcd60e51b815260206004820152601760248201527f43616e6e6f74207472616e7366657220746f2073656c66000000000000000000604482015260640162000083565b600180546001600160a01b0319166001600160a01b0383811691821790925560008054604051929316917fed8889f560326eb138920d842192f0eb3dd22b4f139c87a2c57538e05bae12789190a350565b80516001600160a01b0316620002ce576040516342bcdf7f60e11b815260040160405180910390fd5b80516004805460208085018051604080880180516060808b0180516001600160a01b039b8c166001600160c01b0319909a168a17600160a01b63ffffffff98891602176001600160c01b0316600160c01b948816949094026001600160e01b031693909317600160e01b93871693909302929092179098556080808b018051600580546001600160a01b031916918d169190911790558451988952955185169688019690965290518316918601919091525116938301939093529151909216908201527fa55bd56595c45f517e5967a3067f3dca684445a3080e7c04a4e0d5a40cda627d9060a00160405180910390a150565b60005b8151811015620005ca576000828281518110620003e557620003e562000981565b60200260200101519050600081602001519050806001600160401b0316600003620004235760405163c656089560e01b815260040160405180910390fd5b81516001600160a01b03166200044c576040516342bcdf7f60e11b815260040160405180910390fd5b6001600160401b038116600090815260066020526040902060608301516001820180546200047a9062000997565b9050600003620004d8578154600160a81b600160e81b031916600160a81b1782556040516001600160401b03841681527ff4c1390c70e5c0f491ae1ccbc06f9117cbbadf2767b247b3bc203280f24c0fb99060200160405180910390a15b805115806200050e5750604080516000602082015201604051602081830303815290604052805190602001208180519060200120145b156200052d576040516342bcdf7f60e11b815260040160405180910390fd5b600182016200053d828262000a28565b50604080850151835486516001600160a01b03166001600160a01b0319921515600160a01b02929092166001600160a81b031990911617178355516001600160401b038416907f49f51971edd25182e97182d6ea372a0488ce2ab639f6a3a7ab4df0d2636fe56b90620005b290859062000af4565b60405180910390a250505050806001019050620003c4565b5050565b634e487b7160e01b600052604160045260246000fd5b604051608081016001600160401b0381118282101715620006095762000609620005ce565b60405290565b604051601f8201601f191681016001600160401b03811182821017156200063a576200063a620005ce565b604052919050565b80516001600160401b03811681146200065a57600080fd5b919050565b6001600160a01b03811681146200067557600080fd5b50565b805163ffffffff811681146200065a57600080fd5b6000601f83601f840112620006a157600080fd5b825160206001600160401b0380831115620006c057620006c0620005ce565b8260051b620006d18382016200060f565b9384528681018301938381019089861115620006ec57600080fd5b84890192505b858310156200081e578251848111156200070c5760008081fd5b89016080601f19828d038101821315620007265760008081fd5b62000730620005e4565b888401516200073f816200065f565b815260406200075085820162000642565b8a83015260608086015180151581146200076a5760008081fd5b83830152938501519389851115620007825760008081fd5b84860195508f603f8701126200079a57600094508485fd5b8a860151945089851115620007b357620007b3620005ce565b620007c48b858f880116016200060f565b93508484528f82868801011115620007dc5760008081fd5b60005b85811015620007fc578681018301518582018d01528b01620007df565b5060009484018b019490945250918201528352509184019190840190620006f2565b9998505050505050505050565b60008060008385036101408112156200084357600080fd5b60808112156200085257600080fd5b6200085c620005e4565b620008678662000642565b8152602086015162000879816200065f565b602082015260408601516200088e816200065f565b60408201526060860151620008a3816200065f565b6060820152935060a0607f1982011215620008bd57600080fd5b5060405160a081016001600160401b038082118383101715620008e457620008e4620005ce565b8160405260808701519150620008fa826200065f565b8183526200090b60a0880162000678565b60208401526200091e60c0880162000678565b60408401526200093160e0880162000678565b6060840152610100870151915062000949826200065f565b60808301829052610120870151929450808311156200096757600080fd5b505062000977868287016200068d565b9150509250925092565b634e487b7160e01b600052603260045260246000fd5b600181811c90821680620009ac57607f821691505b602082108103620009cd57634e487b7160e01b600052602260045260246000fd5b50919050565b601f82111562000a23576000816000526020600020601f850160051c81016020861015620009fe5750805b601f850160051c820191505b8181101562000a1f5782815560010162000a0a565b5050505b505050565b81516001600160401b0381111562000a445762000a44620005ce565b62000a5c8162000a55845462000997565b84620009d3565b602080601f83116001811462000a94576000841562000a7b5750858301515b600019600386901b1c1916600185901b17855562000a1f565b600085815260208120601f198616915b8281101562000ac55788860151825594840194600190910190840162000aa4565b508582101562000ae45787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b602080825282546001600160a01b0381168383015260a081901c60ff161515604084015260a81c6001600160401b0316606083015260808083015260018084018054600093929190849062000b498162000997565b8060a089015260c0600183166000811462000b6d576001811462000b8a5762000bbc565b60ff19841660c08b015260c083151560051b8b0101945062000bbc565b85600052602060002060005b8481101562000bb35781548c820185015290880190890162000b96565b8b0160c0019550505b50929998505050505050505050565b60805160a05160c05160e05161010051615f3f62000c416000396000818161024001526129bd0152600081816102110152612eb10152600081816101e20152818161077f01528181610986015261233f0152600081816101b201526125cc01526000818161172d01526117790152615f3f6000f3fe608060405234801561001057600080fd5b50600436106101515760003560e01c806379ba5097116100cd578063c673e58411610081578063e9d68a8e11610066578063e9d68a8e1461052a578063f2fde38b1461054a578063f716f99f1461055d57600080fd5b8063c673e584146104c5578063ccd37ba3146104e557600080fd5b80638da5cb5b116100b25780638da5cb5b14610484578063991a50181461049f578063a80036b4146104b257600080fd5b806379ba50971461046e57806385572ffb1461047657600080fd5b80632d04ab76116101245780633f4b04aa116101095780633f4b04aa146103365780635e36480c146103525780637437ff9f1461037257600080fd5b80632d04ab7614610310578063311cd5131461032357600080fd5b806304666f9c1461015657806305d938b51461016b57806306285c691461017e578063181f5a77146102c7575b600080fd5b61016961016436600461407d565b610570565b005b610169610179366004614707565b610584565b61027060408051608081018252600080825260208201819052918101829052606081019190915260405180608001604052807f000000000000000000000000000000000000000000000000000000000000000067ffffffffffffffff1681526020017f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031681526020017f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031681526020017f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316815250905090565b6040516102be9190815167ffffffffffffffff1681526020808301516001600160a01b0390811691830191909152604080840151821690830152606092830151169181019190915260800190565b60405180910390f35b6103036040518060400160405280601181526020017f4f666652616d7020312e362e302d64657600000000000000000000000000000081525081565b6040516102be9190614882565b61016961031e36600461492d565b610729565b6101696103313660046149e0565b610cbf565b60095460405167ffffffffffffffff90911681526020016102be565b610365610360366004614a34565b610d28565b6040516102be9190614a91565b6104116040805160a081018252600080825260208201819052918101829052606081018290526080810191909152506040805160a0810182526004546001600160a01b03808216835263ffffffff600160a01b83048116602085015278010000000000000000000000000000000000000000000000008304811694840194909452600160e01b9091049092166060820152600554909116608082015290565b6040516102be9190600060a0820190506001600160a01b03808451168352602084015163ffffffff808216602086015280604087015116604086015280606087015116606086015250508060808501511660808401525092915050565b610169610d7e565b610169610151366004614a9f565b6000546040516001600160a01b0390911681526020016102be565b6101696104ad366004614aee565b610e3c565b6101696104c0366004614b62565b610e4d565b6104d86104d3366004614bcf565b6111c0565b6040516102be9190614c2f565b61051c6104f3366004614ca4565b67ffffffffffffffff919091166000908152600860209081526040808320938352929052205490565b6040519081526020016102be565b61053d610538366004614cce565b61131e565b6040516102be9190614ce9565b610169610558366004614d37565b61142b565b61016961056b366004614dbc565b61143c565b61057861147e565b610581816114da565b50565b61058c61172a565b8151815181146105c8576040517f83e3f56400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60005b818110156107195760008482815181106105e7576105e7614efa565b6020026020010151905060008160200151519050600085848151811061060f5761060f614efa565b6020026020010151905080518214610653576040517f83e3f56400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60005b8281101561070a57600082828151811061067257610672614efa565b6020026020010151905080600014610701578460200151828151811061069a5761069a614efa565b6020026020010151608001518110156107015784516040517fc8e9605100000000000000000000000000000000000000000000000000000000815267ffffffffffffffff909116600482015260248101839052604481018290526064015b60405180910390fd5b50600101610656565b505050508060010190506105cb565b5061072483836117ab565b505050565b600061073787890189615129565b602081015151909150156107e357602081015160408083015190517fccd5af000000000000000000000000000000000000000000000000000000000081526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169263ccd5af00926107b29260040161538f565b60006040518083038186803b1580156107ca57600080fd5b505afa1580156107de573d6000803e3d6000fd5b505050505b805151511515806107f957508051602001515115155b156108f95760095460208a01359067ffffffffffffffff808316911610156108b8576009805467ffffffffffffffff191667ffffffffffffffff83161790556004805483516040517f3937306f0000000000000000000000000000000000000000000000000000000081526001600160a01b0390921692633937306f92610881929101615471565b600060405180830381600087803b15801561089b57600080fd5b505af11580156108af573d6000803e3d6000fd5b505050506108f7565b8160200151516000036108f7576040517f2261116700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505b60005b816020015151811015610c085760008260200151828151811061092157610921614efa565b602090810291909101015180516040517f2cbc26bb00000000000000000000000000000000000000000000000000000000815277ffffffffffffffff00000000000000000000000000000000608083901b166004820152919250906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690632cbc26bb90602401602060405180830381865afa1580156109cd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109f19190615484565b15610a34576040517ffdbd6a7200000000000000000000000000000000000000000000000000000000815267ffffffffffffffff821660048201526024016106f8565b6000610a3f8261185b565b6040840151815491925067ffffffffffffffff908116600160a81b90920416141580610a865750826060015167ffffffffffffffff16836040015167ffffffffffffffff16115b15610ae5578251604080850151606086015191517fd5e0f0d600000000000000000000000000000000000000000000000000000000815267ffffffffffffffff93841660048201529083166024820152911660448201526064016106f8565b608083015180610b21576040517f504570e300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b835167ffffffffffffffff16600090815260086020908152604080832084845290915290205415610b945783516040517f32cf0cbf00000000000000000000000000000000000000000000000000000000815267ffffffffffffffff9091166004820152602481018290526044016106f8565b6060840151610ba49060016154b7565b82547fffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffff16600160a81b67ffffffffffffffff9283160217909255925116600090815260086020908152604080832094835293905291909120429055506001016108fc565b507f23bc80217a08968cec0790cd045b396fa7eea0a21af469e603329940b883d86d81604051610c3891906154df565b60405180910390a1610cb460008a8a8a8a8a8080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020808e0282810182019093528d82529093508d92508c9182918501908490808284376000920191909152508b92506118c2915050565b505050505050505050565b610cff610cce82840184615537565b6040805160008082526020820190925290610cf9565b6060815260200190600190039081610ce45790505b506117ab565b604080516000808252602082019092529050610d226001858585858660006118c2565b50505050565b6000610d366001600461556c565b6002610d43608085615595565b67ffffffffffffffff16610d5791906155bc565b610d618585611c39565b901c166003811115610d7557610d75614a67565b90505b92915050565b6001546001600160a01b03163314610dd85760405162461bcd60e51b815260206004820152601660248201527f4d7573742062652070726f706f736564206f776e65720000000000000000000060448201526064016106f8565b600080543373ffffffffffffffffffffffffffffffffffffffff19808316821784556001805490911690556040516001600160a01b0390921692909183917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a350565b610e4461147e565b61058181611c80565b333014610e86576040517f371a732800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040805160008082526020820190925281610ec3565b6040805180820190915260008082526020820152815260200190600190039081610e9c5790505b5060a08501515190915015610ef757610ef48460a00151856020015186606001518760000151602001518787611de6565b90505b6040805160a0810182528551518152855160209081015167ffffffffffffffff1681830152808701518351600094840192610f33929101614882565b60408051601f19818403018152918152908252878101516020830152018390526005549091506001600160a01b03168015611040576040517f08d450a10000000000000000000000000000000000000000000000000000000081526001600160a01b038216906308d450a190610fad908590600401615675565b600060405180830381600087803b158015610fc757600080fd5b505af1925050508015610fd8575060015b611040573d808015611006576040519150601f19603f3d011682016040523d82523d6000602084013e61100b565b606091505b50806040517f09c253250000000000000000000000000000000000000000000000000000000081526004016106f89190614882565b60408601515115801561105557506080860151155b8061106c575060608601516001600160a01b03163b155b806110ac575060608601516110aa906001600160a01b03167f85572ffb00000000000000000000000000000000000000000000000000000000611f05565b155b156110b957505050505050565b855160209081015167ffffffffffffffff1660009081526006909152604080822054608089015160608a015192517f3cf9798300000000000000000000000000000000000000000000000000000000815284936001600160a01b0390931692633cf97983926111319289926113889291600401615688565b6000604051808303816000875af1158015611150573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261117891908101906156c4565b5091509150816111b657806040517f0a8d6e8c0000000000000000000000000000000000000000000000000000000081526004016106f89190614882565b5050505050505050565b6112036040805160e081019091526000606082018181526080830182905260a0830182905260c08301919091528190815260200160608152602001606081525090565b60ff808316600090815260026020818152604092839020835160e081018552815460608201908152600183015480881660808401526101008104881660a0840152620100009004909616151560c0820152948552918201805484518184028101840190955280855292938583019390928301828280156112ac57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161128e575b505050505081526020016003820180548060200260200160405190810160405280929190818152602001828054801561130e57602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116112f0575b5050505050815250509050919050565b604080516080808201835260008083526020808401829052838501829052606080850181905267ffffffffffffffff878116845260068352928690208651948501875280546001600160a01b0381168652600160a01b810460ff16151593860193909352600160a81b9092049092169483019490945260018401805493949293918401916113ab9061575a565b80601f01602080910402602001604051908101604052809291908181526020018280546113d79061575a565b801561130e5780601f106113f95761010080835404028352916020019161130e565b820191906000526020600020905b81548152906001019060200180831161140757505050919092525091949350505050565b61143361147e565b61058181611f21565b61144461147e565b60005b815181101561147a5761147282828151811061146557611465614efa565b6020026020010151611fd7565b600101611447565b5050565b6000546001600160a01b031633146114d85760405162461bcd60e51b815260206004820152601660248201527f4f6e6c792063616c6c61626c65206279206f776e65720000000000000000000060448201526064016106f8565b565b60005b815181101561147a5760008282815181106114fa576114fa614efa565b602002602001015190506000816020015190508067ffffffffffffffff16600003611551576040517fc656089500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81516001600160a01b0316611579576040516342bcdf7f60e11b815260040160405180910390fd5b67ffffffffffffffff8116600090815260066020526040902060608301516001820180546115a69061575a565b90506000036116195781547fffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffff16600160a81b17825560405167ffffffffffffffff841681527ff4c1390c70e5c0f491ae1ccbc06f9117cbbadf2767b247b3bc203280f24c0fb99060200160405180910390a15b8051158061164e5750604080516000602082015201604051602081830303815290604052805190602001208180519060200120145b1561166c576040516342bcdf7f60e11b815260040160405180910390fd5b6001820161167a82826157e4565b50604080850151835486516001600160a01b031673ffffffffffffffffffffffffffffffffffffffff19921515600160a01b02929092167fffffffffffffffffffffff000000000000000000000000000000000000000000909116171783555167ffffffffffffffff8416907f49f51971edd25182e97182d6ea372a0488ce2ab639f6a3a7ab4df0d2636fe56b906117139085906158a4565b60405180910390a2505050508060010190506114dd565b467f0000000000000000000000000000000000000000000000000000000000000000146114d8576040517f0f01ce850000000000000000000000000000000000000000000000000000000081527f000000000000000000000000000000000000000000000000000000000000000060048201524660248201526044016106f8565b81516000036117e5576040517ebf199700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b805160408051600080825260208201909252911591905b84518110156118545761184c85828151811061181a5761181a614efa565b6020026020010151846118465785838151811061183957611839614efa565b60200260200101516122eb565b836122eb565b6001016117fc565b5050505050565b67ffffffffffffffff811660009081526006602052604081208054600160a01b900460ff16610d78576040517fed053c5900000000000000000000000000000000000000000000000000000000815267ffffffffffffffff841660048201526024016106f8565b60ff878116600090815260026020908152604080832081516080810183528154815260019091015480861693820193909352610100830485169181019190915262010000909104909216151560608301528735906119218760a4615972565b905082606001511561196957845161193a9060206155bc565b86516119479060206155bc565b6119529060a0615972565b61195c9190615972565b6119669082615972565b90505b3681146119ab576040517f8e1192e1000000000000000000000000000000000000000000000000000000008152600481018290523660248201526044016106f8565b50815181146119f35781516040517f93df584c0000000000000000000000000000000000000000000000000000000081526004810191909152602481018290526044016106f8565b6119fb61172a565b60ff808a1660009081526003602090815260408083203384528252808320815180830190925280548086168352939491939092840191610100909104166002811115611a4957611a49614a67565b6002811115611a5a57611a5a614a67565b9052509050600281602001516002811115611a7757611a77614a67565b148015611acb5750600260008b60ff1660ff168152602001908152602001600020600301816000015160ff1681548110611ab357611ab3614efa565b6000918252602090912001546001600160a01b031633145b611b01576040517fda0f08e800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50816060015115611be3576020820151611b1c906001615985565b60ff16855114611b58576040517f71253a2500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8351855114611b93576040517fa75d88af00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008787604051611ba592919061599e565b604051908190038120611bbc918b906020016159ae565b604051602081830303815290604052805190602001209050611be18a82888888612c6b565b505b6040805182815260208a81013567ffffffffffffffff169082015260ff8b16917f198d6990ef96613a9026203077e422916918b03ff47f0be6bee7b02d8e139ef0910160405180910390a2505050505050505050565b67ffffffffffffffff8216600090815260076020526040812081611c5e6080856159c2565b67ffffffffffffffff1681526020810191909152604001600020549392505050565b80516001600160a01b0316611ca8576040516342bcdf7f60e11b815260040160405180910390fd5b80516004805460208085018051604080880180516060808b0180516001600160a01b039b8c167fffffffffffffffff000000000000000000000000000000000000000000000000909a168a17600160a01b63ffffffff988916021777ffffffffffffffffffffffffffffffffffffffffffffffff167801000000000000000000000000000000000000000000000000948816949094026001600160e01b031693909317600160e01b93871693909302929092179098556080808b0180516005805473ffffffffffffffffffffffffffffffffffffffff1916918d169190911790558451988952955185169688019690965290518316918601919091525116938301939093529151909216908201527fa55bd56595c45f517e5967a3067f3dca684445a3080e7c04a4e0d5a40cda627d9060a00160405180910390a150565b6060865167ffffffffffffffff811115611e0257611e02613e94565b604051908082528060200260200182016040528015611e4757816020015b6040805180820190915260008082526020820152815260200190600190039081611e205790505b50905060005b8751811015611ef957611ed4888281518110611e6b57611e6b614efa565b6020026020010151888888888887818110611e8857611e88614efa565b9050602002810190611e9a91906159e9565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612e5092505050565b828281518110611ee657611ee6614efa565b6020908102919091010152600101611e4d565b505b9695505050505050565b6000611f10836131f5565b8015610d755750610d758383613259565b336001600160a01b03821603611f795760405162461bcd60e51b815260206004820152601760248201527f43616e6e6f74207472616e7366657220746f2073656c6600000000000000000060448201526064016106f8565b6001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0383811691821790925560008054604051929316917fed8889f560326eb138920d842192f0eb3dd22b4f139c87a2c57538e05bae12789190a350565b806040015160ff16600003612002576000604051631b3fab5160e11b81526004016106f89190615a30565b60208082015160ff8082166000908152600290935260408320600181015492939092839216900361206f57606084015160018201805491151562010000027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff9092169190911790556120c4565b6060840151600182015460ff62010000909104161515901515146120c4576040517f87f6037c00000000000000000000000000000000000000000000000000000000815260ff841660048201526024016106f8565b60a0840151805161010010156120f0576001604051631b3fab5160e11b81526004016106f89190615a30565b612156848460030180548060200260200160405190810160405280929190818152602001828054801561214c57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161212e575b5050505050613314565b846060015115612260576121c4848460020180548060200260200160405190810160405280929190818152602001828054801561214c576020028201919060005260206000209081546001600160a01b0316815260019091019060200180831161212e575050505050613314565b6080850151805161010010156121f0576002604051631b3fab5160e11b81526004016106f89190615a30565b6040860151612200906003615a4a565b60ff16815111612226576003604051631b3fab5160e11b81526004016106f89190615a30565b805160018401805461ff00191661010060ff8416021790556122519060028601906020840190613e0d565b5061225e8582600161337d565b505b61226c8482600261337d565b80516122819060038501906020840190613e0d565b5060408581015160018401805460ff191660ff8316179055865180855560a088015192517fab8b1b57514019638d7b5ce9c638fe71366fe8e2be1c40a7a80f1733d0e9f547936122da9389939260028a01929190615a66565b60405180910390a1611854846134f1565b815181516040517f2cbc26bb000000000000000000000000000000000000000000000000000000008152608083901b77ffffffffffffffff00000000000000000000000000000000166004820152901515907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690632cbc26bb90602401602060405180830381865afa15801561238e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123b29190615484565b1561243e5780156123fb576040517ffdbd6a7200000000000000000000000000000000000000000000000000000000815267ffffffffffffffff831660048201526024016106f8565b60405167ffffffffffffffff831681527faab522ed53d887e56ed53dd37398a01aeef6a58e0fa77c2173beb9512d8949339060200160405180910390a150505050565b60006124498361185b565b60010180546124579061575a565b80601f01602080910402602001604051908101604052809291908181526020018280546124839061575a565b80156124d05780601f106124a5576101008083540402835291602001916124d0565b820191906000526020600020905b8154815290600101906020018083116124b357829003601f168201915b50505060208801515192935050506000819003612518576040517ebf199700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8560400151518114612556576040517f57e0e08300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008167ffffffffffffffff81111561257157612571613e94565b60405190808252806020026020018201604052801561259a578160200160208202803683370190505b50905060005b828110156126f3576000886020015182815181106125c0576125c0614efa565b602002602001015190507f000000000000000000000000000000000000000000000000000000000000000067ffffffffffffffff1681600001516040015167ffffffffffffffff161461265357805160409081015190517f38432a2200000000000000000000000000000000000000000000000000000000815267ffffffffffffffff90911660048201526024016106f8565b8667ffffffffffffffff1681600001516020015167ffffffffffffffff16146126c3578051602001516040517f6c95f1eb00000000000000000000000000000000000000000000000000000000815267ffffffffffffffff808a16600483015290911660248201526044016106f8565b6126cd8186613561565b8383815181106126df576126df614efa565b6020908102919091010152506001016125a0565b50600061270a86838a606001518b60800151613683565b905080600003612752576040517f7dd17a7e00000000000000000000000000000000000000000000000000000000815267ffffffffffffffff871660048201526024016106f8565b60005b83811015610cb45760005a905060008a60200151838151811061277a5761277a614efa565b6020026020010151905060006127988a836000015160600151610d28565b905060008160038111156127ae576127ae614a67565b14806127cb575060038160038111156127c9576127c9614a67565b145b612823578151606001516040805167ffffffffffffffff808e16825290921660208301527f3b575419319662b2a6f5e2467d84521517a3382b908eb3d557bb3fdb0c50e23c91015b60405180910390a1505050612c63565b88156128f357600454600090600160a01b900463ffffffff16612846874261556c565b11905080806128665750600382600381111561286457612864614a67565b145b6128a8576040517fa9cfc86200000000000000000000000000000000000000000000000000000000815267ffffffffffffffff8c1660048201526024016106f8565b8b85815181106128ba576128ba614efa565b60200260200101516000146128ed578b85815181106128db576128db614efa565b60200260200101518360800181815250505b50612954565b600081600381111561290757612907614a67565b14612954578151606001516040805167ffffffffffffffff808e16825290921660208301527f3ef2a99c550a751d4b0b261268f05a803dfb049ab43616a1ffb388f61fe651209101612813565b81516080015167ffffffffffffffff1615612a4357600081600381111561297d5761297d614a67565b03612a435781516080015160208301516040517fe0e03cae0000000000000000000000000000000000000000000000000000000081526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169263e0e03cae926129f4928f929190600401615b12565b6020604051808303816000875af1158015612a13573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a379190615484565b612a4357505050612c63565b60008c604001518581518110612a5b57612a5b614efa565b6020026020010151905080518360a001515114612abf578251606001516040517f1cfe6d8b00000000000000000000000000000000000000000000000000000000815267ffffffffffffffff808e16600483015290911660248201526044016106f8565b612ad38b84600001516060015160016136c1565b600080612ae08584613769565b91509150612af78d866000015160600151846136c1565b8b15612b67576003826003811115612b1157612b11614a67565b03612b67576000846003811115612b2a57612b2a614a67565b14612b67578451516040517f2b11b8d90000000000000000000000000000000000000000000000000000000081526106f891908390600401615b3f565b6002826003811115612b7b57612b7b614a67565b14612bd5576003826003811115612b9457612b94614a67565b14612bd5578451606001516040517f926c5a3e0000000000000000000000000000000000000000000000000000000081526106f8918f918590600401615b58565b84600001516000015185600001516060015167ffffffffffffffff168e67ffffffffffffffff167f05665fe9ad095383d018353f4cbcba77e84db27dd215081bbf7cdf9ae6fbe48b8c8b81518110612c2f57612c2f614efa565b602002602001015186865a612c44908e61556c565b604051612c549493929190615b7e565b60405180910390a45050505050505b600101612755565b8251600090815b818110156111b6576000600188868460208110612c9157612c91614efa565b612c9e91901a601b615985565b898581518110612cb057612cb0614efa565b6020026020010151898681518110612cca57612cca614efa565b602002602001015160405160008152602001604052604051612d08949392919093845260ff9290921660208401526040830152606082015260800190565b6020604051602081039080840390855afa158015612d2a573d6000803e3d6000fd5b505060408051601f1981015160ff808e166000908152600360209081528582206001600160a01b03851683528152858220858701909652855480841686529397509095509293928401916101009004166002811115612d8b57612d8b614a67565b6002811115612d9c57612d9c614a67565b9052509050600181602001516002811115612db957612db9614a67565b14612df0576040517fca31867a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8051600160ff9091161b851615612e33576040517ff67bc7c400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b806000015160ff166001901b851794505050806001019050612c72565b60408051808201909152600080825260208201526000612e738760200151613833565b6040517fbbe4f6db0000000000000000000000000000000000000000000000000000000081526001600160a01b0380831660048301529192506000917f0000000000000000000000000000000000000000000000000000000000000000169063bbe4f6db90602401602060405180830381865afa158015612ef8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f1c9190615bb5565b90506001600160a01b0381161580612f645750612f626001600160a01b0382167faff2afbf00000000000000000000000000000000000000000000000000000000611f05565b155b15612fa6576040517fae9b4ce90000000000000000000000000000000000000000000000000000000081526001600160a01b03821660048201526024016106f8565b6004546000908190612fc89089908690600160e01b900463ffffffff166138d9565b9150915060008060006130956040518061010001604052808e81526020018c67ffffffffffffffff1681526020018d6001600160a01b031681526020018f606001518152602001896001600160a01b031681526020018f6000015181526020018f6040015181526020018b8152506040516024016130469190615bd2565b60408051601f198184030181529190526020810180516001600160e01b03167f390775370000000000000000000000000000000000000000000000000000000017905287866113886084613a07565b925092509250826130d457816040517fe1cd55090000000000000000000000000000000000000000000000000000000081526004016106f89190614882565b815160201461311c5781516040517f78ef80240000000000000000000000000000000000000000000000000000000081526020600482015260248101919091526044016106f8565b6000828060200190518101906131329190615c9f565b9050866001600160a01b03168c6001600160a01b0316146131c75760006131638d8a61315e868a61556c565b6138d9565b5090508681108061317d57508161317a888361556c565b14155b156131c5576040517fa966e21f0000000000000000000000000000000000000000000000000000000081526004810183905260248101889052604481018290526064016106f8565b505b604080518082019091526001600160a01b039098168852602088015250949550505050505095945050505050565b6000613221827f01ffc9a700000000000000000000000000000000000000000000000000000000613259565b8015610d785750613252827fffffffff00000000000000000000000000000000000000000000000000000000613259565b1592915050565b6040517fffffffff0000000000000000000000000000000000000000000000000000000082166024820152600090819060440160408051601f19818403018152919052602080820180516001600160e01b03167f01ffc9a700000000000000000000000000000000000000000000000000000000178152825192935060009283928392909183918a617530fa92503d915060005190508280156132fd575060208210155b80156133095750600081115b979650505050505050565b60005b81518110156107245760ff83166000908152600360205260408120835190919084908490811061334957613349614efa565b6020908102919091018101516001600160a01b03168252810191909152604001600020805461ffff19169055600101613317565b60005b8251811015610d2257600083828151811061339d5761339d614efa565b60200260200101519050600060028111156133ba576133ba614a67565b60ff80871660009081526003602090815260408083206001600160a01b038716845290915290205461010090041660028111156133f9576133f9614a67565b1461341a576004604051631b3fab5160e11b81526004016106f89190615a30565b6001600160a01b03811661345a576040517fd6c62c9b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60405180604001604052808360ff16815260200184600281111561348057613480614a67565b905260ff80871660009081526003602090815260408083206001600160a01b0387168452825290912083518154931660ff198416811782559184015190929091839161ffff1916176101008360028111156134dd576134dd614a67565b021790555090505050806001019050613380565b60ff81166105815760ff8082166000908152600260205260409020600101546201000090041661354d576040517f7a3b4c9400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6009805467ffffffffffffffff1916905550565b8151602080820151604092830151925160009384936135a7937f2425b0b9f9054c76ff151b0a175b18f37a4a4e82013a72e9f15c9caa095ed21f93909291889101615cb8565b60408051601f1981840301815290829052805160209182012086518051888401516060808b0151908401516080808d015195015195976135f09794969395929491939101615ceb565b604051602081830303815290604052805190602001208560400151805190602001208660a001516040516020016136279190615df0565b60408051601f198184030181528282528051602091820120908301969096528101939093526060830191909152608082015260a081019190915260c0015b60405160208183030381529060405280519060200120905092915050565b600080613691858585613b2d565b67ffffffffffffffff8716600090815260086020908152604080832093835292905220549150505b949350505050565b600060026136d0608085615595565b67ffffffffffffffff166136e491906155bc565b905060006136f28585611c39565b9050816137016001600461556c565b901b19168183600381111561371857613718614a67565b67ffffffffffffffff871660009081526007602052604081209190921b929092179182916137476080886159c2565b67ffffffffffffffff1681526020810191909152604001600020555050505050565b6040517fa80036b4000000000000000000000000000000000000000000000000000000008152600090606090309063a80036b4906137ad9087908790600401615e50565b600060405180830381600087803b1580156137c757600080fd5b505af19250505080156137d8575060015b613817573d808015613806576040519150601f19603f3d011682016040523d82523d6000602084013e61380b565b606091505b5060039250905061382c565b50506040805160208101909152600081526002905b9250929050565b6000815160201461387257816040517f8d666f600000000000000000000000000000000000000000000000000000000081526004016106f89190614882565b6000828060200190518101906138889190615c9f565b90506001600160a01b038111806138a0575061040081105b15610d7857826040517f8d666f600000000000000000000000000000000000000000000000000000000081526004016106f89190614882565b60008060008060006139538860405160240161390491906001600160a01b0391909116815260200190565b60408051601f198184030181529190526020810180516001600160e01b03167f70a082310000000000000000000000000000000000000000000000000000000017905288886113886084613a07565b9250925092508261399257816040517fe1cd55090000000000000000000000000000000000000000000000000000000081526004016106f89190614882565b60208251146139da5781516040517f78ef80240000000000000000000000000000000000000000000000000000000081526020600482015260248101919091526044016106f8565b818060200190518101906139ee9190615c9f565b6139f8828861556c565b94509450505050935093915050565b6000606060008361ffff1667ffffffffffffffff811115613a2a57613a2a613e94565b6040519080825280601f01601f191660200182016040528015613a54576020820181803683370190505b509150863b613a87577f0c3b563c0000000000000000000000000000000000000000000000000000000060005260046000fd5b5a85811015613aba577fafa32a2c0000000000000000000000000000000000000000000000000000000060005260046000fd5b8590036040810481038710613af3577f37c3be290000000000000000000000000000000000000000000000000000000060005260046000fd5b505a6000808a5160208c0160008c8cf193505a900390503d84811115613b165750835b808352806000602085013e50955095509592505050565b8251825160009190818303613b6e576040517f11a6b26400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6101018211801590613b8257506101018111155b613b9f576040516309bde33960e01b815260040160405180910390fd5b60001982820101610100811115613bc9576040516309bde33960e01b815260040160405180910390fd5b80600003613bf65786600081518110613be457613be4614efa565b60200260200101519350505050613dc5565b60008167ffffffffffffffff811115613c1157613c11613e94565b604051908082528060200260200182016040528015613c3a578160200160208202803683370190505b50905060008080805b85811015613d645760006001821b8b811603613c9e5788851015613c87578c5160018601958e918110613c7857613c78614efa565b60200260200101519050613cc0565b8551600185019487918110613c7857613c78614efa565b8b5160018401938d918110613cb557613cb5614efa565b602002602001015190505b600089861015613cf0578d5160018701968f918110613ce157613ce1614efa565b60200260200101519050613d12565b8651600186019588918110613d0757613d07614efa565b602002602001015190505b82851115613d33576040516309bde33960e01b815260040160405180910390fd5b613d3d8282613dcc565b878481518110613d4f57613d4f614efa565b60209081029190910101525050600101613c43565b506001850382148015613d7657508683145b8015613d8157508581145b613d9e576040516309bde33960e01b815260040160405180910390fd5b836001860381518110613db357613db3614efa565b60200260200101519750505050505050505b9392505050565b6000818310613de457613ddf8284613dea565b610d75565b610d7583835b604080516001602082015290810183905260608101829052600090608001613665565b828054828255906000526020600020908101928215613e6f579160200282015b82811115613e6f578251825473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03909116178255602090920191600190910190613e2d565b50613e7b929150613e7f565b5090565b5b80821115613e7b5760008155600101613e80565b634e487b7160e01b600052604160045260246000fd5b6040516080810167ffffffffffffffff81118282101715613ecd57613ecd613e94565b60405290565b60405160a0810167ffffffffffffffff81118282101715613ecd57613ecd613e94565b60405160c0810167ffffffffffffffff81118282101715613ecd57613ecd613e94565b6040805190810167ffffffffffffffff81118282101715613ecd57613ecd613e94565b6040516060810167ffffffffffffffff81118282101715613ecd57613ecd613e94565b604051601f8201601f1916810167ffffffffffffffff81118282101715613f8857613f88613e94565b604052919050565b600067ffffffffffffffff821115613faa57613faa613e94565b5060051b60200190565b6001600160a01b038116811461058157600080fd5b803567ffffffffffffffff81168114613fe157600080fd5b919050565b801515811461058157600080fd5b8035613fe181613fe6565b600067ffffffffffffffff82111561401957614019613e94565b50601f01601f191660200190565b600082601f83011261403857600080fd5b813561404b61404682613fff565b613f5f565b81815284602083860101111561406057600080fd5b816020850160208301376000918101602001919091529392505050565b6000602080838503121561409057600080fd5b823567ffffffffffffffff808211156140a857600080fd5b818501915085601f8301126140bc57600080fd5b81356140ca61404682613f90565b81815260059190911b830184019084810190888311156140e957600080fd5b8585015b8381101561418f578035858111156141055760008081fd5b86016080818c03601f190181131561411d5760008081fd5b614125613eaa565b8983013561413281613fb4565b81526040614141848201613fc9565b8b83015260608085013561415481613fe6565b8383015292840135928984111561416d57600091508182fd5b61417b8f8d86880101614027565b9083015250855250509186019186016140ed565b5098975050505050505050565b600060a082840312156141ae57600080fd5b6141b6613ed3565b9050813581526141c860208301613fc9565b60208201526141d960408301613fc9565b60408201526141ea60608301613fc9565b60608201526141fb60808301613fc9565b608082015292915050565b8035613fe181613fb4565b600082601f83011261422257600080fd5b8135602061423261404683613f90565b82815260059290921b8401810191818101908684111561425157600080fd5b8286015b84811015611ef957803567ffffffffffffffff808211156142765760008081fd5b9088019060a0828b03601f19018113156142905760008081fd5b614298613ed3565b87840135838111156142aa5760008081fd5b6142b88d8a83880101614027565b825250604080850135848111156142cf5760008081fd5b6142dd8e8b83890101614027565b8a84015250606080860135858111156142f65760008081fd5b6143048f8c838a0101614027565b8385015250608091508186013581840152508285013592508383111561432a5760008081fd5b6143388d8a85880101614027565b908201528652505050918301918301614255565b6000610140828403121561435f57600080fd5b614367613ef6565b9050614373838361419c565b815260a082013567ffffffffffffffff8082111561439057600080fd5b61439c85838601614027565b602084015260c08401359150808211156143b557600080fd5b6143c185838601614027565b60408401526143d260e08501614206565b606084015261010084013560808401526101208401359150808211156143f757600080fd5b5061440484828501614211565b60a08301525092915050565b600082601f83011261442157600080fd5b8135602061443161404683613f90565b82815260059290921b8401810191818101908684111561445057600080fd5b8286015b84811015611ef957803567ffffffffffffffff8111156144745760008081fd5b6144828986838b010161434c565b845250918301918301614454565b600082601f8301126144a157600080fd5b813560206144b161404683613f90565b82815260059290921b840181019181810190868411156144d057600080fd5b8286015b84811015611ef957803567ffffffffffffffff808211156144f457600080fd5b818901915089603f83011261450857600080fd5b8582013561451861404682613f90565b81815260059190911b830160400190878101908c83111561453857600080fd5b604085015b838110156145715780358581111561455457600080fd5b6145638f6040838a0101614027565b84525091890191890161453d565b508752505050928401925083016144d4565b600082601f83011261459457600080fd5b813560206145a461404683613f90565b8083825260208201915060208460051b8701019350868411156145c657600080fd5b602086015b84811015611ef957803583529183019183016145cb565b600082601f8301126145f357600080fd5b8135602061460361404683613f90565b82815260059290921b8401810191818101908684111561462257600080fd5b8286015b84811015611ef957803567ffffffffffffffff808211156146475760008081fd5b9088019060a0828b03601f19018113156146615760008081fd5b614669613ed3565b614674888501613fc9565b81526040808501358481111561468a5760008081fd5b6146988e8b83890101614410565b8a84015250606080860135858111156146b15760008081fd5b6146bf8f8c838a0101614490565b83850152506080915081860135858111156146da5760008081fd5b6146e88f8c838a0101614583565b9184019190915250919093013590830152508352918301918301614626565b600080604080848603121561471b57600080fd5b833567ffffffffffffffff8082111561473357600080fd5b61473f878388016145e2565b945060209150818601358181111561475657600080fd5b8601601f8101881361476757600080fd5b803561477561404682613f90565b81815260059190911b8201840190848101908a83111561479457600080fd5b8584015b83811015614820578035868111156147b05760008081fd5b8501603f81018d136147c25760008081fd5b878101356147d261404682613f90565b81815260059190911b82018a0190898101908f8311156147f25760008081fd5b928b01925b828410156148105783358252928a0192908a01906147f7565b8652505050918601918601614798565b50809750505050505050509250929050565b60005b8381101561484d578181015183820152602001614835565b50506000910152565b6000815180845261486e816020860160208601614832565b601f01601f19169290920160200192915050565b602081526000610d756020830184614856565b8060608101831015610d7857600080fd5b60008083601f8401126148b857600080fd5b50813567ffffffffffffffff8111156148d057600080fd5b60208301915083602082850101111561382c57600080fd5b60008083601f8401126148fa57600080fd5b50813567ffffffffffffffff81111561491257600080fd5b6020830191508360208260051b850101111561382c57600080fd5b60008060008060008060008060e0898b03121561494957600080fd5b6149538a8a614895565b9750606089013567ffffffffffffffff8082111561497057600080fd5b61497c8c838d016148a6565b909950975060808b013591508082111561499557600080fd5b6149a18c838d016148e8565b909750955060a08b01359150808211156149ba57600080fd5b506149c78b828c016148e8565b999c989b50969995989497949560c00135949350505050565b6000806000608084860312156149f557600080fd5b6149ff8585614895565b9250606084013567ffffffffffffffff811115614a1b57600080fd5b614a27868287016148a6565b9497909650939450505050565b60008060408385031215614a4757600080fd5b614a5083613fc9565b9150614a5e60208401613fc9565b90509250929050565b634e487b7160e01b600052602160045260246000fd5b60048110614a8d57614a8d614a67565b9052565b60208101610d788284614a7d565b600060208284031215614ab157600080fd5b813567ffffffffffffffff811115614ac857600080fd5b820160a08185031215613dc557600080fd5b803563ffffffff81168114613fe157600080fd5b600060a08284031215614b0057600080fd5b614b08613ed3565b8235614b1381613fb4565b8152614b2160208401614ada565b6020820152614b3260408401614ada565b6040820152614b4360608401614ada565b60608201526080830135614b5681613fb4565b60808201529392505050565b600080600060408486031215614b7757600080fd5b833567ffffffffffffffff80821115614b8f57600080fd5b614b9b8783880161434c565b94506020860135915080821115614bb157600080fd5b50614a27868287016148e8565b803560ff81168114613fe157600080fd5b600060208284031215614be157600080fd5b610d7582614bbe565b60008151808452602080850194506020840160005b83811015614c245781516001600160a01b031687529582019590820190600101614bff565b509495945050505050565b60208152600082518051602084015260ff602082015116604084015260ff604082015116606084015260608101511515608084015250602083015160c060a0840152614c7e60e0840182614bea565b90506040840151601f198483030160c0850152614c9b8282614bea565b95945050505050565b60008060408385031215614cb757600080fd5b614cc083613fc9565b946020939093013593505050565b600060208284031215614ce057600080fd5b610d7582613fc9565b602081526001600160a01b03825116602082015260208201511515604082015267ffffffffffffffff6040830151166060820152600060608301516080808401526136b960a0840182614856565b600060208284031215614d4957600080fd5b8135613dc581613fb4565b600082601f830112614d6557600080fd5b81356020614d7561404683613f90565b8083825260208201915060208460051b870101935086841115614d9757600080fd5b602086015b84811015611ef9578035614daf81613fb4565b8352918301918301614d9c565b60006020808385031215614dcf57600080fd5b823567ffffffffffffffff80821115614de757600080fd5b818501915085601f830112614dfb57600080fd5b8135614e0961404682613f90565b81815260059190911b83018401908481019088831115614e2857600080fd5b8585015b8381101561418f57803585811115614e4357600080fd5b860160c0818c03601f19011215614e5a5760008081fd5b614e62613ef6565b8882013581526040614e75818401614bbe565b8a8301526060614e86818501614bbe565b8284015260809150614e99828501613ff4565b9083015260a08381013589811115614eb15760008081fd5b614ebf8f8d83880101614d54565b838501525060c0840135915088821115614ed95760008081fd5b614ee78e8c84870101614d54565b9083015250845250918601918601614e2c565b634e487b7160e01b600052603260045260246000fd5b80356001600160e01b0381168114613fe157600080fd5b600082601f830112614f3857600080fd5b81356020614f4861404683613f90565b82815260069290921b84018101918181019086841115614f6757600080fd5b8286015b84811015611ef95760408189031215614f845760008081fd5b614f8c613f19565b614f9582613fc9565b8152614fa2858301614f10565b81860152835291830191604001614f6b565b600082601f830112614fc557600080fd5b81356020614fd561404683613f90565b82815260059290921b84018101918181019086841115614ff457600080fd5b8286015b84811015611ef957803567ffffffffffffffff808211156150195760008081fd5b9088019060a0828b03601f19018113156150335760008081fd5b61503b613ed3565b615046888501613fc9565b81526040808501358481111561505c5760008081fd5b61506a8e8b83890101614027565b8a840152506060935061507e848601613fc9565b90820152608061508f858201613fc9565b93820193909352920135908201528352918301918301614ff8565b600082601f8301126150bb57600080fd5b813560206150cb61404683613f90565b82815260069290921b840181019181810190868411156150ea57600080fd5b8286015b84811015611ef957604081890312156151075760008081fd5b61510f613f19565b8135815284820135858201528352918301916040016150ee565b6000602080838503121561513c57600080fd5b823567ffffffffffffffff8082111561515457600080fd5b908401906060828703121561516857600080fd5b615170613f3c565b82358281111561517f57600080fd5b8301604081890381131561519257600080fd5b61519a613f19565b8235858111156151a957600080fd5b8301601f81018b136151ba57600080fd5b80356151c861404682613f90565b81815260069190911b8201890190898101908d8311156151e757600080fd5b928a01925b828410156152375785848f0312156152045760008081fd5b61520c613f19565b843561521781613fb4565b8152615224858d01614f10565b818d0152825292850192908a01906151ec565b84525050508287013591508482111561524f57600080fd5b61525b8a838501614f27565b8188015283525050828401358281111561527457600080fd5b61528088828601614fb4565b8583015250604083013593508184111561529957600080fd5b6152a5878585016150aa565b60408201529695505050505050565b600082825180855260208086019550808260051b84010181860160005b8481101561534657601f19868403018952815160a067ffffffffffffffff80835116865286830151828888015261530a83880182614856565b604085810151841690890152606080860151909316928801929092525060809283015192909501919091525097830197908301906001016152d1565b5090979650505050505050565b60008151808452602080850194506020840160005b83811015614c24578151805188528301518388015260409096019590820190600101615368565b6040815260006153a260408301856152b4565b8281036020840152614c9b8185615353565b805160408084528151848201819052600092602091908201906060870190855b8181101561540b57835180516001600160a01b031684528501516001600160e01b03168584015292840192918501916001016153d4565b50508583015187820388850152805180835290840192506000918401905b80831015615465578351805167ffffffffffffffff1683528501516001600160e01b031685830152928401926001929092019190850190615429565b50979650505050505050565b602081526000610d7560208301846153b4565b60006020828403121561549657600080fd5b8151613dc581613fe6565b634e487b7160e01b600052601160045260246000fd5b67ffffffffffffffff8181168382160190808211156154d8576154d86154a1565b5092915050565b6020815260008251606060208401526154fb60808401826153b4565b90506020840151601f198085840301604086015261551983836152b4565b9250604086015191508085840301606086015250614c9b8282615353565b60006020828403121561554957600080fd5b813567ffffffffffffffff81111561556057600080fd5b6136b9848285016145e2565b81810381811115610d7857610d786154a1565b634e487b7160e01b600052601260045260246000fd5b600067ffffffffffffffff808416806155b0576155b061557f565b92169190910692915050565b8082028115828204841417610d7857610d786154a1565b805182526000602067ffffffffffffffff81840151168185015260408084015160a0604087015261560760a0870182614856565b9050606085015186820360608801526156208282614856565b608087810151898303918a01919091528051808352908601935060009250908501905b8083101561546557835180516001600160a01b0316835286015186830152928501926001929092019190840190615643565b602081526000610d7560208301846155d3565b60808152600061569b60808301876155d3565b61ffff9590951660208301525060408101929092526001600160a01b0316606090910152919050565b6000806000606084860312156156d957600080fd5b83516156e481613fe6565b602085015190935067ffffffffffffffff81111561570157600080fd5b8401601f8101861361571257600080fd5b805161572061404682613fff565b81815287602083850101111561573557600080fd5b615746826020830160208601614832565b809450505050604084015190509250925092565b600181811c9082168061576e57607f821691505b60208210810361578e57634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115610724576000816000526020600020601f850160051c810160208610156157bd5750805b601f850160051c820191505b818110156157dc578281556001016157c9565b505050505050565b815167ffffffffffffffff8111156157fe576157fe613e94565b6158128161580c845461575a565b84615794565b602080601f831160018114615847576000841561582f5750858301515b600019600386901b1c1916600185901b1785556157dc565b600085815260208120601f198616915b8281101561587657888601518255948401946001909101908401615857565b50858210156158945787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6000602080835283546001600160a01b038116602085015260ff8160a01c161515604085015267ffffffffffffffff8160a81c166060850152506001808501608080860152600081546158f68161575a565b8060a089015260c06001831660008114615917576001811461593357615963565b60ff19841660c08b015260c083151560051b8b01019450615963565b85600052602060002060005b8481101561595a5781548c820185015290880190890161593f565b8b0160c0019550505b50929998505050505050505050565b80820180821115610d7857610d786154a1565b60ff8181168382160190811115610d7857610d786154a1565b8183823760009101908152919050565b828152606082602083013760800192915050565b600067ffffffffffffffff808416806159dd576159dd61557f565b92169190910492915050565b6000808335601e19843603018112615a0057600080fd5b83018035915067ffffffffffffffff821115615a1b57600080fd5b60200191503681900382131561382c57600080fd5b6020810160058310615a4457615a44614a67565b91905290565b60ff81811683821602908116908181146154d8576154d86154a1565b600060a0820160ff881683526020878185015260a0604085015281875480845260c0860191508860005282600020935060005b81811015615abe5784546001600160a01b031683526001948501949284019201615a99565b50508481036060860152865180825290820192508187019060005b81811015615afe5782516001600160a01b031685529383019391830191600101615ad9565b50505060ff85166080850152509050611efb565b600067ffffffffffffffff808616835280851660208401525060606040830152614c9b6060830184614856565b8281526040602082015260006136b96040830184614856565b67ffffffffffffffff848116825283166020820152606081016136b96040830184614a7d565b848152615b8e6020820185614a7d565b608060408201526000615ba46080830185614856565b905082606083015295945050505050565b600060208284031215615bc757600080fd5b8151613dc581613fb4565b6020815260008251610100806020850152615bf1610120850183614856565b91506020850151615c0e604086018267ffffffffffffffff169052565b5060408501516001600160a01b038116606086015250606085015160808501526080850151615c4860a08601826001600160a01b03169052565b5060a0850151601f19808685030160c0870152615c658483614856565b935060c08701519150808685030160e0870152615c828483614856565b935060e0870151915080868503018387015250611efb8382614856565b600060208284031215615cb157600080fd5b5051919050565b848152600067ffffffffffffffff808616602084015280851660408401525060806060830152611efb6080830184614856565b86815260c060208201526000615d0460c0830188614856565b6001600160a01b039690961660408301525067ffffffffffffffff9384166060820152608081019290925290911660a09091015292915050565b600082825180855260208086019550808260051b84010181860160005b8481101561534657601f19868403018952815160a08151818652615d8182870182614856565b9150508582015185820387870152615d998282614856565b91505060408083015186830382880152615db38382614856565b92505050606080830151818701525060808083015192508582038187015250615ddc8183614856565b9a86019a9450505090830190600101615d5b565b602081526000610d756020830184615d3e565b60008282518085526020808601955060208260051b8401016020860160005b8481101561534657601f19868403018952615e3e838351614856565b98840198925090830190600101615e22565b604081526000835180516040840152602081015167ffffffffffffffff80821660608601528060408401511660808601528060608401511660a08601528060808401511660c086015250505060208401516101408060e0850152615eb8610180850183614856565b91506040860151603f198086850301610100870152615ed78483614856565b935060608801519150615ef66101208701836001600160a01b03169052565b60808801518387015260a0880151925080868503016101608701525050615f1d8282615d3e565b9150508281036020840152614c9b8185615e0356fea164736f6c6343000818000a", } var OffRampABI = OffRampMetaData.ABI diff --git a/core/gethwrappers/ccip/generation/generated-wrapper-dependency-versions-do-not-edit.txt b/core/gethwrappers/ccip/generation/generated-wrapper-dependency-versions-do-not-edit.txt index 28ee860683..f8c68c9d41 100644 --- a/core/gethwrappers/ccip/generation/generated-wrapper-dependency-versions-do-not-edit.txt +++ b/core/gethwrappers/ccip/generation/generated-wrapper-dependency-versions-do-not-edit.txt @@ -23,7 +23,7 @@ multi_aggregate_rate_limiter: ../../../contracts/solc/v0.8.24/MultiAggregateRate multi_ocr3_helper: ../../../contracts/solc/v0.8.24/MultiOCR3Helper/MultiOCR3Helper.abi ../../../contracts/solc/v0.8.24/MultiOCR3Helper/MultiOCR3Helper.bin 6b56e0114a4d50797d30a34aecc2641ef340451d0c3fcb9d729bba4df2435122 nonce_manager: ../../../contracts/solc/v0.8.24/NonceManager/NonceManager.abi ../../../contracts/solc/v0.8.24/NonceManager/NonceManager.bin 6f64e1083b356c06ee66b9138e398b9c97a4cd3e8c9ec38cf3010cebc79af536 ocr3_config_encoder: ../../../contracts/solc/v0.8.24/IOCR3ConfigEncoder/IOCR3ConfigEncoder.abi ../../../contracts/solc/v0.8.24/IOCR3ConfigEncoder/IOCR3ConfigEncoder.bin 9254b35a86f00fde7b7193a033ca58f6521a66e87b9cf9da6ce5660082e79f5d -offramp: ../../../contracts/solc/v0.8.24/OffRamp/OffRamp.abi ../../../contracts/solc/v0.8.24/OffRamp/OffRamp.bin 741b4b66670c06c1b09408ec6706656c46e4c98b227111d99f80940cc5faad42 +offramp: ../../../contracts/solc/v0.8.24/OffRamp/OffRamp.abi ../../../contracts/solc/v0.8.24/OffRamp/OffRamp.bin 114ffc506a8b5dbe7b1b7b3bcd9e0bd8fee321d48e5ba74fa503168b7777b502 onramp: ../../../contracts/solc/v0.8.24/OnRamp/OnRamp.abi ../../../contracts/solc/v0.8.24/OnRamp/OnRamp.bin c37096aaa0369ad988e94c300ba62917e17fcc71a3c1aa3e9b8420f21c0591d2 ping_pong_demo: ../../../contracts/solc/v0.8.24/PingPongDemo/PingPongDemo.abi ../../../contracts/solc/v0.8.24/PingPongDemo/PingPongDemo.bin c1c2f8a65c7ffd971899cae7fe62f2da57d09e936151e2b92163c4bebe699d6b price_registry: ../../../contracts/solc/v0.8.24/PriceRegistry/PriceRegistry.abi ../../../contracts/solc/v0.8.24/PriceRegistry/PriceRegistry.bin e7781d600c1bb7aa4620106af7f6e146a109b97f4cb6a7d06c9e15773340ecb2 From 72b52e8e4b01d4deb069077f92d24325042ccdb2 Mon Sep 17 00:00:00 2001 From: Ryan <80392855+RayXpub@users.noreply.github.com> Date: Tue, 10 Sep 2024 09:39:55 +0400 Subject: [PATCH 03/19] chore: fmt --- contracts/src/v0.8/ccip/test/offRamp/OffRamp.t.sol | 1 - 1 file changed, 1 deletion(-) diff --git a/contracts/src/v0.8/ccip/test/offRamp/OffRamp.t.sol b/contracts/src/v0.8/ccip/test/offRamp/OffRamp.t.sol index 8d396fbed5..290f03673c 100644 --- a/contracts/src/v0.8/ccip/test/offRamp/OffRamp.t.sol +++ b/contracts/src/v0.8/ccip/test/offRamp/OffRamp.t.sol @@ -3060,7 +3060,6 @@ contract OffRamp_applySourceChainConfigUpdates is OffRampSetup { sourceChainConfigs[0].onRamp = ON_RAMP_ADDRESS_2; - vm.expectEmit(); emit OffRamp.SourceChainConfigSet( SOURCE_CHAIN_SELECTOR_1, From 4456bc5903fca584ac31264a3bb2aa8d510c843c Mon Sep 17 00:00:00 2001 From: Ryan <80392855+RayXpub@users.noreply.github.com> Date: Wed, 11 Sep 2024 12:19:33 +0400 Subject: [PATCH 04/19] chore: add onRamp check in commit and add conditions for onRamp update --- contracts/gas-snapshots/ccip.gas-snapshot | 1968 ++++++++--------- contracts/src/v0.8/ccip/offRamp/OffRamp.sol | 18 +- .../v0.8/ccip/test/e2e/MultiRampsEnd2End.sol | 4 +- .../src/v0.8/ccip/test/offRamp/OffRamp.t.sol | 43 +- .../ccip/generated/offramp/offramp.go | 4 +- ...rapper-dependency-versions-do-not-edit.txt | 2 +- 6 files changed, 1022 insertions(+), 1017 deletions(-) diff --git a/contracts/gas-snapshots/ccip.gas-snapshot b/contracts/gas-snapshots/ccip.gas-snapshot index bf0b6d1adf..ed7fde38eb 100644 --- a/contracts/gas-snapshots/ccip.gas-snapshot +++ b/contracts/gas-snapshots/ccip.gas-snapshot @@ -1,984 +1,984 @@ -ARMProxyStandaloneTest:test_ARMCallEmptyContractRevert() (gas: 19675) -ARMProxyStandaloneTest:test_Constructor() (gas: 315049) -ARMProxyStandaloneTest:test_SetARM() (gas: 16581) -ARMProxyStandaloneTest:test_SetARMzero() (gas: 11267) -ARMProxyTest:test_ARMCallRevertReasonForwarded() (gas: 47868) -ARMProxyTest:test_ARMIsBlessed_Success() (gas: 36334) -ARMProxyTest:test_ARMIsCursed_Success() (gas: 49833) -AggregateTokenLimiter_constructor:test_Constructor_Success() (gas: 26992) -AggregateTokenLimiter_getTokenBucket:test_GetTokenBucket_Success() (gas: 19835) -AggregateTokenLimiter_getTokenBucket:test_Refill_Success() (gas: 41499) -AggregateTokenLimiter_getTokenBucket:test_TimeUnderflow_Revert() (gas: 15446) -AggregateTokenLimiter_getTokenLimitAdmin:test_GetTokenLimitAdmin_Success() (gas: 10531) -AggregateTokenLimiter_getTokenValue:test_GetTokenValue_Success() (gas: 19674) -AggregateTokenLimiter_getTokenValue:test_NoTokenPrice_Reverts() (gas: 21259) -AggregateTokenLimiter_rateLimitValue:test_AggregateValueMaxCapacityExceeded_Revert() (gas: 16508) -AggregateTokenLimiter_rateLimitValue:test_RateLimitValueSuccess_gas() (gas: 18348) -AggregateTokenLimiter_setAdmin:test_OnlyOwnerOrAdmin_Revert() (gas: 13054) -AggregateTokenLimiter_setAdmin:test_Owner_Success() (gas: 18998) -AggregateTokenLimiter_setRateLimiterConfig:test_OnlyOnlyCallableByAdminOrOwner_Revert() (gas: 17510) -AggregateTokenLimiter_setRateLimiterConfig:test_Owner_Success() (gas: 30230) -AggregateTokenLimiter_setRateLimiterConfig:test_TokenLimitAdmin_Success() (gas: 32244) -BurnFromMintTokenPool_lockOrBurn:test_ChainNotAllowed_Revert() (gas: 28779) -BurnFromMintTokenPool_lockOrBurn:test_PoolBurnRevertNotHealthy_Revert() (gas: 55124) -BurnFromMintTokenPool_lockOrBurn:test_PoolBurn_Success() (gas: 243680) -BurnFromMintTokenPool_lockOrBurn:test_Setup_Success() (gas: 23947) -BurnMintTokenPool_lockOrBurn:test_ChainNotAllowed_Revert() (gas: 27546) -BurnMintTokenPool_lockOrBurn:test_PoolBurnRevertNotHealthy_Revert() (gas: 55130) -BurnMintTokenPool_lockOrBurn:test_PoolBurn_Success() (gas: 241573) -BurnMintTokenPool_lockOrBurn:test_Setup_Success() (gas: 17677) -BurnMintTokenPool_releaseOrMint:test_ChainNotAllowed_Revert() (gas: 28775) -BurnMintTokenPool_releaseOrMint:test_PoolMintNotHealthy_Revert() (gas: 56211) -BurnMintTokenPool_releaseOrMint:test_PoolMint_Success() (gas: 112343) -BurnWithFromMintTokenPool_lockOrBurn:test_ChainNotAllowed_Revert() (gas: 28779) -BurnWithFromMintTokenPool_lockOrBurn:test_PoolBurnRevertNotHealthy_Revert() (gas: 55124) -BurnWithFromMintTokenPool_lockOrBurn:test_PoolBurn_Success() (gas: 243707) -BurnWithFromMintTokenPool_lockOrBurn:test_Setup_Success() (gas: 23951) -CCIPClientExample_sanity:test_ImmutableExamples_Success() (gas: 2096747) -CCIPConfigSetup:test_getCapabilityConfiguration_Success() (gas: 9539) -CCIPConfig_ConfigStateMachine:test__computeConfigDigest_Success() (gas: 66088) -CCIPConfig_ConfigStateMachine:test__computeNewConfigWithMeta_InitToRunning_Success() (gas: 358063) -CCIPConfig_ConfigStateMachine:test__computeNewConfigWithMeta_RunningToStaging_Success() (gas: 474771) -CCIPConfig_ConfigStateMachine:test__computeNewConfigWithMeta_StagingToRunning_Success() (gas: 441974) -CCIPConfig_ConfigStateMachine:test__groupByPluginType_TooManyOCR3Configs_Reverts() (gas: 33804) -CCIPConfig_ConfigStateMachine:test__groupByPluginType_threeCommitConfigs_Reverts() (gas: 56870) -CCIPConfig_ConfigStateMachine:test__groupByPluginType_threeExecutionConfigs_Reverts() (gas: 56808) -CCIPConfig_ConfigStateMachine:test__stateFromConfigLength_Success() (gas: 11719) -CCIPConfig_ConfigStateMachine:test__validateConfigStateTransition_Success() (gas: 8780) -CCIPConfig_ConfigStateMachine:test__validateConfigTransition_InitToRunning_Success() (gas: 309744) -CCIPConfig_ConfigStateMachine:test__validateConfigTransition_InitToRunning_WrongConfigCount_Reverts() (gas: 45887) -CCIPConfig_ConfigStateMachine:test__validateConfigTransition_NonExistentConfigTransition_Reverts() (gas: 29690) -CCIPConfig_ConfigStateMachine:test__validateConfigTransition_RunningToStaging_Success() (gas: 370075) -CCIPConfig_ConfigStateMachine:test__validateConfigTransition_RunningToStaging_WrongConfigCount_Reverts() (gas: 111442) -CCIPConfig_ConfigStateMachine:test__validateConfigTransition_RunningToStaging_WrongConfigDigestBlueGreen_Reverts() (gas: 145556) -CCIPConfig_ConfigStateMachine:test__validateConfigTransition_StagingToRunning_Success() (gas: 369851) -CCIPConfig_ConfigStateMachine:test__validateConfigTransition_StagingToRunning_WrongConfigDigest_Reverts() (gas: 145623) -CCIPConfig_ConfigStateMachine:test_getCapabilityConfiguration_Success() (gas: 9627) -CCIPConfig_beforeCapabilityConfigSet:test_beforeCapabilityConfigSet_CommitAndExecConfig_Success() (gas: 1752579) -CCIPConfig_beforeCapabilityConfigSet:test_beforeCapabilityConfigSet_CommitConfigOnly_Success() (gas: 1019042) -CCIPConfig_beforeCapabilityConfigSet:test_beforeCapabilityConfigSet_ExecConfigOnly_Success() (gas: 1019073) -CCIPConfig_beforeCapabilityConfigSet:test_beforeCapabilityConfigSet_OnlyCapabilitiesRegistryCanCall_Reverts() (gas: 9611) -CCIPConfig_beforeCapabilityConfigSet:test_beforeCapabilityConfigSet_ZeroLengthConfig_Success() (gas: 15996) -CCIPConfig_beforeCapabilityConfigSet:test_getCapabilityConfiguration_Success() (gas: 9627) -CCIPConfig_chainConfig:test__applyChainConfigUpdates_FChainNotPositive_Reverts() (gas: 184771) -CCIPConfig_chainConfig:test_applyChainConfigUpdates_addChainConfigs_Success() (gas: 344939) -CCIPConfig_chainConfig:test_applyChainConfigUpdates_nodeNotInRegistry_Reverts() (gas: 20340) -CCIPConfig_chainConfig:test_applyChainConfigUpdates_removeChainConfigs_Success() (gas: 267596) -CCIPConfig_chainConfig:test_applyChainConfigUpdates_selectorNotFound_Reverts() (gas: 14819) -CCIPConfig_chainConfig:test_getCapabilityConfiguration_Success() (gas: 9648) -CCIPConfig_chainConfig:test_getPaginatedCCIPConfigs_Success() (gas: 370293) -CCIPConfig_constructor:test_constructor_Success() (gas: 3334093) -CCIPConfig_constructor:test_constructor_ZeroAddressNotAllowed_Revert() (gas: 61438) -CCIPConfig_updatePluginConfig:test__updatePluginConfig_InitToRunning_Success() (gas: 1008449) -CCIPConfig_updatePluginConfig:test__updatePluginConfig_InvalidConfigLength_Reverts() (gas: 25584) -CCIPConfig_updatePluginConfig:test__updatePluginConfig_InvalidConfigStateTransition_Reverts() (gas: 21799) -CCIPConfig_updatePluginConfig:test__updatePluginConfig_RunningToStaging_Success() (gas: 1895621) -CCIPConfig_updatePluginConfig:test__updatePluginConfig_StagingToRunning_Success() (gas: 2465231) -CCIPConfig_updatePluginConfig:test_getCapabilityConfiguration_Success() (gas: 9627) -CCIPConfig_validateConfig:test__validateConfig_ABIEncodedAddress_OfframpAddressCannotBeZero_Reverts() (gas: 290828) -CCIPConfig_validateConfig:test__validateConfig_ChainSelectorNotFound_Reverts() (gas: 293559) -CCIPConfig_validateConfig:test__validateConfig_ChainSelectorNotSet_Reverts() (gas: 290461) -CCIPConfig_validateConfig:test__validateConfig_FMustBePositive_Reverts() (gas: 291668) -CCIPConfig_validateConfig:test__validateConfig_FTooHigh_Reverts() (gas: 291766) -CCIPConfig_validateConfig:test__validateConfig_NodeNotInRegistry_Reverts() (gas: 344947) -CCIPConfig_validateConfig:test__validateConfig_NotEnoughTransmitters_Reverts() (gas: 1208593) -CCIPConfig_validateConfig:test__validateConfig_OfframpAddressCannotBeZero_Reverts() (gas: 290544) -CCIPConfig_validateConfig:test__validateConfig_P2PIdsLengthNotMatching_Reverts() (gas: 292459) -CCIPConfig_validateConfig:test__validateConfig_Success() (gas: 299632) -CCIPConfig_validateConfig:test__validateConfig_TooManySigners_Reverts() (gas: 493084) -CCIPConfig_validateConfig:test_getCapabilityConfiguration_Success() (gas: 9606) -CommitStore_constructor:test_Constructor_Success() (gas: 3013980) -CommitStore_isUnpausedAndRMNHealthy:test_RMN_Success() (gas: 73477) -CommitStore_report:test_InvalidIntervalMinLargerThanMax_Revert() (gas: 28676) -CommitStore_report:test_InvalidInterval_Revert() (gas: 28616) -CommitStore_report:test_InvalidRootRevert() (gas: 27849) -CommitStore_report:test_OnlyGasPriceUpdates_Success() (gas: 53290) -CommitStore_report:test_OnlyPriceUpdateStaleReport_Revert() (gas: 59092) -CommitStore_report:test_OnlyTokenPriceUpdates_Success() (gas: 53288) -CommitStore_report:test_Paused_Revert() (gas: 21262) -CommitStore_report:test_ReportAndPriceUpdate_Success() (gas: 84276) -CommitStore_report:test_ReportOnlyRootSuccess_gas() (gas: 56258) -CommitStore_report:test_RootAlreadyCommitted_Revert() (gas: 63984) -CommitStore_report:test_StaleReportWithRoot_Success() (gas: 119394) -CommitStore_report:test_Unhealthy_Revert() (gas: 44754) -CommitStore_report:test_ValidPriceUpdateThenStaleReportWithRoot_Success() (gas: 100782) -CommitStore_report:test_ZeroEpochAndRound_Revert() (gas: 27632) -CommitStore_resetUnblessedRoots:test_OnlyOwner_Revert() (gas: 11331) -CommitStore_resetUnblessedRoots:test_ResetUnblessedRoots_Success() (gas: 143814) -CommitStore_setDynamicConfig:test_InvalidCommitStoreConfig_Revert() (gas: 37263) -CommitStore_setDynamicConfig:test_OnlyOwner_Revert() (gas: 37405) -CommitStore_setDynamicConfig:test_PriceEpochCleared_Success() (gas: 129131) -CommitStore_setLatestPriceEpochAndRound:test_OnlyOwner_Revert() (gas: 11054) -CommitStore_setLatestPriceEpochAndRound:test_SetLatestPriceEpochAndRound_Success() (gas: 20645) -CommitStore_setMinSeqNr:test_OnlyOwner_Revert() (gas: 11053) -CommitStore_verify:test_Blessed_Success() (gas: 96452) -CommitStore_verify:test_NotBlessed_Success() (gas: 61398) -CommitStore_verify:test_Paused_Revert() (gas: 18505) -CommitStore_verify:test_TooManyLeaves_Revert() (gas: 36797) -DefensiveExampleTest:test_HappyPath_Success() (gas: 200047) -DefensiveExampleTest:test_Recovery() (gas: 424294) -E2E:test_E2E_3MessagesSuccess_gas() (gas: 1101943) -EVM2EVMOffRamp__releaseOrMintToken:test__releaseOrMintToken_NotACompatiblePool_Revert() (gas: 37818) -EVM2EVMOffRamp__releaseOrMintToken:test__releaseOrMintToken_Success() (gas: 103820) -EVM2EVMOffRamp__releaseOrMintToken:test__releaseOrMintToken_TokenHandlingError_transfer_Revert() (gas: 85333) -EVM2EVMOffRamp__releaseOrMintToken:test_releaseOrMintToken_InvalidDataLength_Revert() (gas: 36843) -EVM2EVMOffRamp__releaseOrMintToken:test_releaseOrMintToken_ReleaseOrMintBalanceMismatch_Revert() (gas: 94389) -EVM2EVMOffRamp__releaseOrMintToken:test_releaseOrMintToken_TokenHandlingError_BalanceOf_Revert() (gas: 39813) -EVM2EVMOffRamp__releaseOrMintToken:test_releaseOrMintToken_skip_ReleaseOrMintBalanceMismatch_if_pool_Revert() (gas: 86631) -EVM2EVMOffRamp__releaseOrMintTokens:test_OverValueWithARLOff_Success() (gas: 385756) -EVM2EVMOffRamp__releaseOrMintTokens:test_PriceNotFoundForToken_Reverts() (gas: 142019) -EVM2EVMOffRamp__releaseOrMintTokens:test_RateLimitErrors_Reverts() (gas: 804151) -EVM2EVMOffRamp__releaseOrMintTokens:test_TokenHandlingError_Reverts() (gas: 179460) -EVM2EVMOffRamp__releaseOrMintTokens:test__releaseOrMintTokens_NotACompatiblePool_Reverts() (gas: 29243) -EVM2EVMOffRamp__releaseOrMintTokens:test_releaseOrMintTokens_InvalidDataLengthReturnData_Revert() (gas: 66504) -EVM2EVMOffRamp__releaseOrMintTokens:test_releaseOrMintTokens_InvalidEVMAddress_Revert() (gas: 43320) -EVM2EVMOffRamp__releaseOrMintTokens:test_releaseOrMintTokens_Success() (gas: 211280) -EVM2EVMOffRamp__releaseOrMintTokens:test_releaseOrMintTokens_destDenominatedDecimals_Success() (gas: 222532) -EVM2EVMOffRamp__report:test_Report_Success() (gas: 126703) -EVM2EVMOffRamp__trialExecute:test_RateLimitError_Success() (gas: 238004) -EVM2EVMOffRamp__trialExecute:test_TokenHandlingErrorIsCaught_Success() (gas: 246604) -EVM2EVMOffRamp__trialExecute:test_TokenPoolIsNotAContract_Success() (gas: 330188) -EVM2EVMOffRamp__trialExecute:test_trialExecute_Success() (gas: 312619) -EVM2EVMOffRamp_ccipReceive:test_Reverts() (gas: 17033) -EVM2EVMOffRamp_constructor:test_CommitStoreAlreadyInUse_Revert() (gas: 153548) -EVM2EVMOffRamp_constructor:test_Constructor_Success() (gas: 5549627) -EVM2EVMOffRamp_constructor:test_ZeroOnRampAddress_Revert() (gas: 144282) -EVM2EVMOffRamp_execute:test_EmptyReport_Revert() (gas: 21321) -EVM2EVMOffRamp_execute:test_InvalidMessageId_Revert() (gas: 36558) -EVM2EVMOffRamp_execute:test_InvalidSourceChain_Revert() (gas: 51775) -EVM2EVMOffRamp_execute:test_InvalidSourcePoolAddress_Success() (gas: 474025) -EVM2EVMOffRamp_execute:test_ManualExecutionNotYetEnabled_Revert() (gas: 47830) -EVM2EVMOffRamp_execute:test_MessageTooLarge_Revert() (gas: 152518) -EVM2EVMOffRamp_execute:test_Paused_Revert() (gas: 103046) -EVM2EVMOffRamp_execute:test_ReceiverError_Success() (gas: 164107) -EVM2EVMOffRamp_execute:test_RetryFailedMessageWithoutManualExecution_Success() (gas: 178568) -EVM2EVMOffRamp_execute:test_RootNotCommitted_Revert() (gas: 42701) -EVM2EVMOffRamp_execute:test_SingleMessageNoTokensUnordered_Success() (gas: 157899) -EVM2EVMOffRamp_execute:test_SingleMessageNoTokens_Success() (gas: 173184) -EVM2EVMOffRamp_execute:test_SingleMessageToNonCCIPReceiver_Success() (gas: 247246) -EVM2EVMOffRamp_execute:test_SingleMessagesNoTokensSuccess_gas() (gas: 113971) -EVM2EVMOffRamp_execute:test_SkippedIncorrectNonceStillExecutes_Success() (gas: 408147) -EVM2EVMOffRamp_execute:test_SkippedIncorrectNonce_Success() (gas: 54294) -EVM2EVMOffRamp_execute:test_StrictUntouchedToSuccess_Success() (gas: 131317) -EVM2EVMOffRamp_execute:test_TokenDataMismatch_Revert() (gas: 52249) -EVM2EVMOffRamp_execute:test_TwoMessagesWithTokensAndGE_Success() (gas: 564489) -EVM2EVMOffRamp_execute:test_TwoMessagesWithTokensSuccess_gas() (gas: 495004) -EVM2EVMOffRamp_execute:test_UnexpectedTokenData_Revert() (gas: 35497) -EVM2EVMOffRamp_execute:test_Unhealthy_Revert() (gas: 545754) -EVM2EVMOffRamp_execute:test_UnsupportedNumberOfTokens_Revert() (gas: 64497) -EVM2EVMOffRamp_execute:test__execute_SkippedAlreadyExecutedMessageUnordered_Success() (gas: 122676) -EVM2EVMOffRamp_execute:test__execute_SkippedAlreadyExecutedMessage_Success() (gas: 142850) -EVM2EVMOffRamp_execute:test_execute_RouterYULCall_Success() (gas: 427538) -EVM2EVMOffRamp_executeSingleMessage:test_MessageSender_Revert() (gas: 18502) -EVM2EVMOffRamp_executeSingleMessage:test_NonContractWithTokens_Success() (gas: 278406) -EVM2EVMOffRamp_executeSingleMessage:test_NonContract_Success() (gas: 18668) -EVM2EVMOffRamp_executeSingleMessage:test_TokenHandlingError_Revert() (gas: 224131) -EVM2EVMOffRamp_executeSingleMessage:test_ZeroGasDONExecution_Revert() (gas: 47926) -EVM2EVMOffRamp_executeSingleMessage:test_executeSingleMessage_NoTokens_Success() (gas: 47403) -EVM2EVMOffRamp_executeSingleMessage:test_executeSingleMessage_WithTokens_Success() (gas: 314268) -EVM2EVMOffRamp_executeSingleMessage:test_executeSingleMessage_ZeroGasZeroData_Success() (gas: 70065) -EVM2EVMOffRamp_execute_upgrade:test_V2NonceNewSenderStartsAtZero_Success() (gas: 229454) -EVM2EVMOffRamp_execute_upgrade:test_V2NonceStartsAtV1Nonce_Success() (gas: 276982) -EVM2EVMOffRamp_execute_upgrade:test_V2OffRampNonceSkipsIfMsgInFlight_Success() (gas: 258834) -EVM2EVMOffRamp_execute_upgrade:test_V2SenderNoncesReadsPreviousRamp_Success() (gas: 226442) -EVM2EVMOffRamp_execute_upgrade:test_V2_Success() (gas: 130811) -EVM2EVMOffRamp_getAllRateLimitTokens:test_GetAllRateLimitTokens_Success() (gas: 38446) -EVM2EVMOffRamp_getExecutionState:test_FillExecutionState_Success() (gas: 3251974) -EVM2EVMOffRamp_getExecutionState:test_GetExecutionState_Success() (gas: 83387) -EVM2EVMOffRamp_manuallyExecute:test_ManualExecFailedTx_Revert() (gas: 185967) -EVM2EVMOffRamp_manuallyExecute:test_ManualExecForkedChain_Revert() (gas: 27052) -EVM2EVMOffRamp_manuallyExecute:test_ManualExecGasLimitMismatch_Revert() (gas: 45200) -EVM2EVMOffRamp_manuallyExecute:test_ManualExecInvalidGasLimit_Revert() (gas: 27471) -EVM2EVMOffRamp_manuallyExecute:test_ManualExecWithMultipleMessagesAndSourceTokens_Success() (gas: 530877) -EVM2EVMOffRamp_manuallyExecute:test_ManualExecWithSourceTokens_Success() (gas: 346127) -EVM2EVMOffRamp_manuallyExecute:test_ManualExec_Success() (gas: 187459) -EVM2EVMOffRamp_manuallyExecute:test_ReentrancyManualExecuteFails_Success() (gas: 2258388) -EVM2EVMOffRamp_manuallyExecute:test_manuallyExecute_DestinationGasAmountCountMismatch_Revert() (gas: 363340) -EVM2EVMOffRamp_manuallyExecute:test_manuallyExecute_DoesNotRevertIfUntouched_Success() (gas: 143972) -EVM2EVMOffRamp_manuallyExecute:test_manuallyExecute_InvalidTokenGasOverride_Revert() (gas: 366479) -EVM2EVMOffRamp_manuallyExecute:test_manuallyExecute_LowGasLimitManualExec_Success() (gas: 482796) -EVM2EVMOffRamp_manuallyExecute:test_manuallyExecute_WithGasOverride_Success() (gas: 189862) -EVM2EVMOffRamp_manuallyExecute:test_manuallyExecute_WithInvalidReceiverExecutionGasOverride_Revert() (gas: 153716) -EVM2EVMOffRamp_manuallyExecute:test_manuallyExecute_WithInvalidSourceTokenDataCount_Revert() (gas: 59897) -EVM2EVMOffRamp_metadataHash:test_MetadataHash_Success() (gas: 8865) -EVM2EVMOffRamp_setDynamicConfig:test_NonOwner_Revert() (gas: 40162) -EVM2EVMOffRamp_setDynamicConfig:test_RouterZeroAddress_Revert() (gas: 38239) -EVM2EVMOffRamp_setDynamicConfig:test_SetDynamicConfig_Success() (gas: 141938) -EVM2EVMOffRamp_updateRateLimitTokens:test_updateRateLimitTokens_AddsAndRemoves_Success() (gas: 162528) -EVM2EVMOffRamp_updateRateLimitTokens:test_updateRateLimitTokens_NonOwner_Revert() (gas: 16699) -EVM2EVMOffRamp_updateRateLimitTokens:test_updateRateLimitTokens_Success() (gas: 197728) -EVM2EVMOnRamp_constructor:test_Constructor_Success() (gas: 5431520) -EVM2EVMOnRamp_forwardFromRouter:test_CannotSendZeroTokens_Revert() (gas: 35835) -EVM2EVMOnRamp_forwardFromRouter:test_EnforceOutOfOrder_Revert() (gas: 98584) -EVM2EVMOnRamp_forwardFromRouter:test_ForwardFromRouterExtraArgsV2AllowOutOfOrderTrue_Success() (gas: 114231) -EVM2EVMOnRamp_forwardFromRouter:test_ForwardFromRouterExtraArgsV2_Success() (gas: 114273) -EVM2EVMOnRamp_forwardFromRouter:test_ForwardFromRouterSuccessCustomExtraArgs() (gas: 130246) -EVM2EVMOnRamp_forwardFromRouter:test_ForwardFromRouterSuccessLegacyExtraArgs() (gas: 138686) -EVM2EVMOnRamp_forwardFromRouter:test_ForwardFromRouter_Success() (gas: 129865) -EVM2EVMOnRamp_forwardFromRouter:test_InvalidAddressEncodePacked_Revert() (gas: 38314) -EVM2EVMOnRamp_forwardFromRouter:test_InvalidAddress_Revert() (gas: 38497) -EVM2EVMOnRamp_forwardFromRouter:test_InvalidChainSelector_Revert() (gas: 25534) -EVM2EVMOnRamp_forwardFromRouter:test_InvalidExtraArgsTag_Revert() (gas: 25320) -EVM2EVMOnRamp_forwardFromRouter:test_MaxCapacityExceeded_Revert() (gas: 86160) -EVM2EVMOnRamp_forwardFromRouter:test_MaxFeeBalanceReached_Revert() (gas: 36514) -EVM2EVMOnRamp_forwardFromRouter:test_MessageGasLimitTooHigh_Revert() (gas: 29078) -EVM2EVMOnRamp_forwardFromRouter:test_MessageTooLarge_Revert() (gas: 107622) -EVM2EVMOnRamp_forwardFromRouter:test_OriginalSender_Revert() (gas: 22724) -EVM2EVMOnRamp_forwardFromRouter:test_OverValueWithARLOff_Success() (gas: 227461) -EVM2EVMOnRamp_forwardFromRouter:test_Paused_Revert() (gas: 53150) -EVM2EVMOnRamp_forwardFromRouter:test_Permissions_Revert() (gas: 25559) -EVM2EVMOnRamp_forwardFromRouter:test_PriceNotFoundForToken_Revert() (gas: 59500) -EVM2EVMOnRamp_forwardFromRouter:test_ShouldIncrementNonceOnlyOnOrdered_Success() (gas: 179442) -EVM2EVMOnRamp_forwardFromRouter:test_ShouldIncrementSeqNumAndNonce_Success() (gas: 177724) -EVM2EVMOnRamp_forwardFromRouter:test_ShouldStoreNonLinkFees() (gas: 137377) -EVM2EVMOnRamp_forwardFromRouter:test_SourceTokenDataTooLarge_Revert() (gas: 3772676) -EVM2EVMOnRamp_forwardFromRouter:test_TooManyTokens_Revert() (gas: 30244) -EVM2EVMOnRamp_forwardFromRouter:test_Unhealthy_Revert() (gas: 43342) -EVM2EVMOnRamp_forwardFromRouter:test_UnsupportedToken_Revert() (gas: 109440) -EVM2EVMOnRamp_forwardFromRouter:test_ZeroAddressReceiver_Revert() (gas: 313095) -EVM2EVMOnRamp_forwardFromRouter:test_forwardFromRouter_ShouldStoreLinkFees_Success() (gas: 112430) -EVM2EVMOnRamp_forwardFromRouter:test_forwardFromRouter_UnsupportedToken_Revert() (gas: 72269) -EVM2EVMOnRamp_forwardFromRouter:test_forwardFromRouter_correctSourceTokenData_Success() (gas: 713890) -EVM2EVMOnRamp_forwardFromRouter_upgrade:test_V2NonceNewSenderStartsAtZero_Success() (gas: 147709) -EVM2EVMOnRamp_forwardFromRouter_upgrade:test_V2NonceStartsAtV1Nonce_Success() (gas: 190616) -EVM2EVMOnRamp_forwardFromRouter_upgrade:test_V2SenderNoncesReadsPreviousRamp_Success() (gas: 121404) -EVM2EVMOnRamp_forwardFromRouter_upgrade:test_V2_Success() (gas: 95376) -EVM2EVMOnRamp_getDataAvailabilityCost:test_EmptyMessageCalculatesDataAvailabilityCost_Success() (gas: 20568) -EVM2EVMOnRamp_getDataAvailabilityCost:test_SimpleMessageCalculatesDataAvailabilityCost_Success() (gas: 20936) -EVM2EVMOnRamp_getFee:test_EmptyMessage_Success() (gas: 78401) -EVM2EVMOnRamp_getFee:test_GetFeeOfZeroForTokenMessage_Success() (gas: 81897) -EVM2EVMOnRamp_getFee:test_HighGasMessage_Success() (gas: 234249) -EVM2EVMOnRamp_getFee:test_MessageGasLimitTooHigh_Revert() (gas: 16733) -EVM2EVMOnRamp_getFee:test_MessageTooLarge_Revert() (gas: 95283) -EVM2EVMOnRamp_getFee:test_MessageWithDataAndTokenTransfer_Success() (gas: 160123) -EVM2EVMOnRamp_getFee:test_NotAFeeToken_Revert() (gas: 24113) -EVM2EVMOnRamp_getFee:test_SingleTokenMessage_Success() (gas: 118345) -EVM2EVMOnRamp_getFee:test_TooManyTokens_Revert() (gas: 19914) -EVM2EVMOnRamp_getFee:test_ZeroDataAvailabilityMultiplier_Success() (gas: 64726) -EVM2EVMOnRamp_getSupportedTokens:test_GetSupportedTokens_Revert() (gas: 10460) -EVM2EVMOnRamp_getTokenPool:test_GetTokenPool_Success() (gas: 35195) -EVM2EVMOnRamp_getTokenTransferCost:test_CustomTokenBpsFee_Success() (gas: 45198) -EVM2EVMOnRamp_getTokenTransferCost:test_FeeTokenBpsFee_Success() (gas: 33079) -EVM2EVMOnRamp_getTokenTransferCost:test_LargeTokenTransferChargesMaxFeeAndGas_Success() (gas: 28356) -EVM2EVMOnRamp_getTokenTransferCost:test_MixedTokenTransferFee_Success() (gas: 126939) -EVM2EVMOnRamp_getTokenTransferCost:test_NoTokenTransferChargesZeroFee_Success() (gas: 15250) -EVM2EVMOnRamp_getTokenTransferCost:test_SmallTokenTransferChargesMinFeeAndGas_Success() (gas: 28164) -EVM2EVMOnRamp_getTokenTransferCost:test_UnsupportedToken_Revert() (gas: 21260) -EVM2EVMOnRamp_getTokenTransferCost:test_ZeroAmountTokenTransferChargesMinFeeAndGas_Success() (gas: 28187) -EVM2EVMOnRamp_getTokenTransferCost:test_ZeroFeeConfigChargesMinFee_Success() (gas: 38638) -EVM2EVMOnRamp_getTokenTransferCost:test__getTokenTransferCost_selfServeUsesDefaults_Success() (gas: 29440) -EVM2EVMOnRamp_linkAvailableForPayment:test_InsufficientLinkBalance_Success() (gas: 32621) -EVM2EVMOnRamp_linkAvailableForPayment:test_LinkAvailableForPayment_Success() (gas: 134884) -EVM2EVMOnRamp_payNops:test_AdminPayNops_Success() (gas: 143210) -EVM2EVMOnRamp_payNops:test_InsufficientBalance_Revert() (gas: 29055) -EVM2EVMOnRamp_payNops:test_NoFeesToPay_Revert() (gas: 127424) -EVM2EVMOnRamp_payNops:test_NoNopsToPay_Revert() (gas: 133318) -EVM2EVMOnRamp_payNops:test_NopPayNops_Success() (gas: 146497) -EVM2EVMOnRamp_payNops:test_OwnerPayNops_Success() (gas: 141072) -EVM2EVMOnRamp_payNops:test_PayNopsSuccessAfterSetNops() (gas: 297651) -EVM2EVMOnRamp_payNops:test_WrongPermissions_Revert() (gas: 15300) -EVM2EVMOnRamp_setDynamicConfig:test_SetConfigInvalidConfig_Revert() (gas: 42377) -EVM2EVMOnRamp_setDynamicConfig:test_SetConfigOnlyOwner_Revert() (gas: 21258) -EVM2EVMOnRamp_setDynamicConfig:test_SetDynamicConfig_Success() (gas: 53782) -EVM2EVMOnRamp_setFeeTokenConfig:test_OnlyCallableByOwnerOrAdmin_Revert() (gas: 13470) -EVM2EVMOnRamp_setFeeTokenConfig:test_SetFeeTokenConfigByAdmin_Success() (gas: 16455) -EVM2EVMOnRamp_setFeeTokenConfig:test_SetFeeTokenConfig_Success() (gas: 13994) -EVM2EVMOnRamp_setNops:test_AdminCanSetNops_Success() (gas: 61785) -EVM2EVMOnRamp_setNops:test_IncludesPayment_Success() (gas: 469353) -EVM2EVMOnRamp_setNops:test_LinkTokenCannotBeNop_Revert() (gas: 57276) -EVM2EVMOnRamp_setNops:test_NonOwnerOrAdmin_Revert() (gas: 14677) -EVM2EVMOnRamp_setNops:test_NotEnoughFundsForPayout_Revert() (gas: 84528) -EVM2EVMOnRamp_setNops:test_SetNopsRemovesOldNopsCompletely_Success() (gas: 60673) -EVM2EVMOnRamp_setNops:test_SetNops_Success() (gas: 173821) -EVM2EVMOnRamp_setNops:test_TooManyNops_Revert() (gas: 190350) -EVM2EVMOnRamp_setNops:test_ZeroAddressCannotBeNop_Revert() (gas: 53617) -EVM2EVMOnRamp_setTokenTransferFeeConfig:test__setTokenTransferFeeConfig_InvalidDestBytesOverhead_Revert() (gas: 14499) -EVM2EVMOnRamp_setTokenTransferFeeConfig:test__setTokenTransferFeeConfig_OnlyCallableByOwnerOrAdmin_Revert() (gas: 14283) -EVM2EVMOnRamp_setTokenTransferFeeConfig:test__setTokenTransferFeeConfig_Success() (gas: 84107) -EVM2EVMOnRamp_setTokenTransferFeeConfig:test__setTokenTransferFeeConfig_byAdmin_Success() (gas: 17375) -EVM2EVMOnRamp_withdrawNonLinkFees:test_LinkBalanceNotSettled_Revert() (gas: 83035) -EVM2EVMOnRamp_withdrawNonLinkFees:test_NonOwnerOrAdmin_Revert() (gas: 15275) -EVM2EVMOnRamp_withdrawNonLinkFees:test_SettlingBalance_Success() (gas: 272083) -EVM2EVMOnRamp_withdrawNonLinkFees:test_WithdrawNonLinkFees_Success() (gas: 53458) -EVM2EVMOnRamp_withdrawNonLinkFees:test_WithdrawToZeroAddress_Revert() (gas: 12830) -EtherSenderReceiverTest_ccipReceive:test_ccipReceive_fallbackToWethTransfer() (gas: 96892) -EtherSenderReceiverTest_ccipReceive:test_ccipReceive_happyPath() (gas: 49770) -EtherSenderReceiverTest_ccipReceive:test_ccipReceive_wrongToken() (gas: 17423) -EtherSenderReceiverTest_ccipReceive:test_ccipReceive_wrongTokenAmount() (gas: 15716) -EtherSenderReceiverTest_ccipSend:test_ccipSend_reverts_insufficientFee_feeToken() (gas: 99831) -EtherSenderReceiverTest_ccipSend:test_ccipSend_reverts_insufficientFee_native() (gas: 76099) -EtherSenderReceiverTest_ccipSend:test_ccipSend_reverts_insufficientFee_weth() (gas: 99853) -EtherSenderReceiverTest_ccipSend:test_ccipSend_success_feeToken() (gas: 144833) -EtherSenderReceiverTest_ccipSend:test_ccipSend_success_native() (gas: 80262) -EtherSenderReceiverTest_ccipSend:test_ccipSend_success_nativeExcess() (gas: 80449) -EtherSenderReceiverTest_ccipSend:test_ccipSend_success_weth() (gas: 95902) -EtherSenderReceiverTest_constructor:test_constructor() (gas: 17535) -EtherSenderReceiverTest_getFee:test_getFee() (gas: 27316) -EtherSenderReceiverTest_validateFeeToken:test_validateFeeToken_reverts_feeToken_tokenAmountNotEqualToMsgValue() (gas: 20363) -EtherSenderReceiverTest_validateFeeToken:test_validateFeeToken_valid_feeToken() (gas: 16718) -EtherSenderReceiverTest_validateFeeToken:test_validateFeeToken_valid_native() (gas: 16657) -EtherSenderReceiverTest_validatedMessage:test_validatedMessage_dataOverwrittenToMsgSender() (gas: 25415) -EtherSenderReceiverTest_validatedMessage:test_validatedMessage_emptyDataOverwrittenToMsgSender() (gas: 25265) -EtherSenderReceiverTest_validatedMessage:test_validatedMessage_invalidTokenAmounts() (gas: 17907) -EtherSenderReceiverTest_validatedMessage:test_validatedMessage_tokenOverwrittenToWeth() (gas: 25287) -EtherSenderReceiverTest_validatedMessage:test_validatedMessage_validMessage_extraArgs() (gas: 26316) -FeeQuoter_applyDestChainConfigUpdates:test_InvalidChainFamilySelector_Revert() (gas: 16509) -FeeQuoter_applyDestChainConfigUpdates:test_InvalidDestChainConfigDestChainSelectorEqZero_Revert() (gas: 16423) -FeeQuoter_applyDestChainConfigUpdates:test_applyDestChainConfigUpdatesDefaultTxGasLimitEqZero_Revert() (gas: 16465) -FeeQuoter_applyDestChainConfigUpdates:test_applyDestChainConfigUpdatesDefaultTxGasLimitGtMaxPerMessageGasLimit_Revert() (gas: 39969) -FeeQuoter_applyDestChainConfigUpdates:test_applyDestChainConfigUpdatesZeroIntput_Success() (gas: 12342) -FeeQuoter_applyDestChainConfigUpdates:test_applyDestChainConfigUpdates_Success() (gas: 135942) -FeeQuoter_applyFeeTokensUpdates:test_ApplyFeeTokensUpdates_Success() (gas: 79906) -FeeQuoter_applyFeeTokensUpdates:test_OnlyCallableByOwner_Revert() (gas: 12615) -FeeQuoter_applyPremiumMultiplierWeiPerEthUpdates:test_OnlyCallableByOwnerOrAdmin_Revert() (gas: 11433) -FeeQuoter_applyPremiumMultiplierWeiPerEthUpdates:test_applyPremiumMultiplierWeiPerEthUpdatesMultipleTokens_Success() (gas: 54213) -FeeQuoter_applyPremiumMultiplierWeiPerEthUpdates:test_applyPremiumMultiplierWeiPerEthUpdatesSingleToken_Success() (gas: 44857) -FeeQuoter_applyPremiumMultiplierWeiPerEthUpdates:test_applyPremiumMultiplierWeiPerEthUpdatesZeroInput() (gas: 12257) -FeeQuoter_applyTokenTransferFeeConfigUpdates:test_ApplyTokenTransferFeeConfig_Success() (gas: 86968) -FeeQuoter_applyTokenTransferFeeConfigUpdates:test_ApplyTokenTransferFeeZeroInput() (gas: 13089) -FeeQuoter_applyTokenTransferFeeConfigUpdates:test_InvalidDestBytesOverhead_Revert() (gas: 17071) -FeeQuoter_applyTokenTransferFeeConfigUpdates:test_OnlyCallableByOwnerOrAdmin_Revert() (gas: 12246) -FeeQuoter_constructor:test_InvalidLinkTokenEqZeroAddress_Revert() (gas: 106810) -FeeQuoter_constructor:test_InvalidMaxFeeJuelsPerMsg_Revert() (gas: 111160) -FeeQuoter_constructor:test_InvalidStalenessThreshold_Revert() (gas: 111213) -FeeQuoter_constructor:test_Setup_Success() (gas: 5195512) -FeeQuoter_convertTokenAmount:test_ConvertTokenAmount_Success() (gas: 72751) -FeeQuoter_convertTokenAmount:test_LinkTokenNotSupported_Revert() (gas: 30981) -FeeQuoter_getDataAvailabilityCost:test_EmptyMessageCalculatesDataAvailabilityCost_Success() (gas: 94441) -FeeQuoter_getDataAvailabilityCost:test_SimpleMessageCalculatesDataAvailabilityCostUnsupportedDestChainSelector_Success() (gas: 14650) -FeeQuoter_getDataAvailabilityCost:test_SimpleMessageCalculatesDataAvailabilityCost_Success() (gas: 20482) -FeeQuoter_getTokenAndGasPrices:test_GetFeeTokenAndGasPrices_Success() (gas: 70464) -FeeQuoter_getTokenAndGasPrices:test_StaleGasPrice_Revert() (gas: 16838) -FeeQuoter_getTokenAndGasPrices:test_UnsupportedChain_Revert() (gas: 16140) -FeeQuoter_getTokenAndGasPrices:test_ZeroGasPrice_Success() (gas: 45771) -FeeQuoter_getTokenPrice:test_GetTokenPriceFromFeed_Success() (gas: 62264) -FeeQuoter_getTokenPrices:test_GetTokenPrices_Success() (gas: 84818) -FeeQuoter_getTokenTransferCost:test_CustomTokenBpsFee_Success() (gas: 41281) -FeeQuoter_getTokenTransferCost:test_FeeTokenBpsFee_Success() (gas: 34730) -FeeQuoter_getTokenTransferCost:test_LargeTokenTransferChargesMaxFeeAndGas_Success() (gas: 27804) -FeeQuoter_getTokenTransferCost:test_MixedTokenTransferFee_Success() (gas: 101864) -FeeQuoter_getTokenTransferCost:test_NoTokenTransferChargesZeroFee_Success() (gas: 20390) -FeeQuoter_getTokenTransferCost:test_SmallTokenTransferChargesMinFeeAndGas_Success() (gas: 27679) -FeeQuoter_getTokenTransferCost:test_ZeroAmountTokenTransferChargesMinFeeAndGas_Success() (gas: 27635) -FeeQuoter_getTokenTransferCost:test_ZeroFeeConfigChargesMinFee_Success() (gas: 40064) -FeeQuoter_getTokenTransferCost:test_getTokenTransferCost_selfServeUsesDefaults_Success() (gas: 29347) -FeeQuoter_getValidatedFee:test_DestinationChainNotEnabled_Revert() (gas: 18210) -FeeQuoter_getValidatedFee:test_EmptyMessage_Success() (gas: 86123) -FeeQuoter_getValidatedFee:test_EnforceOutOfOrder_Revert() (gas: 54405) -FeeQuoter_getValidatedFee:test_HighGasMessage_Success() (gas: 242541) -FeeQuoter_getValidatedFee:test_InvalidEVMAddress_Revert() (gas: 22420) -FeeQuoter_getValidatedFee:test_MessageGasLimitTooHigh_Revert() (gas: 31833) -FeeQuoter_getValidatedFee:test_MessageTooLarge_Revert() (gas: 100163) -FeeQuoter_getValidatedFee:test_MessageWithDataAndTokenTransfer_Success() (gas: 148076) -FeeQuoter_getValidatedFee:test_NotAFeeToken_Revert() (gas: 21073) -FeeQuoter_getValidatedFee:test_SingleTokenMessage_Success() (gas: 117032) -FeeQuoter_getValidatedFee:test_TooManyTokens_Revert() (gas: 22562) -FeeQuoter_getValidatedFee:test_ZeroDataAvailabilityMultiplier_Success() (gas: 64442) -FeeQuoter_getValidatedTokenPrice:test_GetValidatedTokenPriceFromFeedErc20Above18Decimals_Success() (gas: 2076337) -FeeQuoter_getValidatedTokenPrice:test_GetValidatedTokenPriceFromFeedErc20Below18Decimals_Success() (gas: 2076295) -FeeQuoter_getValidatedTokenPrice:test_GetValidatedTokenPriceFromFeedFeedAt0Decimals_Success() (gas: 2056414) -FeeQuoter_getValidatedTokenPrice:test_GetValidatedTokenPriceFromFeedFeedAt18Decimals_Success() (gas: 2076069) -FeeQuoter_getValidatedTokenPrice:test_GetValidatedTokenPriceFromFeedFlippedDecimals_Success() (gas: 2076273) -FeeQuoter_getValidatedTokenPrice:test_GetValidatedTokenPriceFromFeedMaxInt224Value_Success() (gas: 2076085) -FeeQuoter_getValidatedTokenPrice:test_GetValidatedTokenPriceFromFeedOverStalenessPeriod_Success() (gas: 62016) -FeeQuoter_getValidatedTokenPrice:test_GetValidatedTokenPriceFromFeed_Success() (gas: 61896) -FeeQuoter_getValidatedTokenPrice:test_GetValidatedTokenPrice_Success() (gas: 61042) -FeeQuoter_getValidatedTokenPrice:test_OverflowFeedPrice_Revert() (gas: 2075772) -FeeQuoter_getValidatedTokenPrice:test_StaleFeeToken_Success() (gas: 61569) -FeeQuoter_getValidatedTokenPrice:test_TokenNotSupportedFeed_Revert() (gas: 109132) -FeeQuoter_getValidatedTokenPrice:test_TokenNotSupported_Revert() (gas: 13863) -FeeQuoter_getValidatedTokenPrice:test_UnderflowFeedPrice_Revert() (gas: 2074434) -FeeQuoter_onReport:test_OnReport_StaleUpdate_Revert() (gas: 43358) -FeeQuoter_onReport:test_onReport_InvalidForwarder_Reverts() (gas: 23306) -FeeQuoter_onReport:test_onReport_Success() (gas: 80684) -FeeQuoter_onReport:test_onReport_UnsupportedToken_Reverts() (gas: 26692) -FeeQuoter_parseEVMExtraArgsFromBytes:test_EVMExtraArgsDefault_Success() (gas: 17191) -FeeQuoter_parseEVMExtraArgsFromBytes:test_EVMExtraArgsEnforceOutOfOrder_Revert() (gas: 21302) -FeeQuoter_parseEVMExtraArgsFromBytes:test_EVMExtraArgsGasLimitTooHigh_Revert() (gas: 18399) -FeeQuoter_parseEVMExtraArgsFromBytes:test_EVMExtraArgsInvalidExtraArgsTag_Revert() (gas: 17923) -FeeQuoter_parseEVMExtraArgsFromBytes:test_EVMExtraArgsV1_Success() (gas: 18291) -FeeQuoter_parseEVMExtraArgsFromBytes:test_EVMExtraArgsV2_Success() (gas: 18407) -FeeQuoter_processMessageArgs:test_InvalidExtraArgs_Revert() (gas: 18361) -FeeQuoter_processMessageArgs:test_MalformedEVMExtraArgs_Revert() (gas: 18907) -FeeQuoter_processMessageArgs:test_MessageFeeTooHigh_Revert() (gas: 16426) -FeeQuoter_processMessageArgs:test_WitEVMExtraArgsV2_Success() (gas: 26299) -FeeQuoter_processMessageArgs:test_WithConvertedTokenAmount_Success() (gas: 32465) -FeeQuoter_processMessageArgs:test_WithEVMExtraArgsV1_Success() (gas: 25911) -FeeQuoter_processMessageArgs:test_WithEmptyEVMExtraArgs_Success() (gas: 23726) -FeeQuoter_processMessageArgs:test_WithLinkTokenAmount_Success() (gas: 17375) -FeeQuoter_updatePrices:test_OnlyCallableByUpdater_Revert() (gas: 12114) -FeeQuoter_updatePrices:test_OnlyGasPrice_Success() (gas: 23599) -FeeQuoter_updatePrices:test_OnlyTokenPrice_Success() (gas: 30637) -FeeQuoter_updatePrices:test_UpdatableByAuthorizedCaller_Success() (gas: 76027) -FeeQuoter_updatePrices:test_UpdateMultiplePrices_Success() (gas: 151411) -FeeQuoter_updateTokenPriceFeeds:test_FeedNotUpdated() (gas: 50545) -FeeQuoter_updateTokenPriceFeeds:test_FeedUnset_Success() (gas: 63662) -FeeQuoter_updateTokenPriceFeeds:test_FeedUpdatedByNonOwner_Revert() (gas: 19938) -FeeQuoter_updateTokenPriceFeeds:test_MultipleFeedUpdate_Success() (gas: 89008) -FeeQuoter_updateTokenPriceFeeds:test_SingleFeedUpdate_Success() (gas: 50839) -FeeQuoter_updateTokenPriceFeeds:test_ZeroFeeds_Success() (gas: 12296) -FeeQuoter_validateDestFamilyAddress:test_InvalidEVMAddressEncodePacked_Revert() (gas: 10622) -FeeQuoter_validateDestFamilyAddress:test_InvalidEVMAddressPrecompiles_Revert() (gas: 3967790) -FeeQuoter_validateDestFamilyAddress:test_InvalidEVMAddress_Revert() (gas: 10806) -FeeQuoter_validateDestFamilyAddress:test_ValidEVMAddress_Success() (gas: 6710) -FeeQuoter_validateDestFamilyAddress:test_ValidNonEVMAddress_Success() (gas: 6484) -FeeQuoter_validatePoolReturnData:test_InvalidEVMAddressDestToken_Revert() (gas: 42769) -FeeQuoter_validatePoolReturnData:test_ProcessPoolReturnData_Success() (gas: 73306) -FeeQuoter_validatePoolReturnData:test_SourceTokenDataTooLarge_Revert() (gas: 107855) -FeeQuoter_validatePoolReturnData:test_TokenAmountArraysMismatching_Revert() (gas: 40106) -HybridUSDCTokenPoolMigrationTests:test_LockOrBurn_LocKReleaseMechanism_then_switchToPrimary_Success() (gas: 208384) -HybridUSDCTokenPoolMigrationTests:test_LockOrBurn_PrimaryMechanism_Success() (gas: 135502) -HybridUSDCTokenPoolMigrationTests:test_LockOrBurn_WhileMigrationPause_Revert() (gas: 106651) -HybridUSDCTokenPoolMigrationTests:test_LockOrBurn_onLockReleaseMechanism_Success() (gas: 143944) -HybridUSDCTokenPoolMigrationTests:test_MintOrRelease_OnLockReleaseMechanism_Success() (gas: 230450) -HybridUSDCTokenPoolMigrationTests:test_MintOrRelease_OnLockReleaseMechanism_then_switchToPrimary_Success() (gas: 438517) -HybridUSDCTokenPoolMigrationTests:test_MintOrRelease_incomingMessageWithPrimaryMechanism() (gas: 270081) -HybridUSDCTokenPoolMigrationTests:test_burnLockedUSDC_invalidPermissions_Revert() (gas: 39130) -HybridUSDCTokenPoolMigrationTests:test_cancelExistingCCTPMigrationProposal() (gas: 31181) -HybridUSDCTokenPoolMigrationTests:test_cannotCancelANonExistentMigrationProposal() (gas: 12628) -HybridUSDCTokenPoolMigrationTests:test_cannotModifyLiquidityWithoutPermissions_Revert() (gas: 17158) -HybridUSDCTokenPoolMigrationTests:test_lockOrBurn_then_BurnInCCTPMigration_Success() (gas: 252682) -HybridUSDCTokenPoolMigrationTests:test_transferLiquidity_Success() (gas: 157130) -HybridUSDCTokenPoolMigrationTests:test_withdrawLiquidity_Success() (gas: 140828) -HybridUSDCTokenPoolTests:test_LockOrBurn_LocKReleaseMechanism_then_switchToPrimary_Success() (gas: 208164) -HybridUSDCTokenPoolTests:test_LockOrBurn_PrimaryMechanism_Success() (gas: 135396) -HybridUSDCTokenPoolTests:test_LockOrBurn_WhileMigrationPause_Revert() (gas: 106628) -HybridUSDCTokenPoolTests:test_LockOrBurn_onLockReleaseMechanism_Success() (gas: 143865) -HybridUSDCTokenPoolTests:test_MintOrRelease_OnLockReleaseMechanism_Success() (gas: 230383) -HybridUSDCTokenPoolTests:test_MintOrRelease_OnLockReleaseMechanism_then_switchToPrimary_Success() (gas: 438318) -HybridUSDCTokenPoolTests:test_MintOrRelease_incomingMessageWithPrimaryMechanism() (gas: 270011) -HybridUSDCTokenPoolTests:test_withdrawLiquidity_Success() (gas: 140783) -LockReleaseTokenPoolAndProxy_setRebalancer:test_SetRebalancer_Revert() (gas: 10977) -LockReleaseTokenPoolAndProxy_setRebalancer:test_SetRebalancer_Success() (gas: 17998) -LockReleaseTokenPoolPoolAndProxy_canAcceptLiquidity:test_CanAcceptLiquidity_Success() (gas: 3315195) -LockReleaseTokenPoolPoolAndProxy_provideLiquidity:test_LiquidityNotAccepted_Revert() (gas: 3311601) -LockReleaseTokenPoolPoolAndProxy_provideLiquidity:test_Unauthorized_Revert() (gas: 11405) -LockReleaseTokenPoolPoolAndProxy_supportsInterface:test_SupportsInterface_Success() (gas: 9977) -LockReleaseTokenPoolPoolAndProxy_withdrawalLiquidity:test_InsufficientLiquidity_Revert() (gas: 60060) -LockReleaseTokenPoolPoolAndProxy_withdrawalLiquidity:test_Unauthorized_Revert() (gas: 11386) -LockReleaseTokenPool_canAcceptLiquidity:test_CanAcceptLiquidity_Success() (gas: 3071906) -LockReleaseTokenPool_lockOrBurn:test_LockOrBurnWithAllowList_Revert() (gas: 29960) -LockReleaseTokenPool_lockOrBurn:test_LockOrBurnWithAllowList_Success() (gas: 79868) -LockReleaseTokenPool_lockOrBurn:test_PoolBurnRevertNotHealthy_Revert() (gas: 59479) -LockReleaseTokenPool_provideLiquidity:test_LiquidityNotAccepted_Revert() (gas: 3068356) -LockReleaseTokenPool_provideLiquidity:test_Unauthorized_Revert() (gas: 11405) -LockReleaseTokenPool_releaseOrMint:test_ChainNotAllowed_Revert() (gas: 72666) -LockReleaseTokenPool_releaseOrMint:test_PoolMintNotHealthy_Revert() (gas: 56211) -LockReleaseTokenPool_releaseOrMint:test_ReleaseOrMint_Success() (gas: 225296) -LockReleaseTokenPool_setRebalancer:test_SetRebalancer_Revert() (gas: 10999) -LockReleaseTokenPool_setRebalancer:test_SetRebalancer_Success() (gas: 18064) -LockReleaseTokenPool_supportsInterface:test_SupportsInterface_Success() (gas: 9977) -LockReleaseTokenPool_transferLiquidity:test_transferLiquidity_Success() (gas: 83177) -LockReleaseTokenPool_transferLiquidity:test_transferLiquidity_transferTooMuch_Revert() (gas: 55899) -LockReleaseTokenPool_withdrawalLiquidity:test_InsufficientLiquidity_Revert() (gas: 60060) -LockReleaseTokenPool_withdrawalLiquidity:test_Unauthorized_Revert() (gas: 11386) -LockRelease_setRateLimitAdmin:test_SetRateLimitAdmin_Revert() (gas: 11036) -LockRelease_setRateLimitAdmin:test_SetRateLimitAdmin_Success() (gas: 35030) -MerkleMultiProofTest:test_CVE_2023_34459() (gas: 5454) -MerkleMultiProofTest:test_EmptyLeaf_Revert() (gas: 3555) -MerkleMultiProofTest:test_MerkleRoot256() (gas: 394879) -MerkleMultiProofTest:test_MerkleRootSingleLeaf_Success() (gas: 3649) -MerkleMultiProofTest:test_SpecSync_gas() (gas: 34123) -MockRouterTest:test_ccipSendWithInsufficientNativeTokens_Revert() (gas: 34019) -MockRouterTest:test_ccipSendWithInvalidMsgValue_Revert() (gas: 60812) -MockRouterTest:test_ccipSendWithLinkFeeTokenAndValidMsgValue_Success() (gas: 126480) -MockRouterTest:test_ccipSendWithLinkFeeTokenbutInsufficientAllowance_Revert() (gas: 63419) -MockRouterTest:test_ccipSendWithSufficientNativeFeeTokens_Success() (gas: 43952) -MultiAggregateRateLimiter_applyRateLimiterConfigUpdates:test_MultipleConfigsBothLanes_Success() (gas: 132457) -MultiAggregateRateLimiter_applyRateLimiterConfigUpdates:test_MultipleConfigs_Success() (gas: 313023) -MultiAggregateRateLimiter_applyRateLimiterConfigUpdates:test_OnlyCallableByOwner_Revert() (gas: 17750) -MultiAggregateRateLimiter_applyRateLimiterConfigUpdates:test_SingleConfigOutbound_Success() (gas: 76030) -MultiAggregateRateLimiter_applyRateLimiterConfigUpdates:test_SingleConfig_Success() (gas: 75946) -MultiAggregateRateLimiter_applyRateLimiterConfigUpdates:test_UpdateExistingConfigWithNoDifference_Success() (gas: 38436) -MultiAggregateRateLimiter_applyRateLimiterConfigUpdates:test_UpdateExistingConfig_Success() (gas: 53473) -MultiAggregateRateLimiter_applyRateLimiterConfigUpdates:test_ZeroChainSelector_Revert() (gas: 17046) -MultiAggregateRateLimiter_applyRateLimiterConfigUpdates:test_ZeroConfigs_Success() (gas: 12361) -MultiAggregateRateLimiter_constructor:test_ConstructorNoAuthorizedCallers_Success() (gas: 2050112) -MultiAggregateRateLimiter_constructor:test_Constructor_Success() (gas: 2166413) -MultiAggregateRateLimiter_getTokenBucket:test_GetTokenBucket_Success() (gas: 30404) -MultiAggregateRateLimiter_getTokenBucket:test_Refill_Success() (gas: 47673) -MultiAggregateRateLimiter_getTokenBucket:test_TimeUnderflow_Revert() (gas: 15863) -MultiAggregateRateLimiter_getTokenValue:test_GetTokenValue_Success() (gas: 19668) -MultiAggregateRateLimiter_getTokenValue:test_NoTokenPrice_Reverts() (gas: 21253) -MultiAggregateRateLimiter_onInboundMessage:test_ValidateMessageFromUnauthorizedCaller_Revert() (gas: 14533) -MultiAggregateRateLimiter_onInboundMessage:test_ValidateMessageWithDifferentTokensOnDifferentChains_Success() (gas: 214266) -MultiAggregateRateLimiter_onInboundMessage:test_ValidateMessageWithDisabledRateLimitToken_Success() (gas: 60479) -MultiAggregateRateLimiter_onInboundMessage:test_ValidateMessageWithNoTokens_Success() (gas: 17599) -MultiAggregateRateLimiter_onInboundMessage:test_ValidateMessageWithRateLimitDisabled_Success() (gas: 45006) -MultiAggregateRateLimiter_onInboundMessage:test_ValidateMessageWithRateLimitExceeded_Revert() (gas: 50584) -MultiAggregateRateLimiter_onInboundMessage:test_ValidateMessageWithRateLimitReset_Success() (gas: 78872) -MultiAggregateRateLimiter_onInboundMessage:test_ValidateMessageWithTokensOnDifferentChains_Success() (gas: 312547) -MultiAggregateRateLimiter_onInboundMessage:test_ValidateMessageWithTokens_Success() (gas: 54776) -MultiAggregateRateLimiter_onOutboundMessage:test_RateLimitValueDifferentLanes_Success() (gas: 1073667418) -MultiAggregateRateLimiter_onOutboundMessage:test_ValidateMessageWithNoTokens_Success() (gas: 19158) -MultiAggregateRateLimiter_onOutboundMessage:test_onOutboundMessage_ValidateMessageFromUnauthorizedCaller_Revert() (gas: 15829) -MultiAggregateRateLimiter_onOutboundMessage:test_onOutboundMessage_ValidateMessageWithDifferentTokensOnDifferentChains_Success() (gas: 214110) -MultiAggregateRateLimiter_onOutboundMessage:test_onOutboundMessage_ValidateMessageWithDisabledRateLimitToken_Success() (gas: 62262) -MultiAggregateRateLimiter_onOutboundMessage:test_onOutboundMessage_ValidateMessageWithRateLimitDisabled_Success() (gas: 46818) -MultiAggregateRateLimiter_onOutboundMessage:test_onOutboundMessage_ValidateMessageWithRateLimitExceeded_Revert() (gas: 52405) -MultiAggregateRateLimiter_onOutboundMessage:test_onOutboundMessage_ValidateMessageWithRateLimitReset_Success() (gas: 80129) -MultiAggregateRateLimiter_onOutboundMessage:test_onOutboundMessage_ValidateMessageWithTokensOnDifferentChains_Success() (gas: 312617) -MultiAggregateRateLimiter_onOutboundMessage:test_onOutboundMessage_ValidateMessageWithTokens_Success() (gas: 56581) -MultiAggregateRateLimiter_setFeeQuoter:test_OnlyOwner_Revert() (gas: 11325) -MultiAggregateRateLimiter_setFeeQuoter:test_Owner_Success() (gas: 19072) -MultiAggregateRateLimiter_setFeeQuoter:test_ZeroAddress_Revert() (gas: 10597) -MultiAggregateRateLimiter_updateRateLimitTokens:test_NonOwner_Revert() (gas: 18800) -MultiAggregateRateLimiter_updateRateLimitTokens:test_UpdateRateLimitTokensMultipleChains_Success() (gas: 279944) -MultiAggregateRateLimiter_updateRateLimitTokens:test_UpdateRateLimitTokensSingleChain_Success() (gas: 254495) -MultiAggregateRateLimiter_updateRateLimitTokens:test_UpdateRateLimitTokens_AddsAndRemoves_Success() (gas: 204465) -MultiAggregateRateLimiter_updateRateLimitTokens:test_UpdateRateLimitTokens_RemoveNonExistentToken_Success() (gas: 28703) -MultiAggregateRateLimiter_updateRateLimitTokens:test_ZeroDestToken_Revert() (gas: 18279) -MultiAggregateRateLimiter_updateRateLimitTokens:test_ZeroSourceToken_Revert() (gas: 18208) -MultiOCR3Base_setOCR3Configs:test_FMustBePositive_Revert() (gas: 59255) -MultiOCR3Base_setOCR3Configs:test_FTooHigh_Revert() (gas: 43629) -MultiOCR3Base_setOCR3Configs:test_RepeatSignerAddress_Revert() (gas: 283636) -MultiOCR3Base_setOCR3Configs:test_RepeatTransmitterAddress_Revert() (gas: 422261) -MultiOCR3Base_setOCR3Configs:test_SetConfigIgnoreSigners_Success() (gas: 511281) -MultiOCR3Base_setOCR3Configs:test_SetConfigWithSigners_Success() (gas: 828440) -MultiOCR3Base_setOCR3Configs:test_SetConfigWithoutSigners_Success() (gas: 456886) -MultiOCR3Base_setOCR3Configs:test_SetConfigsZeroInput_Success() (gas: 12382) -MultiOCR3Base_setOCR3Configs:test_SetMultipleConfigs_Success() (gas: 2140159) -MultiOCR3Base_setOCR3Configs:test_SignerCannotBeZeroAddress_Revert() (gas: 141717) -MultiOCR3Base_setOCR3Configs:test_StaticConfigChange_Revert() (gas: 807340) -MultiOCR3Base_setOCR3Configs:test_TooManySigners_Revert() (gas: 158799) -MultiOCR3Base_setOCR3Configs:test_TooManyTransmitters_Revert() (gas: 112293) -MultiOCR3Base_setOCR3Configs:test_TransmitterCannotBeZeroAddress_Revert() (gas: 254083) -MultiOCR3Base_setOCR3Configs:test_UpdateConfigSigners_Success() (gas: 860224) -MultiOCR3Base_setOCR3Configs:test_UpdateConfigTransmittersWithoutSigners_Success() (gas: 475193) -MultiOCR3Base_transmit:test_ConfigDigestMismatch_Revert() (gas: 42845) -MultiOCR3Base_transmit:test_ForkedChain_Revert() (gas: 48450) -MultiOCR3Base_transmit:test_InsufficientSignatures_Revert() (gas: 76928) -MultiOCR3Base_transmit:test_NonUniqueSignature_Revert() (gas: 65768) -MultiOCR3Base_transmit:test_SignatureOutOfRegistration_Revert() (gas: 33417) -MultiOCR3Base_transmit:test_TooManySignatures_Revert() (gas: 79519) -MultiOCR3Base_transmit:test_TransmitSigners_gas_Success() (gas: 33631) -MultiOCR3Base_transmit:test_TransmitWithExtraCalldataArgs_Revert() (gas: 47122) -MultiOCR3Base_transmit:test_TransmitWithLessCalldataArgs_Revert() (gas: 25690) -MultiOCR3Base_transmit:test_TransmitWithoutSignatureVerification_gas_Success() (gas: 18712) -MultiOCR3Base_transmit:test_UnAuthorizedTransmitter_Revert() (gas: 24189) -MultiOCR3Base_transmit:test_UnauthorizedSigner_Revert() (gas: 61131) -MultiOCR3Base_transmit:test_UnconfiguredPlugin_Revert() (gas: 39888) -MultiOCR3Base_transmit:test_ZeroSignatures_Revert() (gas: 32971) -MultiOnRampTokenPoolReentrancy:test_OnRampTokenPoolReentrancy_Success() (gas: 411753) -MultiRampsE2E:test_E2E_3MessagesMMultiOffRampSuccess_gas() (gas: 1528026) -NonceManager_NonceIncrementation:test_getIncrementedOutboundNonce_Success() (gas: 37916) -NonceManager_NonceIncrementation:test_incrementInboundNonce_Skip() (gas: 23709) -NonceManager_NonceIncrementation:test_incrementInboundNonce_Success() (gas: 38799) -NonceManager_NonceIncrementation:test_incrementNoncesInboundAndOutbound_Success() (gas: 71898) -NonceManager_OffRampUpgrade:test_NoPrevOffRampForChain_Success() (gas: 259965) -NonceManager_OffRampUpgrade:test_UpgradedNonceNewSenderStartsAtZero_Success() (gas: 264107) -NonceManager_OffRampUpgrade:test_UpgradedNonceStartsAtV1Nonce_Success() (gas: 326950) -NonceManager_OffRampUpgrade:test_UpgradedOffRampNonceSkipsIfMsgInFlight_Success() (gas: 299064) -NonceManager_OffRampUpgrade:test_UpgradedSenderNoncesReadsPreviousRampTransitive_Success() (gas: 244871) -NonceManager_OffRampUpgrade:test_UpgradedSenderNoncesReadsPreviousRamp_Success() (gas: 232986) -NonceManager_OffRampUpgrade:test_Upgraded_Success() (gas: 152870) -NonceManager_OnRampUpgrade:test_UpgradeNonceNewSenderStartsAtZero_Success() (gas: 168380) -NonceManager_OnRampUpgrade:test_UpgradeNonceStartsAtV1Nonce_Success() (gas: 220237) -NonceManager_OnRampUpgrade:test_UpgradeSenderNoncesReadsPreviousRamp_Success() (gas: 125157) -NonceManager_OnRampUpgrade:test_Upgrade_Success() (gas: 107588) -NonceManager_applyPreviousRampsUpdates:test_MultipleRampsUpdates() (gas: 122955) -NonceManager_applyPreviousRampsUpdates:test_PreviousRampAlreadySetOffRamp_Revert() (gas: 42965) -NonceManager_applyPreviousRampsUpdates:test_PreviousRampAlreadySetOnRampAndOffRamp_Revert() (gas: 64288) -NonceManager_applyPreviousRampsUpdates:test_PreviousRampAlreadySetOnRamp_Revert() (gas: 42829) -NonceManager_applyPreviousRampsUpdates:test_SingleRampUpdate() (gas: 66576) -NonceManager_applyPreviousRampsUpdates:test_ZeroInput() (gas: 12025) -NonceManager_typeAndVersion:test_typeAndVersion() (gas: 9699) -OCR2BaseNoChecks_setOCR2Config:test_FMustBePositive_Revert() (gas: 12183) -OCR2BaseNoChecks_setOCR2Config:test_RepeatAddress_Revert() (gas: 42404) -OCR2BaseNoChecks_setOCR2Config:test_SetConfigSuccess_gas() (gas: 84585) -OCR2BaseNoChecks_setOCR2Config:test_TooManyTransmitter_Revert() (gas: 38150) -OCR2BaseNoChecks_setOCR2Config:test_TransmitterCannotBeZeroAddress_Revert() (gas: 24290) -OCR2BaseNoChecks_transmit:test_ConfigDigestMismatch_Revert() (gas: 17469) -OCR2BaseNoChecks_transmit:test_ForkedChain_Revert() (gas: 26762) -OCR2BaseNoChecks_transmit:test_TransmitSuccess_gas() (gas: 27499) -OCR2BaseNoChecks_transmit:test_UnAuthorizedTransmitter_Revert() (gas: 21317) -OCR2Base_setOCR2Config:test_FMustBePositive_Revert() (gas: 12201) -OCR2Base_setOCR2Config:test_FTooHigh_Revert() (gas: 12357) -OCR2Base_setOCR2Config:test_OracleOutOfRegister_Revert() (gas: 14904) -OCR2Base_setOCR2Config:test_RepeatAddress_Revert() (gas: 45454) -OCR2Base_setOCR2Config:test_SetConfigSuccess_gas() (gas: 155211) -OCR2Base_setOCR2Config:test_SingerCannotBeZeroAddress_Revert() (gas: 24407) -OCR2Base_setOCR2Config:test_TooManySigners_Revert() (gas: 20520) -OCR2Base_setOCR2Config:test_TransmitterCannotBeZeroAddress_Revert() (gas: 47298) -OCR2Base_transmit:test_ConfigDigestMismatch_Revert() (gas: 19638) -OCR2Base_transmit:test_ForkedChain_Revert() (gas: 37713) -OCR2Base_transmit:test_NonUniqueSignature_Revert() (gas: 55324) -OCR2Base_transmit:test_SignatureOutOfRegistration_Revert() (gas: 20977) -OCR2Base_transmit:test_Transmit2SignersSuccess_gas() (gas: 51689) -OCR2Base_transmit:test_UnAuthorizedTransmitter_Revert() (gas: 23499) -OCR2Base_transmit:test_UnauthorizedSigner_Revert() (gas: 39695) -OCR2Base_transmit:test_WrongNumberOfSignatures_Revert() (gas: 20572) -OffRamp_afterOC3ConfigSet:test_afterOCR3ConfigSet_SignatureVerificationDisabled_Revert() (gas: 5814548) -OffRamp_applySourceChainConfigUpdates:test_AddMultipleChains_Success() (gas: 467570) -OffRamp_applySourceChainConfigUpdates:test_AddNewChain_Success() (gas: 99037) -OffRamp_applySourceChainConfigUpdates:test_ApplyZeroUpdates_Success() (gas: 12392) -OffRamp_applySourceChainConfigUpdates:test_ReplaceExistingChainOnRamp_Success() (gas: 100810) -OffRamp_applySourceChainConfigUpdates:test_ReplaceExistingChain_Success() (gas: 110185) -OffRamp_applySourceChainConfigUpdates:test_RouterAddress_Revert() (gas: 13278) -OffRamp_applySourceChainConfigUpdates:test_ZeroOnRampAddress_Revert() (gas: 72310) -OffRamp_applySourceChainConfigUpdates:test_ZeroSourceChainSelector_Revert() (gas: 15344) -OffRamp_batchExecute:test_MultipleReportsDifferentChainsSkipCursedChain_Success() (gas: 176901) -OffRamp_batchExecute:test_MultipleReportsDifferentChains_Success() (gas: 332739) -OffRamp_batchExecute:test_MultipleReportsSameChain_Success() (gas: 276107) -OffRamp_batchExecute:test_MultipleReportsSkipDuplicate_Success() (gas: 168045) -OffRamp_batchExecute:test_OutOfBoundsGasLimitsAccess_Revert() (gas: 187572) -OffRamp_batchExecute:test_SingleReport_Success() (gas: 155963) -OffRamp_batchExecute:test_Unhealthy_Success() (gas: 573311) -OffRamp_batchExecute:test_ZeroReports_Revert() (gas: 10440) -OffRamp_ccipReceive:test_Reverts() (gas: 15705) -OffRamp_commit:test_FailedRMNVerification_Reverts() (gas: 64462) -OffRamp_commit:test_InvalidIntervalMinLargerThanMax_Revert() (gas: 67674) -OffRamp_commit:test_InvalidInterval_Revert() (gas: 59928) -OffRamp_commit:test_InvalidRootRevert() (gas: 58963) -OffRamp_commit:test_NoConfigWithOtherConfigPresent_Revert() (gas: 6419179) -OffRamp_commit:test_NoConfig_Revert() (gas: 6002992) -OffRamp_commit:test_OnlyGasPriceUpdates_Success() (gas: 113541) -OffRamp_commit:test_OnlyPriceUpdateStaleReport_Revert() (gas: 121576) -OffRamp_commit:test_OnlyTokenPriceUpdates_Success() (gas: 113562) -OffRamp_commit:test_PriceSequenceNumberCleared_Success() (gas: 355724) -OffRamp_commit:test_ReportAndPriceUpdate_Success() (gas: 166923) -OffRamp_commit:test_ReportOnlyRootSuccess_gas() (gas: 141978) -OffRamp_commit:test_RootAlreadyCommitted_Revert() (gas: 142982) -OffRamp_commit:test_SourceChainNotEnabled_Revert() (gas: 59250) -OffRamp_commit:test_StaleReportWithRoot_Success() (gas: 240109) -OffRamp_commit:test_UnauthorizedTransmitter_Revert() (gas: 122475) -OffRamp_commit:test_Unhealthy_Revert() (gas: 57991) -OffRamp_commit:test_ValidPriceUpdateThenStaleReportWithRoot_Success() (gas: 212415) -OffRamp_commit:test_ZeroEpochAndRound_Revert() (gas: 51324) -OffRamp_constructor:test_Constructor_Success() (gas: 6003471) -OffRamp_constructor:test_SourceChainSelector_Revert() (gas: 136819) -OffRamp_constructor:test_ZeroChainSelector_Revert() (gas: 103548) -OffRamp_constructor:test_ZeroNonceManager_Revert() (gas: 101425) -OffRamp_constructor:test_ZeroOnRampAddress_Revert() (gas: 162340) -OffRamp_constructor:test_ZeroRMNRemote_Revert() (gas: 101354) -OffRamp_constructor:test_ZeroTokenAdminRegistry_Revert() (gas: 101369) -OffRamp_execute:test_IncorrectArrayType_Revert() (gas: 17281) -OffRamp_execute:test_LargeBatch_Success() (gas: 3378308) -OffRamp_execute:test_MultipleReportsWithPartialValidationFailures_Success() (gas: 372457) -OffRamp_execute:test_MultipleReports_Success() (gas: 298416) -OffRamp_execute:test_NoConfigWithOtherConfigPresent_Revert() (gas: 6825642) -OffRamp_execute:test_NoConfig_Revert() (gas: 6050440) -OffRamp_execute:test_NonArray_Revert() (gas: 27721) -OffRamp_execute:test_SingleReport_Success() (gas: 175215) -OffRamp_execute:test_UnauthorizedTransmitter_Revert() (gas: 147455) -OffRamp_execute:test_WrongConfigWithSigners_Revert() (gas: 6828385) -OffRamp_execute:test_ZeroReports_Revert() (gas: 17162) -OffRamp_executeSingleMessage:test_MessageSender_Revert() (gas: 18212) -OffRamp_executeSingleMessage:test_NonContractWithTokens_Success() (gas: 249178) -OffRamp_executeSingleMessage:test_NonContract_Success() (gas: 20494) -OffRamp_executeSingleMessage:test_TokenHandlingError_Revert() (gas: 210308) -OffRamp_executeSingleMessage:test_ZeroGasDONExecution_Revert() (gas: 48776) -OffRamp_executeSingleMessage:test_executeSingleMessage_NoTokens_Success() (gas: 48260) -OffRamp_executeSingleMessage:test_executeSingleMessage_WithFailingValidationNoRouterCall_Revert() (gas: 229570) -OffRamp_executeSingleMessage:test_executeSingleMessage_WithFailingValidation_Revert() (gas: 86208) -OffRamp_executeSingleMessage:test_executeSingleMessage_WithTokens_Success() (gas: 281045) -OffRamp_executeSingleMessage:test_executeSingleMessage_WithValidation_Success() (gas: 92487) -OffRamp_executeSingleReport:test_DisabledSourceChain_Revert() (gas: 28238) -OffRamp_executeSingleReport:test_EmptyReport_Revert() (gas: 21860) -OffRamp_executeSingleReport:test_InvalidSourcePoolAddress_Success() (gas: 502029) -OffRamp_executeSingleReport:test_ManualExecutionNotYetEnabled_Revert() (gas: 47635) -OffRamp_executeSingleReport:test_MismatchingDestChainSelector_Revert() (gas: 33895) -OffRamp_executeSingleReport:test_MismatchingOnRampRoot_Revert() (gas: 155054) -OffRamp_executeSingleReport:test_NonExistingSourceChain_Revert() (gas: 28472) -OffRamp_executeSingleReport:test_ReceiverError_Success() (gas: 187688) -OffRamp_executeSingleReport:test_RetryFailedMessageWithoutManualExecution_Revert() (gas: 198173) -OffRamp_executeSingleReport:test_RootNotCommitted_Revert() (gas: 40136) -OffRamp_executeSingleReport:test_RouterYULCall_Revert() (gas: 447500) -OffRamp_executeSingleReport:test_SingleMessageNoTokensOtherChain_Success() (gas: 247946) -OffRamp_executeSingleReport:test_SingleMessageNoTokensUnordered_Success() (gas: 192339) -OffRamp_executeSingleReport:test_SingleMessageNoTokens_Success() (gas: 211938) -OffRamp_executeSingleReport:test_SingleMessageToNonCCIPReceiver_Success() (gas: 259763) -OffRamp_executeSingleReport:test_SingleMessagesNoTokensSuccess_gas() (gas: 140974) -OffRamp_executeSingleReport:test_SkippedIncorrectNonceStillExecutes_Success() (gas: 424565) -OffRamp_executeSingleReport:test_SkippedIncorrectNonce_Success() (gas: 59052) -OffRamp_executeSingleReport:test_TokenDataMismatch_Revert() (gas: 74143) -OffRamp_executeSingleReport:test_TwoMessagesWithTokensAndGE_Success() (gas: 596466) -OffRamp_executeSingleReport:test_TwoMessagesWithTokensSuccess_gas() (gas: 544340) -OffRamp_executeSingleReport:test_UnexpectedTokenData_Revert() (gas: 33678) -OffRamp_executeSingleReport:test_UnhealthySingleChainCurse_Revert() (gas: 569320) -OffRamp_executeSingleReport:test_Unhealthy_Success() (gas: 569334) -OffRamp_executeSingleReport:test_WithCurseOnAnotherSourceChain_Success() (gas: 474664) -OffRamp_executeSingleReport:test__execute_SkippedAlreadyExecutedMessageUnordered_Success() (gas: 135508) -OffRamp_executeSingleReport:test__execute_SkippedAlreadyExecutedMessage_Success() (gas: 164757) -OffRamp_getExecutionState:test_FillExecutionState_Success() (gas: 3635486) -OffRamp_getExecutionState:test_GetDifferentChainExecutionState_Success() (gas: 118398) -OffRamp_getExecutionState:test_GetExecutionState_Success() (gas: 87417) -OffRamp_manuallyExecute:test_ManualExecGasLimitMismatchSingleReport_Revert() (gas: 75569) -OffRamp_manuallyExecute:test_ManualExecInvalidGasLimit_Revert() (gas: 26442) -OffRamp_manuallyExecute:test_manuallyExecute_DoesNotRevertIfUntouched_Success() (gas: 171318) -OffRamp_manuallyExecute:test_manuallyExecute_FailedTx_Revert() (gas: 211218) -OffRamp_manuallyExecute:test_manuallyExecute_ForkedChain_Revert() (gas: 26060) -OffRamp_manuallyExecute:test_manuallyExecute_GasLimitMismatchMultipleReports_Revert() (gas: 152860) -OffRamp_manuallyExecute:test_manuallyExecute_LowGasLimit_Success() (gas: 529914) -OffRamp_manuallyExecute:test_manuallyExecute_MultipleReportsWithSingleCursedLane_Revert() (gas: 310504) -OffRamp_manuallyExecute:test_manuallyExecute_ReentrancyFails_Success() (gas: 2327501) -OffRamp_manuallyExecute:test_manuallyExecute_SourceChainSelectorMismatch_Revert() (gas: 162246) -OffRamp_manuallyExecute:test_manuallyExecute_Success() (gas: 224130) -OffRamp_manuallyExecute:test_manuallyExecute_WithGasOverride_Success() (gas: 224711) -OffRamp_manuallyExecute:test_manuallyExecute_WithMultiReportGasOverride_Success() (gas: 768287) -OffRamp_manuallyExecute:test_manuallyExecute_WithPartialMessages_Success() (gas: 343255) -OffRamp_releaseOrMintSingleToken:test__releaseOrMintSingleToken_NotACompatiblePool_Revert() (gas: 40194) -OffRamp_releaseOrMintSingleToken:test__releaseOrMintSingleToken_Success() (gas: 107223) -OffRamp_releaseOrMintSingleToken:test__releaseOrMintSingleToken_TokenHandlingError_transfer_Revert() (gas: 88434) -OffRamp_releaseOrMintSingleToken:test_releaseOrMintToken_InvalidDataLength_Revert() (gas: 39933) -OffRamp_releaseOrMintSingleToken:test_releaseOrMintToken_ReleaseOrMintBalanceMismatch_Revert() (gas: 97495) -OffRamp_releaseOrMintSingleToken:test_releaseOrMintToken_TokenHandlingError_BalanceOf_Revert() (gas: 42919) -OffRamp_releaseOrMintSingleToken:test_releaseOrMintToken_skip_ReleaseOrMintBalanceMismatch_if_pool_Revert() (gas: 89679) -OffRamp_releaseOrMintTokens:test_TokenHandlingError_Reverts() (gas: 166024) -OffRamp_releaseOrMintTokens:test__releaseOrMintTokens_PoolIsNotAPool_Reverts() (gas: 24628) -OffRamp_releaseOrMintTokens:test_releaseOrMintTokens_InvalidDataLengthReturnData_Revert() (gas: 66391) -OffRamp_releaseOrMintTokens:test_releaseOrMintTokens_InvalidEVMAddress_Revert() (gas: 41350) -OffRamp_releaseOrMintTokens:test_releaseOrMintTokens_PoolDoesNotSupportDest_Reverts() (gas: 83403) -OffRamp_releaseOrMintTokens:test_releaseOrMintTokens_Success() (gas: 178169) -OffRamp_releaseOrMintTokens:test_releaseOrMintTokens_destDenominatedDecimals_Success() (gas: 191356) -OffRamp_setDynamicConfig:test_FeeQuoterZeroAddress_Revert() (gas: 11610) -OffRamp_setDynamicConfig:test_NonOwner_Revert() (gas: 14177) -OffRamp_setDynamicConfig:test_SetDynamicConfigWithValidator_Success() (gas: 49192) -OffRamp_setDynamicConfig:test_SetDynamicConfig_Success() (gas: 27137) -OffRamp_trialExecute:test_RateLimitError_Success() (gas: 225885) -OffRamp_trialExecute:test_TokenHandlingErrorIsCaught_Success() (gas: 234506) -OffRamp_trialExecute:test_TokenPoolIsNotAContract_Success() (gas: 309185) -OffRamp_trialExecute:test_trialExecute_Success() (gas: 284141) -OnRampTokenPoolReentrancy:test_OnRampTokenPoolReentrancy_Success() (gas: 390954) -OnRamp_allowListConfigUpdates:test_applyAllowList_Revert() (gas: 66515) -OnRamp_allowListConfigUpdates:test_applyAllowList_Success() (gas: 323595) -OnRamp_applyDestChainConfigUpdates:test_ApplyDestChainConfigUpdates_Success() (gas: 64546) -OnRamp_applyDestChainConfigUpdates:test_ApplyDestChainConfigUpdates_WithInvalidChainSelector_Revert() (gas: 13254) -OnRamp_constructor:test_Constructor_InvalidConfigChainSelectorEqZero_Revert() (gas: 94815) -OnRamp_constructor:test_Constructor_InvalidConfigNonceManagerEqAddressZero_Revert() (gas: 92749) -OnRamp_constructor:test_Constructor_InvalidConfigRMNProxyEqAddressZero_Revert() (gas: 97775) -OnRamp_constructor:test_Constructor_InvalidConfigTokenAdminRegistryEqAddressZero_Revert() (gas: 92807) -OnRamp_constructor:test_Constructor_Success() (gas: 2812991) -OnRamp_forwardFromRouter:test_ForwardFromRouterExtraArgsV2AllowOutOfOrderTrue_Success() (gas: 114961) -OnRamp_forwardFromRouter:test_ForwardFromRouterExtraArgsV2_Success() (gas: 145732) -OnRamp_forwardFromRouter:test_ForwardFromRouterSuccessCustomExtraArgs() (gas: 145335) -OnRamp_forwardFromRouter:test_ForwardFromRouterSuccessEmptyExtraArgs() (gas: 143560) -OnRamp_forwardFromRouter:test_ForwardFromRouterSuccessLegacyExtraArgs() (gas: 145560) -OnRamp_forwardFromRouter:test_ForwardFromRouter_Success() (gas: 144939) -OnRamp_forwardFromRouter:test_ForwardFromRouter_Success_ConfigurableSourceRouter() (gas: 140265) -OnRamp_forwardFromRouter:test_InvalidExtraArgsTag_Revert() (gas: 28846) -OnRamp_forwardFromRouter:test_MessageValidationError_Revert() (gas: 138926) -OnRamp_forwardFromRouter:test_MesssageFeeTooHigh_Revert() (gas: 26946) -OnRamp_forwardFromRouter:test_MultiCannotSendZeroTokens_Revert() (gas: 74161) -OnRamp_forwardFromRouter:test_OriginalSender_Revert() (gas: 12951) -OnRamp_forwardFromRouter:test_Paused_Revert() (gas: 37326) -OnRamp_forwardFromRouter:test_Permissions_Revert() (gas: 18278) -OnRamp_forwardFromRouter:test_ShouldIncrementNonceOnlyOnOrdered_Success() (gas: 184628) -OnRamp_forwardFromRouter:test_ShouldIncrementSeqNumAndNonce_Success() (gas: 210946) -OnRamp_forwardFromRouter:test_ShouldStoreLinkFees() (gas: 124860) -OnRamp_forwardFromRouter:test_ShouldStoreNonLinkFees() (gas: 146277) -OnRamp_forwardFromRouter:test_SourceTokenDataTooLarge_Revert() (gas: 3829399) -OnRamp_forwardFromRouter:test_UnAllowedOriginalSender_Revert() (gas: 18714) -OnRamp_forwardFromRouter:test_UnsupportedToken_Revert() (gas: 110929) -OnRamp_forwardFromRouter:test_forwardFromRouter_UnsupportedToken_Revert() (gas: 76251) -OnRamp_forwardFromRouter:test_forwardFromRouter_WithValidation_Success() (gas: 281193) -OnRamp_getFee:test_EmptyMessage_Success() (gas: 102470) -OnRamp_getFee:test_EnforceOutOfOrder_Revert() (gas: 66390) -OnRamp_getFee:test_GetFeeOfZeroForTokenMessage_Success() (gas: 87773) -OnRamp_getFee:test_NotAFeeTokenButPricedToken_Revert() (gas: 34972) -OnRamp_getFee:test_SingleTokenMessage_Success() (gas: 117839) -OnRamp_getFee:test_Unhealthy_Revert() (gas: 17009) -OnRamp_getSupportedTokens:test_GetSupportedTokens_Revert() (gas: 10438) -OnRamp_getTokenPool:test_GetTokenPool_Success() (gas: 35204) -OnRamp_setDynamicConfig:test_SetConfigInvalidConfigFeeAggregatorEqAddressZero_Revert() (gas: 11420) -OnRamp_setDynamicConfig:test_SetConfigInvalidConfigFeeQuoterEqAddressZero_Revert() (gas: 13019) -OnRamp_setDynamicConfig:test_SetConfigInvalidConfig_Revert() (gas: 11377) -OnRamp_setDynamicConfig:test_SetConfigOnlyOwner_Revert() (gas: 16409) -OnRamp_setDynamicConfig:test_SetDynamicConfig_Success() (gas: 55330) -OnRamp_withdrawFeeTokens:test_WithdrawFeeTokens_Success() (gas: 97191) -PingPong_ccipReceive:test_CcipReceive_Success() (gas: 152765) -PingPong_plumbing:test_OutOfOrderExecution_Success() (gas: 20280) -PingPong_plumbing:test_Pausing_Success() (gas: 17780) -PingPong_startPingPong:test_StartPingPong_With_OOO_Success() (gas: 163361) -PingPong_startPingPong:test_StartPingPong_With_Sequenced_Ordered_Success() (gas: 182770) -RMNHome:test() (gas: 186) -RMN_constructor:test_Constructor_Success() (gas: 48874) -RMN_getRecordedCurseRelatedOps:test_OpsPostDeployment() (gas: 19690) -RMN_lazyVoteToCurseUpdate_Benchmark:test_VoteToCurseLazilyRetain3VotersUponConfigChange_gas() (gas: 152263) -RMN_ownerUnbless:test_Unbless_Success() (gas: 74882) -RMN_ownerUnvoteToCurse:test_CanBlessAndCurseAfterGlobalCurseIsLifted() (gas: 471457) -RMN_ownerUnvoteToCurse:test_IsIdempotent() (gas: 398096) -RMN_ownerUnvoteToCurse:test_NonOwner_Revert() (gas: 18669) -RMN_ownerUnvoteToCurse:test_OwnerUnvoteToCurseSuccess_gas() (gas: 357751) -RMN_ownerUnvoteToCurse:test_UnknownVoter_Revert() (gas: 33034) -RMN_ownerUnvoteToCurse_Benchmark:test_OwnerUnvoteToCurse_1Voter_LiftsCurse_gas() (gas: 262211) -RMN_permaBlessing:test_PermaBlessing() (gas: 202691) -RMN_setConfig:test_BlessVoterIsZeroAddress_Revert() (gas: 15494) -RMN_setConfig:test_EitherThresholdIsZero_Revert() (gas: 21095) -RMN_setConfig:test_NonOwner_Revert() (gas: 14719) -RMN_setConfig:test_RepeatedAddress_Revert() (gas: 18213) -RMN_setConfig:test_SetConfigSuccess_gas() (gas: 104080) -RMN_setConfig:test_TotalWeightsSmallerThanEachThreshold_Revert() (gas: 30173) -RMN_setConfig:test_VoteToBlessByEjectedVoter_Revert() (gas: 130363) -RMN_setConfig:test_VotersLengthIsZero_Revert() (gas: 12128) -RMN_setConfig:test_WeightIsZeroAddress_Revert() (gas: 15734) -RMN_setConfig_Benchmark_1:test_SetConfig_7Voters_gas() (gas: 659462) -RMN_setConfig_Benchmark_2:test_ResetConfig_7Voters_gas() (gas: 212484) -RMN_unvoteToCurse:test_InvalidCursesHash() (gas: 26412) -RMN_unvoteToCurse:test_OwnerSkips() (gas: 33813) -RMN_unvoteToCurse:test_OwnerSucceeds() (gas: 63981) -RMN_unvoteToCurse:test_UnauthorizedVoter() (gas: 47598) -RMN_unvoteToCurse:test_ValidCursesHash() (gas: 61127) -RMN_unvoteToCurse:test_VotersCantLiftCurseButOwnerCan() (gas: 628641) -RMN_voteToBless:test_Curse_Revert() (gas: 473252) -RMN_voteToBless:test_IsAlreadyBlessed_Revert() (gas: 115312) -RMN_voteToBless:test_RootSuccess() (gas: 558319) -RMN_voteToBless:test_SenderAlreadyVoted_Revert() (gas: 97177) -RMN_voteToBless:test_UnauthorizedVoter_Revert() (gas: 17096) -RMN_voteToBless_Benchmark:test_1RootSuccess_gas() (gas: 44703) -RMN_voteToBless_Benchmark:test_3RootSuccess_gas() (gas: 98673) -RMN_voteToBless_Benchmark:test_5RootSuccess_gas() (gas: 152581) -RMN_voteToBless_Blessed_Benchmark:test_1RootSuccessBecameBlessed_gas() (gas: 29673) -RMN_voteToBless_Blessed_Benchmark:test_1RootSuccess_gas() (gas: 27619) -RMN_voteToBless_Blessed_Benchmark:test_3RootSuccess_gas() (gas: 81611) -RMN_voteToBless_Blessed_Benchmark:test_5RootSuccess_gas() (gas: 135497) -RMN_voteToCurse:test_CurseOnlyWhenThresholdReached_Success() (gas: 1650405) -RMN_voteToCurse:test_EmptySubjects_Revert() (gas: 14031) -RMN_voteToCurse:test_EvenIfAlreadyCursed_Success() (gas: 534854) -RMN_voteToCurse:test_OwnerCanCurseAndUncurse() (gas: 399532) -RMN_voteToCurse:test_RepeatedSubject_Revert() (gas: 144336) -RMN_voteToCurse:test_ReusedCurseId_Revert() (gas: 146885) -RMN_voteToCurse:test_UnauthorizedVoter_Revert() (gas: 12630) -RMN_voteToCurse:test_VoteToCurse_NoCurse_Success() (gas: 187388) -RMN_voteToCurse:test_VoteToCurse_YesCurse_Success() (gas: 472854) -RMN_voteToCurse_2:test_VotesAreDroppedIfSubjectIsNotCursedDuringConfigChange() (gas: 370837) -RMN_voteToCurse_2:test_VotesAreRetainedIfSubjectIsCursedDuringConfigChange() (gas: 1153282) -RMN_voteToCurse_Benchmark_1:test_VoteToCurse_NewSubject_NewVoter_NoCurse_gas() (gas: 141079) -RMN_voteToCurse_Benchmark_1:test_VoteToCurse_NewSubject_NewVoter_YesCurse_gas() (gas: 165213) -RMN_voteToCurse_Benchmark_2:test_VoteToCurse_OldSubject_NewVoter_NoCurse_gas() (gas: 121413) -RMN_voteToCurse_Benchmark_2:test_VoteToCurse_OldSubject_OldVoter_NoCurse_gas() (gas: 98355) -RMN_voteToCurse_Benchmark_3:test_VoteToCurse_OldSubject_NewVoter_YesCurse_gas() (gas: 145748) -RateLimiter_constructor:test_Constructor_Success() (gas: 19704) -RateLimiter_consume:test_AggregateValueMaxCapacityExceeded_Revert() (gas: 16006) -RateLimiter_consume:test_AggregateValueRateLimitReached_Revert() (gas: 22345) -RateLimiter_consume:test_ConsumeAggregateValue_Success() (gas: 31443) -RateLimiter_consume:test_ConsumeTokens_Success() (gas: 20366) -RateLimiter_consume:test_ConsumeUnlimited_Success() (gas: 40573) -RateLimiter_consume:test_ConsumingMoreThanUint128_Revert() (gas: 15786) -RateLimiter_consume:test_RateLimitReachedOverConsecutiveBlocks_Revert() (gas: 25747) -RateLimiter_consume:test_Refill_Success() (gas: 37354) -RateLimiter_consume:test_TokenMaxCapacityExceeded_Revert() (gas: 18340) -RateLimiter_consume:test_TokenRateLimitReached_Revert() (gas: 24823) -RateLimiter_currentTokenBucketState:test_CurrentTokenBucketState_Success() (gas: 38875) -RateLimiter_currentTokenBucketState:test_Refill_Success() (gas: 46768) -RateLimiter_setTokenBucketConfig:test_SetRateLimiterConfig_Success() (gas: 38446) -RegistryModuleOwnerCustom_constructor:test_constructor_Revert() (gas: 36037) -RegistryModuleOwnerCustom_registerAdminViaGetCCIPAdmin:test_registerAdminViaGetCCIPAdmin_Revert() (gas: 19643) -RegistryModuleOwnerCustom_registerAdminViaGetCCIPAdmin:test_registerAdminViaGetCCIPAdmin_Success() (gas: 129930) -RegistryModuleOwnerCustom_registerAdminViaOwner:test_registerAdminViaOwner_Revert() (gas: 19457) -RegistryModuleOwnerCustom_registerAdminViaOwner:test_registerAdminViaOwner_Success() (gas: 129743) -Router_applyRampUpdates:test_OffRampMismatch_Revert() (gas: 89306) -Router_applyRampUpdates:test_OffRampUpdatesWithRouting() (gas: 10648972) -Router_applyRampUpdates:test_OnRampDisable() (gas: 55971) -Router_applyRampUpdates:test_OnlyOwner_Revert() (gas: 12317) -Router_ccipSend:test_CCIPSendLinkFeeNoTokenSuccess_gas() (gas: 114039) -Router_ccipSend:test_CCIPSendLinkFeeOneTokenSuccess_gas() (gas: 201534) -Router_ccipSend:test_CCIPSendNativeFeeNoTokenSuccess_gas() (gas: 128767) -Router_ccipSend:test_CCIPSendNativeFeeOneTokenSuccess_gas() (gas: 216264) -Router_ccipSend:test_FeeTokenAmountTooLow_Revert() (gas: 66368) -Router_ccipSend:test_InvalidMsgValue() (gas: 32008) -Router_ccipSend:test_NativeFeeTokenInsufficientValue() (gas: 68827) -Router_ccipSend:test_NativeFeeTokenOverpay_Success() (gas: 173903) -Router_ccipSend:test_NativeFeeTokenZeroValue() (gas: 56109) -Router_ccipSend:test_NativeFeeToken_Success() (gas: 172497) -Router_ccipSend:test_NonLinkFeeToken_Success() (gas: 242837) -Router_ccipSend:test_UnsupportedDestinationChain_Revert() (gas: 24761) -Router_ccipSend:test_WhenNotHealthy_Revert() (gas: 44736) -Router_ccipSend:test_WrappedNativeFeeToken_Success() (gas: 174755) -Router_ccipSend:test_ZeroFeeAndGasPrice_Success() (gas: 245046) -Router_constructor:test_Constructor_Success() (gas: 13070) -Router_getArmProxy:test_getArmProxy() (gas: 10561) -Router_getFee:test_GetFeeSupportedChain_Success() (gas: 46536) -Router_getFee:test_UnsupportedDestinationChain_Revert() (gas: 17144) -Router_getSupportedTokens:test_GetSupportedTokens_Revert() (gas: 10460) -Router_recoverTokens:test_RecoverTokensInvalidRecipient_Revert() (gas: 11316) -Router_recoverTokens:test_RecoverTokensNoFunds_Revert() (gas: 20261) -Router_recoverTokens:test_RecoverTokensNonOwner_Revert() (gas: 11159) -Router_recoverTokens:test_RecoverTokensValueReceiver_Revert() (gas: 402507) -Router_recoverTokens:test_RecoverTokens_Success() (gas: 52437) -Router_routeMessage:test_AutoExec_Success() (gas: 42738) -Router_routeMessage:test_ExecutionEvent_Success() (gas: 158166) -Router_routeMessage:test_ManualExec_Success() (gas: 35429) -Router_routeMessage:test_OnlyOffRamp_Revert() (gas: 25140) -Router_routeMessage:test_WhenNotHealthy_Revert() (gas: 44742) -Router_setWrappedNative:test_OnlyOwner_Revert() (gas: 10986) -SelfFundedPingPong_ccipReceive:test_FundingIfNotANop_Revert() (gas: 55572) -SelfFundedPingPong_ccipReceive:test_Funding_Success() (gas: 420162) -SelfFundedPingPong_setCountIncrBeforeFunding:test_setCountIncrBeforeFunding() (gas: 20169) -TokenAdminRegistry_acceptAdminRole:test_acceptAdminRole_OnlyPendingAdministrator_Revert() (gas: 51109) -TokenAdminRegistry_acceptAdminRole:test_acceptAdminRole_Success() (gas: 43956) -TokenAdminRegistry_addRegistryModule:test_addRegistryModule_OnlyOwner_Revert() (gas: 12641) -TokenAdminRegistry_addRegistryModule:test_addRegistryModule_Success() (gas: 67038) -TokenAdminRegistry_getAllConfiguredTokens:test_getAllConfiguredTokens_outOfBounds_Success() (gas: 11350) -TokenAdminRegistry_getPool:test_getPool_Success() (gas: 17596) -TokenAdminRegistry_getPools:test_getPools_Success() (gas: 39920) -TokenAdminRegistry_isAdministrator:test_isAdministrator_Success() (gas: 105946) -TokenAdminRegistry_proposeAdministrator:test_proposeAdministrator_AlreadyRegistered_Revert() (gas: 104067) -TokenAdminRegistry_proposeAdministrator:test_proposeAdministrator_OnlyRegistryModule_Revert() (gas: 15499) -TokenAdminRegistry_proposeAdministrator:test_proposeAdministrator_ZeroAddress_Revert() (gas: 15044) -TokenAdminRegistry_proposeAdministrator:test_proposeAdministrator_module_Success() (gas: 112572) -TokenAdminRegistry_proposeAdministrator:test_proposeAdministrator_owner_Success() (gas: 107686) -TokenAdminRegistry_proposeAdministrator:test_proposeAdministrator_reRegisterWhileUnclaimed_Success() (gas: 115710) -TokenAdminRegistry_removeRegistryModule:test_removeRegistryModule_OnlyOwner_Revert() (gas: 12597) -TokenAdminRegistry_removeRegistryModule:test_removeRegistryModule_Success() (gas: 54495) -TokenAdminRegistry_setPool:test_setPool_InvalidTokenPoolToken_Revert() (gas: 19166) -TokenAdminRegistry_setPool:test_setPool_OnlyAdministrator_Revert() (gas: 18026) -TokenAdminRegistry_setPool:test_setPool_Success() (gas: 35961) -TokenAdminRegistry_setPool:test_setPool_ZeroAddressRemovesPool_Success() (gas: 30635) -TokenAdminRegistry_transferAdminRole:test_transferAdminRole_OnlyAdministrator_Revert() (gas: 18085) -TokenAdminRegistry_transferAdminRole:test_transferAdminRole_Success() (gas: 49390) -TokenPoolAndProxy:test_lockOrBurn_burnMint_Success() (gas: 5945631) -TokenPoolAndProxy:test_lockOrBurn_burnWithFromMint_Success() (gas: 5977107) -TokenPoolAndProxy:test_lockOrBurn_lockRelease_Success() (gas: 6179838) -TokenPoolAndProxy:test_setPreviousPool_Success() (gas: 3334200) -TokenPoolAndProxyMigration:test_tokenPoolMigration_Success_1_2() (gas: 6792268) -TokenPoolAndProxyMigration:test_tokenPoolMigration_Success_1_4() (gas: 7024950) -TokenPoolWithAllowList_applyAllowListUpdates:test_AllowListNotEnabled_Revert() (gas: 2100002) -TokenPoolWithAllowList_applyAllowListUpdates:test_OnlyOwner_Revert() (gas: 12101) -TokenPoolWithAllowList_applyAllowListUpdates:test_SetAllowListSkipsZero_Success() (gas: 23464) -TokenPoolWithAllowList_applyAllowListUpdates:test_SetAllowList_Success() (gas: 177802) -TokenPoolWithAllowList_getAllowList:test_GetAllowList_Success() (gas: 23740) -TokenPoolWithAllowList_getAllowListEnabled:test_GetAllowListEnabled_Success() (gas: 8363) -TokenPoolWithAllowList_setRouter:test_SetRouter_Success() (gas: 24843) -TokenPool_applyChainUpdates:test_applyChainUpdates_DisabledNonZeroRateLimit_Revert() (gas: 271551) -TokenPool_applyChainUpdates:test_applyChainUpdates_InvalidRateLimitRate_Revert() (gas: 542134) -TokenPool_applyChainUpdates:test_applyChainUpdates_NonExistentChain_Revert() (gas: 18449) -TokenPool_applyChainUpdates:test_applyChainUpdates_OnlyCallableByOwner_Revert() (gas: 11391) -TokenPool_applyChainUpdates:test_applyChainUpdates_Success() (gas: 477675) -TokenPool_applyChainUpdates:test_applyChainUpdates_ZeroAddressNotAllowed_Revert() (gas: 157320) -TokenPool_constructor:test_ZeroAddressNotAllowed_Revert() (gas: 70594) -TokenPool_constructor:test_immutableFields_Success() (gas: 20544) -TokenPool_getRemotePool:test_getRemotePool_Success() (gas: 274133) -TokenPool_onlyOffRamp:test_CallerIsNotARampOnRouter_Revert() (gas: 277110) -TokenPool_onlyOffRamp:test_ChainNotAllowed_Revert() (gas: 289682) -TokenPool_onlyOffRamp:test_onlyOffRamp_Success() (gas: 349912) -TokenPool_onlyOnRamp:test_CallerIsNotARampOnRouter_Revert() (gas: 276850) -TokenPool_onlyOnRamp:test_ChainNotAllowed_Revert() (gas: 253710) -TokenPool_onlyOnRamp:test_onlyOnRamp_Success() (gas: 304962) -TokenPool_setChainRateLimiterConfig:test_NonExistentChain_Revert() (gas: 17142) -TokenPool_setChainRateLimiterConfig:test_OnlyOwnerOrRateLimitAdmin_Revert() (gas: 15137) -TokenPool_setRemotePool:test_setRemotePool_NonExistentChain_Reverts() (gas: 15653) -TokenPool_setRemotePool:test_setRemotePool_OnlyOwner_Reverts() (gas: 13201) -TokenPool_setRemotePool:test_setRemotePool_Success() (gas: 282083) -TokenProxy_ccipSend:test_CcipSendGasShouldBeZero_Revert() (gas: 17121) -TokenProxy_ccipSend:test_CcipSendInsufficientAllowance_Revert() (gas: 136330) -TokenProxy_ccipSend:test_CcipSendInvalidToken_Revert() (gas: 15931) -TokenProxy_ccipSend:test_CcipSendNative_Success() (gas: 245419) -TokenProxy_ccipSend:test_CcipSendNoDataAllowed_Revert() (gas: 16315) -TokenProxy_ccipSend:test_CcipSend_Success() (gas: 261760) -TokenProxy_constructor:test_Constructor() (gas: 13812) -TokenProxy_getFee:test_GetFeeGasShouldBeZero_Revert() (gas: 16839) -TokenProxy_getFee:test_GetFeeInvalidToken_Revert() (gas: 12670) -TokenProxy_getFee:test_GetFeeNoDataAllowed_Revert() (gas: 15864) -TokenProxy_getFee:test_GetFee_Success() (gas: 86882) -USDCTokenPool__validateMessage:test_ValidateInvalidMessage_Revert() (gas: 25407) -USDCTokenPool_lockOrBurn:test_CallerIsNotARampOnRouter_Revert() (gas: 35364) -USDCTokenPool_lockOrBurn:test_LockOrBurnWithAllowList_Revert() (gas: 30106) -USDCTokenPool_lockOrBurn:test_LockOrBurn_Success() (gas: 133143) -USDCTokenPool_lockOrBurn:test_UnknownDomain_Revert() (gas: 477468) -USDCTokenPool_releaseOrMint:test_ReleaseOrMintRealTx_Success() (gas: 268219) -USDCTokenPool_releaseOrMint:test_TokenMaxCapacityExceeded_Revert() (gas: 50718) -USDCTokenPool_releaseOrMint:test_UnlockingUSDCFailed_Revert() (gas: 98636) -USDCTokenPool_setDomains:test_InvalidDomain_Revert() (gas: 66174) -USDCTokenPool_setDomains:test_OnlyOwner_Revert() (gas: 11339) -USDCTokenPool_supportsInterface:test_SupportsInterface_Success() (gas: 9876) \ No newline at end of file +ARMProxyStandaloneTest:test_ARMCallEmptyContractRevert() (gas: 20673) +ARMProxyStandaloneTest:test_Constructor() (gas: 543485) +ARMProxyStandaloneTest:test_SetARM() (gas: 18216) +ARMProxyStandaloneTest:test_SetARMzero() (gas: 12144) +ARMProxyTest:test_ARMCallRevertReasonForwarded() (gas: 49764) +ARMProxyTest:test_ARMIsBlessed_Success() (gas: 39781) +ARMProxyTest:test_ARMIsCursed_Success() (gas: 51846) +AggregateTokenLimiter_constructor:test_Constructor_Success() (gas: 31944) +AggregateTokenLimiter_getTokenBucket:test_GetTokenBucket_Success() (gas: 23227) +AggregateTokenLimiter_getTokenBucket:test_Refill_Success() (gas: 55032) +AggregateTokenLimiter_getTokenBucket:test_TimeUnderflow_Revert() (gas: 17640) +AggregateTokenLimiter_getTokenLimitAdmin:test_GetTokenLimitAdmin_Success() (gas: 11188) +AggregateTokenLimiter_getTokenValue:test_GetTokenValue_Success() (gas: 23709) +AggregateTokenLimiter_getTokenValue:test_NoTokenPrice_Reverts() (gas: 25663) +AggregateTokenLimiter_rateLimitValue:test_AggregateValueMaxCapacityExceeded_Revert() (gas: 20854) +AggregateTokenLimiter_rateLimitValue:test_RateLimitValueSuccess_gas() (gas: 19835) +AggregateTokenLimiter_setAdmin:test_OnlyOwnerOrAdmin_Revert() (gas: 13880) +AggregateTokenLimiter_setAdmin:test_Owner_Success() (gas: 20448) +AggregateTokenLimiter_setRateLimiterConfig:test_OnlyOnlyCallableByAdminOrOwner_Revert() (gas: 19396) +AggregateTokenLimiter_setRateLimiterConfig:test_Owner_Success() (gas: 38776) +AggregateTokenLimiter_setRateLimiterConfig:test_TokenLimitAdmin_Success() (gas: 41521) +BurnFromMintTokenPool_lockOrBurn:test_ChainNotAllowed_Revert() (gas: 34256) +BurnFromMintTokenPool_lockOrBurn:test_PoolBurnRevertNotHealthy_Revert() (gas: 60604) +BurnFromMintTokenPool_lockOrBurn:test_PoolBurn_Success() (gas: 293700) +BurnFromMintTokenPool_lockOrBurn:test_Setup_Success() (gas: 28203) +BurnMintTokenPool_lockOrBurn:test_ChainNotAllowed_Revert() (gas: 31296) +BurnMintTokenPool_lockOrBurn:test_PoolBurnRevertNotHealthy_Revert() (gas: 60604) +BurnMintTokenPool_lockOrBurn:test_PoolBurn_Success() (gas: 291204) +BurnMintTokenPool_lockOrBurn:test_Setup_Success() (gas: 20610) +BurnMintTokenPool_releaseOrMint:test_ChainNotAllowed_Revert() (gas: 34256) +BurnMintTokenPool_releaseOrMint:test_PoolMintNotHealthy_Revert() (gas: 63377) +BurnMintTokenPool_releaseOrMint:test_PoolMint_Success() (gas: 122166) +BurnWithFromMintTokenPool_lockOrBurn:test_ChainNotAllowed_Revert() (gas: 34256) +BurnWithFromMintTokenPool_lockOrBurn:test_PoolBurnRevertNotHealthy_Revert() (gas: 60604) +BurnWithFromMintTokenPool_lockOrBurn:test_PoolBurn_Success() (gas: 293726) +BurnWithFromMintTokenPool_lockOrBurn:test_Setup_Success() (gas: 28207) +CCIPClientExample_sanity:test_ImmutableExamples_Success() (gas: 3195742) +CCIPConfigSetup:test_getCapabilityConfiguration_Success() (gas: 10966) +CCIPConfig_ConfigStateMachine:test__computeConfigDigest_Success() (gas: 114127) +CCIPConfig_ConfigStateMachine:test__computeNewConfigWithMeta_InitToRunning_Success() (gas: 440693) +CCIPConfig_ConfigStateMachine:test__computeNewConfigWithMeta_RunningToStaging_Success() (gas: 643146) +CCIPConfig_ConfigStateMachine:test__computeNewConfigWithMeta_StagingToRunning_Success() (gas: 589966) +CCIPConfig_ConfigStateMachine:test__groupByPluginType_TooManyOCR3Configs_Reverts() (gas: 49071) +CCIPConfig_ConfigStateMachine:test__groupByPluginType_threeCommitConfigs_Reverts() (gas: 93009) +CCIPConfig_ConfigStateMachine:test__groupByPluginType_threeExecutionConfigs_Reverts() (gas: 92970) +CCIPConfig_ConfigStateMachine:test__stateFromConfigLength_Success() (gas: 14218) +CCIPConfig_ConfigStateMachine:test__validateConfigStateTransition_Success() (gas: 10556) +CCIPConfig_ConfigStateMachine:test__validateConfigTransition_InitToRunning_Success() (gas: 360566) +CCIPConfig_ConfigStateMachine:test__validateConfigTransition_InitToRunning_WrongConfigCount_Reverts() (gas: 78079) +CCIPConfig_ConfigStateMachine:test__validateConfigTransition_NonExistentConfigTransition_Reverts() (gas: 44997) +CCIPConfig_ConfigStateMachine:test__validateConfigTransition_RunningToStaging_Success() (gas: 467694) +CCIPConfig_ConfigStateMachine:test__validateConfigTransition_RunningToStaging_WrongConfigCount_Reverts() (gas: 197089) +CCIPConfig_ConfigStateMachine:test__validateConfigTransition_RunningToStaging_WrongConfigDigestBlueGreen_Reverts() (gas: 258259) +CCIPConfig_ConfigStateMachine:test__validateConfigTransition_StagingToRunning_Success() (gas: 467345) +CCIPConfig_ConfigStateMachine:test__validateConfigTransition_StagingToRunning_WrongConfigDigest_Reverts() (gas: 258348) +CCIPConfig_ConfigStateMachine:test_getCapabilityConfiguration_Success() (gas: 10989) +CCIPConfig_beforeCapabilityConfigSet:test_beforeCapabilityConfigSet_CommitAndExecConfig_Success() (gas: 1849375) +CCIPConfig_beforeCapabilityConfigSet:test_beforeCapabilityConfigSet_CommitConfigOnly_Success() (gas: 1081834) +CCIPConfig_beforeCapabilityConfigSet:test_beforeCapabilityConfigSet_ExecConfigOnly_Success() (gas: 1081919) +CCIPConfig_beforeCapabilityConfigSet:test_beforeCapabilityConfigSet_OnlyCapabilitiesRegistryCanCall_Reverts() (gas: 10637) +CCIPConfig_beforeCapabilityConfigSet:test_beforeCapabilityConfigSet_ZeroLengthConfig_Success() (gas: 18449) +CCIPConfig_beforeCapabilityConfigSet:test_getCapabilityConfiguration_Success() (gas: 10966) +CCIPConfig_chainConfig:test__applyChainConfigUpdates_FChainNotPositive_Reverts() (gas: 194776) +CCIPConfig_chainConfig:test_applyChainConfigUpdates_addChainConfigs_Success() (gas: 365246) +CCIPConfig_chainConfig:test_applyChainConfigUpdates_nodeNotInRegistry_Reverts() (gas: 27197) +CCIPConfig_chainConfig:test_applyChainConfigUpdates_removeChainConfigs_Success() (gas: 279354) +CCIPConfig_chainConfig:test_applyChainConfigUpdates_selectorNotFound_Reverts() (gas: 16497) +CCIPConfig_chainConfig:test_getCapabilityConfiguration_Success() (gas: 11054) +CCIPConfig_chainConfig:test_getPaginatedCCIPConfigs_Success() (gas: 408217) +CCIPConfig_constructor:test_constructor_Success() (gas: 4765803) +CCIPConfig_constructor:test_constructor_ZeroAddressNotAllowed_Revert() (gas: 64095) +CCIPConfig_updatePluginConfig:test__updatePluginConfig_InitToRunning_Success() (gas: 1069157) +CCIPConfig_updatePluginConfig:test__updatePluginConfig_InvalidConfigLength_Reverts() (gas: 35697) +CCIPConfig_updatePluginConfig:test__updatePluginConfig_InvalidConfigStateTransition_Reverts() (gas: 29544) +CCIPConfig_updatePluginConfig:test__updatePluginConfig_RunningToStaging_Success() (gas: 1989588) +CCIPConfig_updatePluginConfig:test__updatePluginConfig_StagingToRunning_Success() (gas: 2589904) +CCIPConfig_updatePluginConfig:test_getCapabilityConfiguration_Success() (gas: 10966) +CCIPConfig_validateConfig:test__validateConfig_ABIEncodedAddress_OfframpAddressCannotBeZero_Reverts() (gas: 326953) +CCIPConfig_validateConfig:test__validateConfig_ChainSelectorNotFound_Reverts() (gas: 330068) +CCIPConfig_validateConfig:test__validateConfig_ChainSelectorNotSet_Reverts() (gas: 326267) +CCIPConfig_validateConfig:test__validateConfig_FMustBePositive_Reverts() (gas: 328030) +CCIPConfig_validateConfig:test__validateConfig_FTooHigh_Reverts() (gas: 328322) +CCIPConfig_validateConfig:test__validateConfig_NodeNotInRegistry_Reverts() (gas: 410895) +CCIPConfig_validateConfig:test__validateConfig_NotEnoughTransmitters_Reverts() (gas: 1453593) +CCIPConfig_validateConfig:test__validateConfig_OfframpAddressCannotBeZero_Reverts() (gas: 326318) +CCIPConfig_validateConfig:test__validateConfig_P2PIdsLengthNotMatching_Reverts() (gas: 329255) +CCIPConfig_validateConfig:test__validateConfig_Success() (gas: 340710) +CCIPConfig_validateConfig:test__validateConfig_TooManySigners_Reverts() (gas: 669878) +CCIPConfig_validateConfig:test_getCapabilityConfiguration_Success() (gas: 11033) +CommitStore_constructor:test_Constructor_Success() (gas: 4361942) +CommitStore_isUnpausedAndRMNHealthy:test_RMN_Success() (gas: 83130) +CommitStore_report:test_InvalidIntervalMinLargerThanMax_Revert() (gas: 32885) +CommitStore_report:test_InvalidInterval_Revert() (gas: 32781) +CommitStore_report:test_InvalidRootRevert() (gas: 31537) +CommitStore_report:test_OnlyGasPriceUpdates_Success() (gas: 61004) +CommitStore_report:test_OnlyPriceUpdateStaleReport_Revert() (gas: 70437) +CommitStore_report:test_OnlyTokenPriceUpdates_Success() (gas: 61025) +CommitStore_report:test_Paused_Revert() (gas: 22402) +CommitStore_report:test_ReportAndPriceUpdate_Success() (gas: 94701) +CommitStore_report:test_ReportOnlyRootSuccess_gas() (gas: 60020) +CommitStore_report:test_RootAlreadyCommitted_Revert() (gas: 72243) +CommitStore_report:test_StaleReportWithRoot_Success() (gas: 139445) +CommitStore_report:test_Unhealthy_Revert() (gas: 46665) +CommitStore_report:test_ValidPriceUpdateThenStaleReportWithRoot_Success() (gas: 119278) +CommitStore_report:test_ZeroEpochAndRound_Revert() (gas: 32226) +CommitStore_resetUnblessedRoots:test_OnlyOwner_Revert() (gas: 12082) +CommitStore_resetUnblessedRoots:test_ResetUnblessedRoots_Success() (gas: 172098) +CommitStore_setDynamicConfig:test_InvalidCommitStoreConfig_Revert() (gas: 44708) +CommitStore_setDynamicConfig:test_OnlyOwner_Revert() (gas: 44671) +CommitStore_setDynamicConfig:test_PriceEpochCleared_Success() (gas: 150735) +CommitStore_setLatestPriceEpochAndRound:test_OnlyOwner_Revert() (gas: 11970) +CommitStore_setLatestPriceEpochAndRound:test_SetLatestPriceEpochAndRound_Success() (gas: 22566) +CommitStore_setMinSeqNr:test_OnlyOwner_Revert() (gas: 11969) +CommitStore_verify:test_Blessed_Success() (gas: 108814) +CommitStore_verify:test_NotBlessed_Success() (gas: 69299) +CommitStore_verify:test_Paused_Revert() (gas: 19843) +CommitStore_verify:test_TooManyLeaves_Revert() (gas: 85894) +DefensiveExampleTest:test_HappyPath_Success() (gas: 247055) +DefensiveExampleTest:test_Recovery() (gas: 483147) +E2E:test_E2E_3MessagesSuccess_gas() (gas: 1467063) +EVM2EVMOffRamp__releaseOrMintToken:test__releaseOrMintToken_NotACompatiblePool_Revert() (gas: 48827) +EVM2EVMOffRamp__releaseOrMintToken:test__releaseOrMintToken_Success() (gas: 122487) +EVM2EVMOffRamp__releaseOrMintToken:test__releaseOrMintToken_TokenHandlingError_transfer_Revert() (gas: 100439) +EVM2EVMOffRamp__releaseOrMintToken:test_releaseOrMintToken_InvalidDataLength_Revert() (gas: 45166) +EVM2EVMOffRamp__releaseOrMintToken:test_releaseOrMintToken_ReleaseOrMintBalanceMismatch_Revert() (gas: 110906) +EVM2EVMOffRamp__releaseOrMintToken:test_releaseOrMintToken_TokenHandlingError_BalanceOf_Revert() (gas: 47409) +EVM2EVMOffRamp__releaseOrMintToken:test_releaseOrMintToken_skip_ReleaseOrMintBalanceMismatch_if_pool_Revert() (gas: 102213) +EVM2EVMOffRamp__releaseOrMintTokens:test_OverValueWithARLOff_Success() (gas: 459816) +EVM2EVMOffRamp__releaseOrMintTokens:test_PriceNotFoundForToken_Reverts() (gas: 165874) +EVM2EVMOffRamp__releaseOrMintTokens:test_RateLimitErrors_Reverts() (gas: 959150) +EVM2EVMOffRamp__releaseOrMintTokens:test_TokenHandlingError_Reverts() (gas: 210018) +EVM2EVMOffRamp__releaseOrMintTokens:test__releaseOrMintTokens_NotACompatiblePool_Reverts() (gas: 37420) +EVM2EVMOffRamp__releaseOrMintTokens:test_releaseOrMintTokens_InvalidDataLengthReturnData_Revert() (gas: 81689) +EVM2EVMOffRamp__releaseOrMintTokens:test_releaseOrMintTokens_InvalidEVMAddress_Revert() (gas: 52840) +EVM2EVMOffRamp__releaseOrMintTokens:test_releaseOrMintTokens_Success() (gas: 253069) +EVM2EVMOffRamp__releaseOrMintTokens:test_releaseOrMintTokens_destDenominatedDecimals_Success() (gas: 261109) +EVM2EVMOffRamp__report:test_Report_Success() (gas: 150186) +EVM2EVMOffRamp__trialExecute:test_RateLimitError_Success() (gas: 283269) +EVM2EVMOffRamp__trialExecute:test_TokenHandlingErrorIsCaught_Success() (gas: 293386) +EVM2EVMOffRamp__trialExecute:test_TokenPoolIsNotAContract_Success() (gas: 430603) +EVM2EVMOffRamp__trialExecute:test_trialExecute_Success() (gas: 373147) +EVM2EVMOffRamp_ccipReceive:test_Reverts() (gas: 20655) +EVM2EVMOffRamp_constructor:test_CommitStoreAlreadyInUse_Revert() (gas: 162623) +EVM2EVMOffRamp_constructor:test_Constructor_Success() (gas: 7939916) +EVM2EVMOffRamp_constructor:test_ZeroOnRampAddress_Revert() (gas: 152500) +EVM2EVMOffRamp_execute:test_EmptyReport_Revert() (gas: 24199) +EVM2EVMOffRamp_execute:test_InvalidMessageId_Revert() (gas: 47203) +EVM2EVMOffRamp_execute:test_InvalidSourceChain_Revert() (gas: 67004) +EVM2EVMOffRamp_execute:test_InvalidSourcePoolAddress_Success() (gas: 583183) +EVM2EVMOffRamp_execute:test_ManualExecutionNotYetEnabled_Revert() (gas: 61423) +EVM2EVMOffRamp_execute:test_MessageTooLarge_Revert() (gas: 175550) +EVM2EVMOffRamp_execute:test_Paused_Revert() (gas: 139288) +EVM2EVMOffRamp_execute:test_ReceiverError_Success() (gas: 192927) +EVM2EVMOffRamp_execute:test_RetryFailedMessageWithoutManualExecution_Success() (gas: 215419) +EVM2EVMOffRamp_execute:test_RootNotCommitted_Revert() (gas: 55720) +EVM2EVMOffRamp_execute:test_SingleMessageNoTokensUnordered_Success() (gas: 208494) +EVM2EVMOffRamp_execute:test_SingleMessageNoTokens_Success() (gas: 220462) +EVM2EVMOffRamp_execute:test_SingleMessageToNonCCIPReceiver_Success() (gas: 290662) +EVM2EVMOffRamp_execute:test_SingleMessagesNoTokensSuccess_gas() (gas: 134108) +EVM2EVMOffRamp_execute:test_SkippedIncorrectNonceStillExecutes_Success() (gas: 495652) +EVM2EVMOffRamp_execute:test_SkippedIncorrectNonce_Success() (gas: 68824) +EVM2EVMOffRamp_execute:test_StrictUntouchedToSuccess_Success() (gas: 158417) +EVM2EVMOffRamp_execute:test_TokenDataMismatch_Revert() (gas: 65640) +EVM2EVMOffRamp_execute:test_TwoMessagesWithTokensAndGE_Success() (gas: 704951) +EVM2EVMOffRamp_execute:test_TwoMessagesWithTokensSuccess_gas() (gas: 612912) +EVM2EVMOffRamp_execute:test_UnexpectedTokenData_Revert() (gas: 45035) +EVM2EVMOffRamp_execute:test_Unhealthy_Revert() (gas: 705262) +EVM2EVMOffRamp_execute:test_UnsupportedNumberOfTokens_Revert() (gas: 91821) +EVM2EVMOffRamp_execute:test__execute_SkippedAlreadyExecutedMessageUnordered_Success() (gas: 157284) +EVM2EVMOffRamp_execute:test__execute_SkippedAlreadyExecutedMessage_Success() (gas: 175420) +EVM2EVMOffRamp_execute:test_execute_RouterYULCall_Success() (gas: 601571) +EVM2EVMOffRamp_executeSingleMessage:test_MessageSender_Revert() (gas: 23052) +EVM2EVMOffRamp_executeSingleMessage:test_NonContractWithTokens_Success() (gas: 319972) +EVM2EVMOffRamp_executeSingleMessage:test_NonContract_Success() (gas: 23338) +EVM2EVMOffRamp_executeSingleMessage:test_TokenHandlingError_Revert() (gas: 260694) +EVM2EVMOffRamp_executeSingleMessage:test_ZeroGasDONExecution_Revert() (gas: 59576) +EVM2EVMOffRamp_executeSingleMessage:test_executeSingleMessage_NoTokens_Success() (gas: 58690) +EVM2EVMOffRamp_executeSingleMessage:test_executeSingleMessage_WithTokens_Success() (gas: 372829) +EVM2EVMOffRamp_executeSingleMessage:test_executeSingleMessage_ZeroGasZeroData_Success() (gas: 93587) +EVM2EVMOffRamp_execute_upgrade:test_V2NonceNewSenderStartsAtZero_Success() (gas: 279051) +EVM2EVMOffRamp_execute_upgrade:test_V2NonceStartsAtV1Nonce_Success() (gas: 351951) +EVM2EVMOffRamp_execute_upgrade:test_V2OffRampNonceSkipsIfMsgInFlight_Success() (gas: 326170) +EVM2EVMOffRamp_execute_upgrade:test_V2SenderNoncesReadsPreviousRamp_Success() (gas: 303514) +EVM2EVMOffRamp_execute_upgrade:test_V2_Success() (gas: 154916) +EVM2EVMOffRamp_getAllRateLimitTokens:test_GetAllRateLimitTokens_Success() (gas: 42076) +EVM2EVMOffRamp_getExecutionState:test_FillExecutionState_Success() (gas: 5016070) +EVM2EVMOffRamp_getExecutionState:test_GetExecutionState_Success() (gas: 104111) +EVM2EVMOffRamp_manuallyExecute:test_ManualExecFailedTx_Revert() (gas: 234610) +EVM2EVMOffRamp_manuallyExecute:test_ManualExecForkedChain_Revert() (gas: 37344) +EVM2EVMOffRamp_manuallyExecute:test_ManualExecGasLimitMismatch_Revert() (gas: 67784) +EVM2EVMOffRamp_manuallyExecute:test_ManualExecInvalidGasLimit_Revert() (gas: 37732) +EVM2EVMOffRamp_manuallyExecute:test_ManualExecWithMultipleMessagesAndSourceTokens_Success() (gas: 678601) +EVM2EVMOffRamp_manuallyExecute:test_ManualExecWithSourceTokens_Success() (gas: 421424) +EVM2EVMOffRamp_manuallyExecute:test_ManualExec_Success() (gas: 235356) +EVM2EVMOffRamp_manuallyExecute:test_ReentrancyManualExecuteFails_Success() (gas: 3550917) +EVM2EVMOffRamp_manuallyExecute:test_manuallyExecute_DestinationGasAmountCountMismatch_Revert() (gas: 446849) +EVM2EVMOffRamp_manuallyExecute:test_manuallyExecute_DoesNotRevertIfUntouched_Success() (gas: 173700) +EVM2EVMOffRamp_manuallyExecute:test_manuallyExecute_InvalidTokenGasOverride_Revert() (gas: 452018) +EVM2EVMOffRamp_manuallyExecute:test_manuallyExecute_LowGasLimitManualExec_Success() (gas: 681724) +EVM2EVMOffRamp_manuallyExecute:test_manuallyExecute_WithGasOverride_Success() (gas: 239038) +EVM2EVMOffRamp_manuallyExecute:test_manuallyExecute_WithInvalidReceiverExecutionGasOverride_Revert() (gas: 188679) +EVM2EVMOffRamp_manuallyExecute:test_manuallyExecute_WithInvalidSourceTokenDataCount_Revert() (gas: 80150) +EVM2EVMOffRamp_metadataHash:test_MetadataHash_Success() (gas: 10174) +EVM2EVMOffRamp_setDynamicConfig:test_NonOwner_Revert() (gas: 47737) +EVM2EVMOffRamp_setDynamicConfig:test_RouterZeroAddress_Revert() (gas: 46206) +EVM2EVMOffRamp_setDynamicConfig:test_SetDynamicConfig_Success() (gas: 182870) +EVM2EVMOffRamp_updateRateLimitTokens:test_updateRateLimitTokens_AddsAndRemoves_Success() (gas: 171983) +EVM2EVMOffRamp_updateRateLimitTokens:test_updateRateLimitTokens_NonOwner_Revert() (gas: 25219) +EVM2EVMOffRamp_updateRateLimitTokens:test_updateRateLimitTokens_Success() (gas: 205572) +EVM2EVMOnRamp_constructor:test_Constructor_Success() (gas: 7995985) +EVM2EVMOnRamp_forwardFromRouter:test_CannotSendZeroTokens_Revert() (gas: 40118) +EVM2EVMOnRamp_forwardFromRouter:test_EnforceOutOfOrder_Revert() (gas: 112063) +EVM2EVMOnRamp_forwardFromRouter:test_ForwardFromRouterExtraArgsV2AllowOutOfOrderTrue_Success() (gas: 136127) +EVM2EVMOnRamp_forwardFromRouter:test_ForwardFromRouterExtraArgsV2_Success() (gas: 136125) +EVM2EVMOnRamp_forwardFromRouter:test_ForwardFromRouterSuccessCustomExtraArgs() (gas: 147732) +EVM2EVMOnRamp_forwardFromRouter:test_ForwardFromRouterSuccessLegacyExtraArgs() (gas: 160359) +EVM2EVMOnRamp_forwardFromRouter:test_ForwardFromRouter_Success() (gas: 146970) +EVM2EVMOnRamp_forwardFromRouter:test_InvalidAddressEncodePacked_Revert() (gas: 43162) +EVM2EVMOnRamp_forwardFromRouter:test_InvalidAddress_Revert() (gas: 43265) +EVM2EVMOnRamp_forwardFromRouter:test_InvalidChainSelector_Revert() (gas: 28899) +EVM2EVMOnRamp_forwardFromRouter:test_InvalidExtraArgsTag_Revert() (gas: 28541) +EVM2EVMOnRamp_forwardFromRouter:test_MaxCapacityExceeded_Revert() (gas: 95507) +EVM2EVMOnRamp_forwardFromRouter:test_MaxFeeBalanceReached_Revert() (gas: 40651) +EVM2EVMOnRamp_forwardFromRouter:test_MessageGasLimitTooHigh_Revert() (gas: 33116) +EVM2EVMOnRamp_forwardFromRouter:test_MessageTooLarge_Revert() (gas: 119271) +EVM2EVMOnRamp_forwardFromRouter:test_OriginalSender_Revert() (gas: 25711) +EVM2EVMOnRamp_forwardFromRouter:test_OverValueWithARLOff_Success() (gas: 265952) +EVM2EVMOnRamp_forwardFromRouter:test_Paused_Revert() (gas: 60811) +EVM2EVMOnRamp_forwardFromRouter:test_Permissions_Revert() (gas: 28656) +EVM2EVMOnRamp_forwardFromRouter:test_PriceNotFoundForToken_Revert() (gas: 68935) +EVM2EVMOnRamp_forwardFromRouter:test_ShouldIncrementNonceOnlyOnOrdered_Success() (gas: 246017) +EVM2EVMOnRamp_forwardFromRouter:test_ShouldIncrementSeqNumAndNonce_Success() (gas: 231059) +EVM2EVMOnRamp_forwardFromRouter:test_ShouldStoreNonLinkFees() (gas: 154013) +EVM2EVMOnRamp_forwardFromRouter:test_SourceTokenDataTooLarge_Revert() (gas: 5451750) +EVM2EVMOnRamp_forwardFromRouter:test_TooManyTokens_Revert() (gas: 36372) +EVM2EVMOnRamp_forwardFromRouter:test_Unhealthy_Revert() (gas: 46651) +EVM2EVMOnRamp_forwardFromRouter:test_UnsupportedToken_Revert() (gas: 119388) +EVM2EVMOnRamp_forwardFromRouter:test_ZeroAddressReceiver_Revert() (gas: 357179) +EVM2EVMOnRamp_forwardFromRouter:test_forwardFromRouter_ShouldStoreLinkFees_Success() (gas: 122802) +EVM2EVMOnRamp_forwardFromRouter:test_forwardFromRouter_UnsupportedToken_Revert() (gas: 79581) +EVM2EVMOnRamp_forwardFromRouter:test_forwardFromRouter_correctSourceTokenData_Success() (gas: 934543) +EVM2EVMOnRamp_forwardFromRouter_upgrade:test_V2NonceNewSenderStartsAtZero_Success() (gas: 170805) +EVM2EVMOnRamp_forwardFromRouter_upgrade:test_V2NonceStartsAtV1Nonce_Success() (gas: 233734) +EVM2EVMOnRamp_forwardFromRouter_upgrade:test_V2SenderNoncesReadsPreviousRamp_Success() (gas: 149106) +EVM2EVMOnRamp_forwardFromRouter_upgrade:test_V2_Success() (gas: 111551) +EVM2EVMOnRamp_getDataAvailabilityCost:test_EmptyMessageCalculatesDataAvailabilityCost_Success() (gas: 28790) +EVM2EVMOnRamp_getDataAvailabilityCost:test_SimpleMessageCalculatesDataAvailabilityCost_Success() (gas: 29664) +EVM2EVMOnRamp_getFee:test_EmptyMessage_Success() (gas: 108024) +EVM2EVMOnRamp_getFee:test_GetFeeOfZeroForTokenMessage_Success() (gas: 105413) +EVM2EVMOnRamp_getFee:test_HighGasMessage_Success() (gas: 279433) +EVM2EVMOnRamp_getFee:test_MessageGasLimitTooHigh_Revert() (gas: 19531) +EVM2EVMOnRamp_getFee:test_MessageTooLarge_Revert() (gas: 105736) +EVM2EVMOnRamp_getFee:test_MessageWithDataAndTokenTransfer_Success() (gas: 255393) +EVM2EVMOnRamp_getFee:test_NotAFeeToken_Revert() (gas: 28335) +EVM2EVMOnRamp_getFee:test_SingleTokenMessage_Success() (gas: 180077) +EVM2EVMOnRamp_getFee:test_TooManyTokens_Revert() (gas: 24852) +EVM2EVMOnRamp_getFee:test_ZeroDataAvailabilityMultiplier_Success() (gas: 83354) +EVM2EVMOnRamp_getSupportedTokens:test_GetSupportedTokens_Revert() (gas: 11166) +EVM2EVMOnRamp_getTokenPool:test_GetTokenPool_Success() (gas: 41957) +EVM2EVMOnRamp_getTokenTransferCost:test_CustomTokenBpsFee_Success() (gas: 56320) +EVM2EVMOnRamp_getTokenTransferCost:test_FeeTokenBpsFee_Success() (gas: 43066) +EVM2EVMOnRamp_getTokenTransferCost:test_LargeTokenTransferChargesMaxFeeAndGas_Success() (gas: 37875) +EVM2EVMOnRamp_getTokenTransferCost:test_MixedTokenTransferFee_Success() (gas: 196263) +EVM2EVMOnRamp_getTokenTransferCost:test_NoTokenTransferChargesZeroFee_Success() (gas: 17641) +EVM2EVMOnRamp_getTokenTransferCost:test_SmallTokenTransferChargesMinFeeAndGas_Success() (gas: 37525) +EVM2EVMOnRamp_getTokenTransferCost:test_UnsupportedToken_Revert() (gas: 24786) +EVM2EVMOnRamp_getTokenTransferCost:test_ZeroAmountTokenTransferChargesMinFeeAndGas_Success() (gas: 37548) +EVM2EVMOnRamp_getTokenTransferCost:test_ZeroFeeConfigChargesMinFee_Success() (gas: 49698) +EVM2EVMOnRamp_getTokenTransferCost:test__getTokenTransferCost_selfServeUsesDefaults_Success() (gas: 38218) +EVM2EVMOnRamp_linkAvailableForPayment:test_InsufficientLinkBalance_Success() (gas: 36639) +EVM2EVMOnRamp_linkAvailableForPayment:test_LinkAvailableForPayment_Success() (gas: 145939) +EVM2EVMOnRamp_payNops:test_AdminPayNops_Success() (gas: 157645) +EVM2EVMOnRamp_payNops:test_InsufficientBalance_Revert() (gas: 32428) +EVM2EVMOnRamp_payNops:test_NoFeesToPay_Revert() (gas: 135001) +EVM2EVMOnRamp_payNops:test_NoNopsToPay_Revert() (gas: 141695) +EVM2EVMOnRamp_payNops:test_NopPayNops_Success() (gas: 161181) +EVM2EVMOnRamp_payNops:test_OwnerPayNops_Success() (gas: 155453) +EVM2EVMOnRamp_payNops:test_PayNopsSuccessAfterSetNops() (gas: 328800) +EVM2EVMOnRamp_payNops:test_WrongPermissions_Revert() (gas: 15878) +EVM2EVMOnRamp_setDynamicConfig:test_SetConfigInvalidConfig_Revert() (gas: 49643) +EVM2EVMOnRamp_setDynamicConfig:test_SetConfigOnlyOwner_Revert() (gas: 28163) +EVM2EVMOnRamp_setDynamicConfig:test_SetDynamicConfig_Success() (gas: 68220) +EVM2EVMOnRamp_setFeeTokenConfig:test_OnlyCallableByOwnerOrAdmin_Revert() (gas: 14432) +EVM2EVMOnRamp_setFeeTokenConfig:test_SetFeeTokenConfigByAdmin_Success() (gas: 17635) +EVM2EVMOnRamp_setFeeTokenConfig:test_SetFeeTokenConfig_Success() (gas: 14948) +EVM2EVMOnRamp_setNops:test_AdminCanSetNops_Success() (gas: 67974) +EVM2EVMOnRamp_setNops:test_IncludesPayment_Success() (gas: 551687) +EVM2EVMOnRamp_setNops:test_LinkTokenCannotBeNop_Revert() (gas: 61776) +EVM2EVMOnRamp_setNops:test_NonOwnerOrAdmin_Revert() (gas: 16548) +EVM2EVMOnRamp_setNops:test_NotEnoughFundsForPayout_Revert() (gas: 96806) +EVM2EVMOnRamp_setNops:test_SetNopsRemovesOldNopsCompletely_Success() (gas: 64532) +EVM2EVMOnRamp_setNops:test_SetNops_Success() (gas: 185469) +EVM2EVMOnRamp_setNops:test_TooManyNops_Revert() (gas: 415502) +EVM2EVMOnRamp_setNops:test_ZeroAddressCannotBeNop_Revert() (gas: 58089) +EVM2EVMOnRamp_setTokenTransferFeeConfig:test__setTokenTransferFeeConfig_InvalidDestBytesOverhead_Revert() (gas: 17784) +EVM2EVMOnRamp_setTokenTransferFeeConfig:test__setTokenTransferFeeConfig_OnlyCallableByOwnerOrAdmin_Revert() (gas: 15545) +EVM2EVMOnRamp_setTokenTransferFeeConfig:test__setTokenTransferFeeConfig_Success() (gas: 117548) +EVM2EVMOnRamp_setTokenTransferFeeConfig:test__setTokenTransferFeeConfig_byAdmin_Success() (gas: 18795) +EVM2EVMOnRamp_withdrawNonLinkFees:test_LinkBalanceNotSettled_Revert() (gas: 92590) +EVM2EVMOnRamp_withdrawNonLinkFees:test_NonOwnerOrAdmin_Revert() (gas: 16405) +EVM2EVMOnRamp_withdrawNonLinkFees:test_SettlingBalance_Success() (gas: 326944) +EVM2EVMOnRamp_withdrawNonLinkFees:test_WithdrawNonLinkFees_Success() (gas: 58679) +EVM2EVMOnRamp_withdrawNonLinkFees:test_WithdrawToZeroAddress_Revert() (gas: 13676) +EtherSenderReceiverTest_ccipReceive:test_ccipReceive_fallbackToWethTransfer() (gas: 103814) +EtherSenderReceiverTest_ccipReceive:test_ccipReceive_happyPath() (gas: 54732) +EtherSenderReceiverTest_ccipReceive:test_ccipReceive_wrongToken() (gas: 21881) +EtherSenderReceiverTest_ccipReceive:test_ccipReceive_wrongTokenAmount() (gas: 20674) +EtherSenderReceiverTest_ccipSend:test_ccipSend_reverts_insufficientFee_feeToken() (gas: 116467) +EtherSenderReceiverTest_ccipSend:test_ccipSend_reverts_insufficientFee_native() (gas: 91360) +EtherSenderReceiverTest_ccipSend:test_ccipSend_reverts_insufficientFee_weth() (gas: 116371) +EtherSenderReceiverTest_ccipSend:test_ccipSend_success_feeToken() (gas: 167929) +EtherSenderReceiverTest_ccipSend:test_ccipSend_success_native() (gas: 98200) +EtherSenderReceiverTest_ccipSend:test_ccipSend_success_nativeExcess() (gas: 98574) +EtherSenderReceiverTest_ccipSend:test_ccipSend_success_weth() (gas: 117880) +EtherSenderReceiverTest_constructor:test_constructor() (gas: 19659) +EtherSenderReceiverTest_getFee:test_getFee() (gas: 41207) +EtherSenderReceiverTest_validateFeeToken:test_validateFeeToken_reverts_feeToken_tokenAmountNotEqualToMsgValue() (gas: 22872) +EtherSenderReceiverTest_validateFeeToken:test_validateFeeToken_valid_feeToken() (gas: 18390) +EtherSenderReceiverTest_validateFeeToken:test_validateFeeToken_valid_native() (gas: 18420) +EtherSenderReceiverTest_validatedMessage:test_validatedMessage_dataOverwrittenToMsgSender() (gas: 34950) +EtherSenderReceiverTest_validatedMessage:test_validatedMessage_emptyDataOverwrittenToMsgSender() (gas: 34697) +EtherSenderReceiverTest_validatedMessage:test_validatedMessage_invalidTokenAmounts() (gas: 23796) +EtherSenderReceiverTest_validatedMessage:test_validatedMessage_tokenOverwrittenToWeth() (gas: 34674) +EtherSenderReceiverTest_validatedMessage:test_validatedMessage_validMessage_extraArgs() (gas: 36305) +FeeQuoter_applyDestChainConfigUpdates:test_InvalidChainFamilySelector_Revert() (gas: 21287) +FeeQuoter_applyDestChainConfigUpdates:test_InvalidDestChainConfigDestChainSelectorEqZero_Revert() (gas: 21260) +FeeQuoter_applyDestChainConfigUpdates:test_applyDestChainConfigUpdatesDefaultTxGasLimitEqZero_Revert() (gas: 21273) +FeeQuoter_applyDestChainConfigUpdates:test_applyDestChainConfigUpdatesDefaultTxGasLimitGtMaxPerMessageGasLimit_Revert() (gas: 49746) +FeeQuoter_applyDestChainConfigUpdates:test_applyDestChainConfigUpdatesZeroIntput_Success() (gas: 13305) +FeeQuoter_applyDestChainConfigUpdates:test_applyDestChainConfigUpdates_Success() (gas: 168513) +FeeQuoter_applyFeeTokensUpdates:test_ApplyFeeTokensUpdates_Success() (gas: 91740) +FeeQuoter_applyFeeTokensUpdates:test_OnlyCallableByOwner_Revert() (gas: 14447) +FeeQuoter_applyPremiumMultiplierWeiPerEthUpdates:test_OnlyCallableByOwnerOrAdmin_Revert() (gas: 12564) +FeeQuoter_applyPremiumMultiplierWeiPerEthUpdates:test_applyPremiumMultiplierWeiPerEthUpdatesMultipleTokens_Success() (gas: 61121) +FeeQuoter_applyPremiumMultiplierWeiPerEthUpdates:test_applyPremiumMultiplierWeiPerEthUpdatesSingleToken_Success() (gas: 48797) +FeeQuoter_applyPremiumMultiplierWeiPerEthUpdates:test_applyPremiumMultiplierWeiPerEthUpdatesZeroInput() (gas: 13248) +FeeQuoter_applyTokenTransferFeeConfigUpdates:test_ApplyTokenTransferFeeConfig_Success() (gas: 118031) +FeeQuoter_applyTokenTransferFeeConfigUpdates:test_ApplyTokenTransferFeeZeroInput() (gas: 14427) +FeeQuoter_applyTokenTransferFeeConfigUpdates:test_InvalidDestBytesOverhead_Revert() (gas: 21388) +FeeQuoter_applyTokenTransferFeeConfigUpdates:test_OnlyCallableByOwnerOrAdmin_Revert() (gas: 13659) +FeeQuoter_constructor:test_InvalidLinkTokenEqZeroAddress_Revert() (gas: 127795) +FeeQuoter_constructor:test_InvalidMaxFeeJuelsPerMsg_Revert() (gas: 132137) +FeeQuoter_constructor:test_InvalidStalenessThreshold_Revert() (gas: 132184) +FeeQuoter_constructor:test_Setup_Success() (gas: 7901850) +FeeQuoter_convertTokenAmount:test_ConvertTokenAmount_Success() (gas: 79589) +FeeQuoter_convertTokenAmount:test_LinkTokenNotSupported_Revert() (gas: 35880) +FeeQuoter_getDataAvailabilityCost:test_EmptyMessageCalculatesDataAvailabilityCost_Success() (gas: 124958) +FeeQuoter_getDataAvailabilityCost:test_SimpleMessageCalculatesDataAvailabilityCostUnsupportedDestChainSelector_Success() (gas: 20691) +FeeQuoter_getDataAvailabilityCost:test_SimpleMessageCalculatesDataAvailabilityCost_Success() (gas: 33048) +FeeQuoter_getTokenAndGasPrices:test_GetFeeTokenAndGasPrices_Success() (gas: 76271) +FeeQuoter_getTokenAndGasPrices:test_StaleGasPrice_Revert() (gas: 19223) +FeeQuoter_getTokenAndGasPrices:test_UnsupportedChain_Revert() (gas: 17728) +FeeQuoter_getTokenAndGasPrices:test_ZeroGasPrice_Success() (gas: 49961) +FeeQuoter_getTokenPrice:test_GetTokenPriceFromFeed_Success() (gas: 69190) +FeeQuoter_getTokenPrices:test_GetTokenPrices_Success() (gas: 94850) +FeeQuoter_getTokenTransferCost:test_CustomTokenBpsFee_Success() (gas: 53593) +FeeQuoter_getTokenTransferCost:test_FeeTokenBpsFee_Success() (gas: 46576) +FeeQuoter_getTokenTransferCost:test_LargeTokenTransferChargesMaxFeeAndGas_Success() (gas: 39182) +FeeQuoter_getTokenTransferCost:test_MixedTokenTransferFee_Success() (gas: 167349) +FeeQuoter_getTokenTransferCost:test_NoTokenTransferChargesZeroFee_Success() (gas: 25553) +FeeQuoter_getTokenTransferCost:test_SmallTokenTransferChargesMinFeeAndGas_Success() (gas: 38832) +FeeQuoter_getTokenTransferCost:test_ZeroAmountTokenTransferChargesMinFeeAndGas_Success() (gas: 38788) +FeeQuoter_getTokenTransferCost:test_ZeroFeeConfigChargesMinFee_Success() (gas: 53538) +FeeQuoter_getTokenTransferCost:test_getTokenTransferCost_selfServeUsesDefaults_Success() (gas: 40215) +FeeQuoter_getValidatedFee:test_DestinationChainNotEnabled_Revert() (gas: 23180) +FeeQuoter_getValidatedFee:test_EmptyMessage_Success() (gas: 131418) +FeeQuoter_getValidatedFee:test_EnforceOutOfOrder_Revert() (gas: 67650) +FeeQuoter_getValidatedFee:test_HighGasMessage_Success() (gas: 303397) +FeeQuoter_getValidatedFee:test_InvalidEVMAddress_Revert() (gas: 27952) +FeeQuoter_getValidatedFee:test_MessageGasLimitTooHigh_Revert() (gas: 40133) +FeeQuoter_getValidatedFee:test_MessageTooLarge_Revert() (gas: 113039) +FeeQuoter_getValidatedFee:test_MessageWithDataAndTokenTransfer_Success() (gas: 253120) +FeeQuoter_getValidatedFee:test_NotAFeeToken_Revert() (gas: 26700) +FeeQuoter_getValidatedFee:test_SingleTokenMessage_Success() (gas: 194912) +FeeQuoter_getValidatedFee:test_TooManyTokens_Revert() (gas: 29755) +FeeQuoter_getValidatedFee:test_ZeroDataAvailabilityMultiplier_Success() (gas: 85040) +FeeQuoter_getValidatedTokenPrice:test_GetValidatedTokenPriceFromFeedErc20Above18Decimals_Success() (gas: 3422494) +FeeQuoter_getValidatedTokenPrice:test_GetValidatedTokenPriceFromFeedErc20Below18Decimals_Success() (gas: 3422429) +FeeQuoter_getValidatedTokenPrice:test_GetValidatedTokenPriceFromFeedFeedAt0Decimals_Success() (gas: 3402571) +FeeQuoter_getValidatedTokenPrice:test_GetValidatedTokenPriceFromFeedFeedAt18Decimals_Success() (gas: 3422177) +FeeQuoter_getValidatedTokenPrice:test_GetValidatedTokenPriceFromFeedFlippedDecimals_Success() (gas: 3422390) +FeeQuoter_getValidatedTokenPrice:test_GetValidatedTokenPriceFromFeedMaxInt224Value_Success() (gas: 3422184) +FeeQuoter_getValidatedTokenPrice:test_GetValidatedTokenPriceFromFeedOverStalenessPeriod_Success() (gas: 68296) +FeeQuoter_getValidatedTokenPrice:test_GetValidatedTokenPriceFromFeed_Success() (gas: 68130) +FeeQuoter_getValidatedTokenPrice:test_GetValidatedTokenPrice_Success() (gas: 65902) +FeeQuoter_getValidatedTokenPrice:test_OverflowFeedPrice_Revert() (gas: 3421874) +FeeQuoter_getValidatedTokenPrice:test_StaleFeeToken_Success() (gas: 66751) +FeeQuoter_getValidatedTokenPrice:test_TokenNotSupportedFeed_Revert() (gas: 115822) +FeeQuoter_getValidatedTokenPrice:test_TokenNotSupported_Revert() (gas: 15388) +FeeQuoter_getValidatedTokenPrice:test_UnderflowFeedPrice_Revert() (gas: 3419646) +FeeQuoter_onReport:test_OnReport_StaleUpdate_Revert() (gas: 55057) +FeeQuoter_onReport:test_onReport_InvalidForwarder_Reverts() (gas: 27666) +FeeQuoter_onReport:test_onReport_Success() (gas: 100232) +FeeQuoter_onReport:test_onReport_UnsupportedToken_Reverts() (gas: 31209) +FeeQuoter_parseEVMExtraArgsFromBytes:test_EVMExtraArgsDefault_Success() (gas: 23993) +FeeQuoter_parseEVMExtraArgsFromBytes:test_EVMExtraArgsEnforceOutOfOrder_Revert() (gas: 28138) +FeeQuoter_parseEVMExtraArgsFromBytes:test_EVMExtraArgsGasLimitTooHigh_Revert() (gas: 25276) +FeeQuoter_parseEVMExtraArgsFromBytes:test_EVMExtraArgsInvalidExtraArgsTag_Revert() (gas: 24171) +FeeQuoter_parseEVMExtraArgsFromBytes:test_EVMExtraArgsV1_Success() (gas: 25547) +FeeQuoter_parseEVMExtraArgsFromBytes:test_EVMExtraArgsV2_Success() (gas: 26085) +FeeQuoter_processMessageArgs:test_InvalidExtraArgs_Revert() (gas: 20299) +FeeQuoter_processMessageArgs:test_MalformedEVMExtraArgs_Revert() (gas: 20826) +FeeQuoter_processMessageArgs:test_MessageFeeTooHigh_Revert() (gas: 18861) +FeeQuoter_processMessageArgs:test_WitEVMExtraArgsV2_Success() (gas: 34863) +FeeQuoter_processMessageArgs:test_WithConvertedTokenAmount_Success() (gas: 38706) +FeeQuoter_processMessageArgs:test_WithEVMExtraArgsV1_Success() (gas: 33799) +FeeQuoter_processMessageArgs:test_WithEmptyEVMExtraArgs_Success() (gas: 30854) +FeeQuoter_processMessageArgs:test_WithLinkTokenAmount_Success() (gas: 19886) +FeeQuoter_updatePrices:test_OnlyCallableByUpdater_Revert() (gas: 13531) +FeeQuoter_updatePrices:test_OnlyGasPrice_Success() (gas: 27566) +FeeQuoter_updatePrices:test_OnlyTokenPrice_Success() (gas: 34968) +FeeQuoter_updatePrices:test_UpdatableByAuthorizedCaller_Success() (gas: 85430) +FeeQuoter_updatePrices:test_UpdateMultiplePrices_Success() (gas: 172462) +FeeQuoter_updateTokenPriceFeeds:test_FeedNotUpdated() (gas: 57235) +FeeQuoter_updateTokenPriceFeeds:test_FeedUnset_Success() (gas: 76335) +FeeQuoter_updateTokenPriceFeeds:test_FeedUpdatedByNonOwner_Revert() (gas: 22292) +FeeQuoter_updateTokenPriceFeeds:test_MultipleFeedUpdate_Success() (gas: 101420) +FeeQuoter_updateTokenPriceFeeds:test_SingleFeedUpdate_Success() (gas: 57285) +FeeQuoter_updateTokenPriceFeeds:test_ZeroFeeds_Success() (gas: 13254) +FeeQuoter_validateDestFamilyAddress:test_InvalidEVMAddressEncodePacked_Revert() (gas: 12222) +FeeQuoter_validateDestFamilyAddress:test_InvalidEVMAddressPrecompiles_Revert() (gas: 5634878) +FeeQuoter_validateDestFamilyAddress:test_InvalidEVMAddress_Revert() (gas: 12371) +FeeQuoter_validateDestFamilyAddress:test_ValidEVMAddress_Success() (gas: 7769) +FeeQuoter_validateDestFamilyAddress:test_ValidNonEVMAddress_Success() (gas: 7345) +FeeQuoter_validatePoolReturnData:test_InvalidEVMAddressDestToken_Revert() (gas: 51197) +FeeQuoter_validatePoolReturnData:test_ProcessPoolReturnData_Success() (gas: 92633) +FeeQuoter_validatePoolReturnData:test_SourceTokenDataTooLarge_Revert() (gas: 138650) +FeeQuoter_validatePoolReturnData:test_TokenAmountArraysMismatching_Revert() (gas: 47161) +HybridUSDCTokenPoolMigrationTests:test_LockOrBurn_LocKReleaseMechanism_then_switchToPrimary_Success() (gas: 234573) +HybridUSDCTokenPoolMigrationTests:test_LockOrBurn_PrimaryMechanism_Success() (gas: 150728) +HybridUSDCTokenPoolMigrationTests:test_LockOrBurn_WhileMigrationPause_Revert() (gas: 113462) +HybridUSDCTokenPoolMigrationTests:test_LockOrBurn_onLockReleaseMechanism_Success() (gas: 154301) +HybridUSDCTokenPoolMigrationTests:test_MintOrRelease_OnLockReleaseMechanism_Success() (gas: 249477) +HybridUSDCTokenPoolMigrationTests:test_MintOrRelease_OnLockReleaseMechanism_then_switchToPrimary_Success() (gas: 525148) +HybridUSDCTokenPoolMigrationTests:test_MintOrRelease_incomingMessageWithPrimaryMechanism() (gas: 329165) +HybridUSDCTokenPoolMigrationTests:test_burnLockedUSDC_invalidPermissions_Revert() (gas: 41384) +HybridUSDCTokenPoolMigrationTests:test_cancelExistingCCTPMigrationProposal() (gas: 33588) +HybridUSDCTokenPoolMigrationTests:test_cannotCancelANonExistentMigrationProposal() (gas: 12955) +HybridUSDCTokenPoolMigrationTests:test_cannotModifyLiquidityWithoutPermissions_Revert() (gas: 20700) +HybridUSDCTokenPoolMigrationTests:test_lockOrBurn_then_BurnInCCTPMigration_Success() (gas: 281234) +HybridUSDCTokenPoolMigrationTests:test_transferLiquidity_Success() (gas: 168651) +HybridUSDCTokenPoolMigrationTests:test_withdrawLiquidity_Success() (gas: 152516) +HybridUSDCTokenPoolTests:test_LockOrBurn_LocKReleaseMechanism_then_switchToPrimary_Success() (gas: 234556) +HybridUSDCTokenPoolTests:test_LockOrBurn_PrimaryMechanism_Success() (gas: 150684) +HybridUSDCTokenPoolTests:test_LockOrBurn_WhileMigrationPause_Revert() (gas: 113484) +HybridUSDCTokenPoolTests:test_LockOrBurn_onLockReleaseMechanism_Success() (gas: 154301) +HybridUSDCTokenPoolTests:test_MintOrRelease_OnLockReleaseMechanism_Success() (gas: 249477) +HybridUSDCTokenPoolTests:test_MintOrRelease_OnLockReleaseMechanism_then_switchToPrimary_Success() (gas: 525148) +HybridUSDCTokenPoolTests:test_MintOrRelease_incomingMessageWithPrimaryMechanism() (gas: 329120) +HybridUSDCTokenPoolTests:test_withdrawLiquidity_Success() (gas: 152516) +LockReleaseTokenPoolAndProxy_setRebalancer:test_SetRebalancer_Revert() (gas: 11968) +LockReleaseTokenPoolAndProxy_setRebalancer:test_SetRebalancer_Success() (gas: 19761) +LockReleaseTokenPoolPoolAndProxy_canAcceptLiquidity:test_CanAcceptLiquidity_Success() (gas: 5147538) +LockReleaseTokenPoolPoolAndProxy_provideLiquidity:test_LiquidityNotAccepted_Revert() (gas: 5143388) +LockReleaseTokenPoolPoolAndProxy_provideLiquidity:test_Unauthorized_Revert() (gas: 12683) +LockReleaseTokenPoolPoolAndProxy_supportsInterface:test_SupportsInterface_Success() (gas: 11613) +LockReleaseTokenPoolPoolAndProxy_withdrawalLiquidity:test_InsufficientLiquidity_Revert() (gas: 64820) +LockReleaseTokenPoolPoolAndProxy_withdrawalLiquidity:test_Unauthorized_Revert() (gas: 12647) +LockReleaseTokenPool_canAcceptLiquidity:test_CanAcceptLiquidity_Success() (gas: 4775338) +LockReleaseTokenPool_lockOrBurn:test_LockOrBurnWithAllowList_Revert() (gas: 33986) +LockReleaseTokenPool_lockOrBurn:test_LockOrBurnWithAllowList_Success() (gas: 91128) +LockReleaseTokenPool_lockOrBurn:test_PoolBurnRevertNotHealthy_Revert() (gas: 64965) +LockReleaseTokenPool_provideLiquidity:test_LiquidityNotAccepted_Revert() (gas: 4771254) +LockReleaseTokenPool_provideLiquidity:test_Unauthorized_Revert() (gas: 12661) +LockReleaseTokenPool_releaseOrMint:test_ChainNotAllowed_Revert() (gas: 81914) +LockReleaseTokenPool_releaseOrMint:test_PoolMintNotHealthy_Revert() (gas: 63333) +LockReleaseTokenPool_releaseOrMint:test_ReleaseOrMint_Success() (gas: 274666) +LockReleaseTokenPool_setRebalancer:test_SetRebalancer_Revert() (gas: 11990) +LockReleaseTokenPool_setRebalancer:test_SetRebalancer_Success() (gas: 19783) +LockReleaseTokenPool_supportsInterface:test_SupportsInterface_Success() (gas: 11613) +LockReleaseTokenPool_transferLiquidity:test_transferLiquidity_Success() (gas: 88490) +LockReleaseTokenPool_transferLiquidity:test_transferLiquidity_transferTooMuch_Revert() (gas: 59808) +LockReleaseTokenPool_withdrawalLiquidity:test_InsufficientLiquidity_Revert() (gas: 64803) +LockReleaseTokenPool_withdrawalLiquidity:test_Unauthorized_Revert() (gas: 12647) +LockRelease_setRateLimitAdmin:test_SetRateLimitAdmin_Revert() (gas: 12033) +LockRelease_setRateLimitAdmin:test_SetRateLimitAdmin_Success() (gas: 36728) +MerkleMultiProofTest:test_CVE_2023_34459() (gas: 6372) +MerkleMultiProofTest:test_EmptyLeaf_Revert() (gas: 4019) +MerkleMultiProofTest:test_MerkleRoot256() (gas: 668330) +MerkleMultiProofTest:test_MerkleRootSingleLeaf_Success() (gas: 4074) +MerkleMultiProofTest:test_SpecSync_gas() (gas: 49338) +MockRouterTest:test_ccipSendWithInsufficientNativeTokens_Revert() (gas: 37132) +MockRouterTest:test_ccipSendWithInvalidMsgValue_Revert() (gas: 64034) +MockRouterTest:test_ccipSendWithLinkFeeTokenAndValidMsgValue_Success() (gas: 135207) +MockRouterTest:test_ccipSendWithLinkFeeTokenbutInsufficientAllowance_Revert() (gas: 68119) +MockRouterTest:test_ccipSendWithSufficientNativeFeeTokens_Success() (gas: 48343) +MultiAggregateRateLimiter_applyRateLimiterConfigUpdates:test_MultipleConfigsBothLanes_Success() (gas: 150584) +MultiAggregateRateLimiter_applyRateLimiterConfigUpdates:test_MultipleConfigs_Success() (gas: 357431) +MultiAggregateRateLimiter_applyRateLimiterConfigUpdates:test_OnlyCallableByOwner_Revert() (gas: 20693) +MultiAggregateRateLimiter_applyRateLimiterConfigUpdates:test_SingleConfigOutbound_Success() (gas: 85456) +MultiAggregateRateLimiter_applyRateLimiterConfigUpdates:test_SingleConfig_Success() (gas: 85382) +MultiAggregateRateLimiter_applyRateLimiterConfigUpdates:test_UpdateExistingConfigWithNoDifference_Success() (gas: 49626) +MultiAggregateRateLimiter_applyRateLimiterConfigUpdates:test_UpdateExistingConfig_Success() (gas: 68052) +MultiAggregateRateLimiter_applyRateLimiterConfigUpdates:test_ZeroChainSelector_Revert() (gas: 19536) +MultiAggregateRateLimiter_applyRateLimiterConfigUpdates:test_ZeroConfigs_Success() (gas: 13331) +MultiAggregateRateLimiter_constructor:test_ConstructorNoAuthorizedCallers_Success() (gas: 3286151) +MultiAggregateRateLimiter_constructor:test_Constructor_Success() (gas: 3403578) +MultiAggregateRateLimiter_getTokenBucket:test_GetTokenBucket_Success() (gas: 38652) +MultiAggregateRateLimiter_getTokenBucket:test_Refill_Success() (gas: 63823) +MultiAggregateRateLimiter_getTokenBucket:test_TimeUnderflow_Revert() (gas: 18548) +MultiAggregateRateLimiter_getTokenValue:test_GetTokenValue_Success() (gas: 23178) +MultiAggregateRateLimiter_getTokenValue:test_NoTokenPrice_Reverts() (gas: 25136) +MultiAggregateRateLimiter_onInboundMessage:test_ValidateMessageFromUnauthorizedCaller_Revert() (gas: 17951) +MultiAggregateRateLimiter_onInboundMessage:test_ValidateMessageWithDifferentTokensOnDifferentChains_Success() (gas: 247432) +MultiAggregateRateLimiter_onInboundMessage:test_ValidateMessageWithDisabledRateLimitToken_Success() (gas: 70795) +MultiAggregateRateLimiter_onInboundMessage:test_ValidateMessageWithNoTokens_Success() (gas: 21034) +MultiAggregateRateLimiter_onInboundMessage:test_ValidateMessageWithRateLimitDisabled_Success() (gas: 53968) +MultiAggregateRateLimiter_onInboundMessage:test_ValidateMessageWithRateLimitExceeded_Revert() (gas: 61184) +MultiAggregateRateLimiter_onInboundMessage:test_ValidateMessageWithRateLimitReset_Success() (gas: 111753) +MultiAggregateRateLimiter_onInboundMessage:test_ValidateMessageWithTokensOnDifferentChains_Success() (gas: 349968) +MultiAggregateRateLimiter_onInboundMessage:test_ValidateMessageWithTokens_Success() (gas: 64779) +MultiAggregateRateLimiter_onOutboundMessage:test_RateLimitValueDifferentLanes_Success() (gas: 1073654695) +MultiAggregateRateLimiter_onOutboundMessage:test_ValidateMessageWithNoTokens_Success() (gas: 21497) +MultiAggregateRateLimiter_onOutboundMessage:test_onOutboundMessage_ValidateMessageFromUnauthorizedCaller_Revert() (gas: 18167) +MultiAggregateRateLimiter_onOutboundMessage:test_onOutboundMessage_ValidateMessageWithDifferentTokensOnDifferentChains_Success() (gas: 245222) +MultiAggregateRateLimiter_onOutboundMessage:test_onOutboundMessage_ValidateMessageWithDisabledRateLimitToken_Success() (gas: 71566) +MultiAggregateRateLimiter_onOutboundMessage:test_onOutboundMessage_ValidateMessageWithRateLimitDisabled_Success() (gas: 54803) +MultiAggregateRateLimiter_onOutboundMessage:test_onOutboundMessage_ValidateMessageWithRateLimitExceeded_Revert() (gas: 61998) +MultiAggregateRateLimiter_onOutboundMessage:test_onOutboundMessage_ValidateMessageWithRateLimitReset_Success() (gas: 108940) +MultiAggregateRateLimiter_onOutboundMessage:test_onOutboundMessage_ValidateMessageWithTokensOnDifferentChains_Success() (gas: 348095) +MultiAggregateRateLimiter_onOutboundMessage:test_onOutboundMessage_ValidateMessageWithTokens_Success() (gas: 65594) +MultiAggregateRateLimiter_setFeeQuoter:test_OnlyOwner_Revert() (gas: 12286) +MultiAggregateRateLimiter_setFeeQuoter:test_Owner_Success() (gas: 20439) +MultiAggregateRateLimiter_setFeeQuoter:test_ZeroAddress_Revert() (gas: 11124) +MultiAggregateRateLimiter_updateRateLimitTokens:test_NonOwner_Revert() (gas: 26352) +MultiAggregateRateLimiter_updateRateLimitTokens:test_UpdateRateLimitTokensMultipleChains_Success() (gas: 292916) +MultiAggregateRateLimiter_updateRateLimitTokens:test_UpdateRateLimitTokensSingleChain_Success() (gas: 265872) +MultiAggregateRateLimiter_updateRateLimitTokens:test_UpdateRateLimitTokens_AddsAndRemoves_Success() (gas: 214939) +MultiAggregateRateLimiter_updateRateLimitTokens:test_UpdateRateLimitTokens_RemoveNonExistentToken_Success() (gas: 32607) +MultiAggregateRateLimiter_updateRateLimitTokens:test_ZeroDestToken_Revert() (gas: 21085) +MultiAggregateRateLimiter_updateRateLimitTokens:test_ZeroSourceToken_Revert() (gas: 20891) +MultiOCR3Base_setOCR3Configs:test_FMustBePositive_Revert() (gas: 72005) +MultiOCR3Base_setOCR3Configs:test_FTooHigh_Revert() (gas: 48162) +MultiOCR3Base_setOCR3Configs:test_RepeatSignerAddress_Revert() (gas: 296773) +MultiOCR3Base_setOCR3Configs:test_RepeatTransmitterAddress_Revert() (gas: 437288) +MultiOCR3Base_setOCR3Configs:test_SetConfigIgnoreSigners_Success() (gas: 556997) +MultiOCR3Base_setOCR3Configs:test_SetConfigWithSigners_Success() (gas: 874789) +MultiOCR3Base_setOCR3Configs:test_SetConfigWithoutSigners_Success() (gas: 486308) +MultiOCR3Base_setOCR3Configs:test_SetConfigsZeroInput_Success() (gas: 13373) +MultiOCR3Base_setOCR3Configs:test_SetMultipleConfigs_Success() (gas: 2266658) +MultiOCR3Base_setOCR3Configs:test_SignerCannotBeZeroAddress_Revert() (gas: 152886) +MultiOCR3Base_setOCR3Configs:test_StaticConfigChange_Revert() (gas: 841118) +MultiOCR3Base_setOCR3Configs:test_TooManySigners_Revert() (gas: 312015) +MultiOCR3Base_setOCR3Configs:test_TooManyTransmitters_Revert() (gas: 261347) +MultiOCR3Base_setOCR3Configs:test_TransmitterCannotBeZeroAddress_Revert() (gas: 266523) +MultiOCR3Base_setOCR3Configs:test_UpdateConfigSigners_Success() (gas: 930500) +MultiOCR3Base_setOCR3Configs:test_UpdateConfigTransmittersWithoutSigners_Success() (gas: 516788) +MultiOCR3Base_transmit:test_ConfigDigestMismatch_Revert() (gas: 49771) +MultiOCR3Base_transmit:test_ForkedChain_Revert() (gas: 56488) +MultiOCR3Base_transmit:test_InsufficientSignatures_Revert() (gas: 87043) +MultiOCR3Base_transmit:test_NonUniqueSignature_Revert() (gas: 75511) +MultiOCR3Base_transmit:test_SignatureOutOfRegistration_Revert() (gas: 38453) +MultiOCR3Base_transmit:test_TooManySignatures_Revert() (gas: 92076) +MultiOCR3Base_transmit:test_TransmitSigners_gas_Success() (gas: 39865) +MultiOCR3Base_transmit:test_TransmitWithExtraCalldataArgs_Revert() (gas: 52756) +MultiOCR3Base_transmit:test_TransmitWithLessCalldataArgs_Revert() (gas: 30083) +MultiOCR3Base_transmit:test_TransmitWithoutSignatureVerification_gas_Success() (gas: 21035) +MultiOCR3Base_transmit:test_UnAuthorizedTransmitter_Revert() (gas: 29105) +MultiOCR3Base_transmit:test_UnauthorizedSigner_Revert() (gas: 69917) +MultiOCR3Base_transmit:test_UnconfiguredPlugin_Revert() (gas: 42537) +MultiOCR3Base_transmit:test_ZeroSignatures_Revert() (gas: 37478) +MultiOnRampTokenPoolReentrancy:test_OnRampTokenPoolReentrancy_Success() (gas: 547491) +MultiRampsE2E:test_E2E_3MessagesMMultiOffRampSuccess_gas() (gas: 1529929) +NonceManager_NonceIncrementation:test_getIncrementedOutboundNonce_Success() (gas: 40448) +NonceManager_NonceIncrementation:test_incrementInboundNonce_Skip() (gas: 27403) +NonceManager_NonceIncrementation:test_incrementInboundNonce_Success() (gas: 41879) +NonceManager_NonceIncrementation:test_incrementNoncesInboundAndOutbound_Success() (gas: 79874) +NonceManager_OffRampUpgrade:test_NoPrevOffRampForChain_Success() (gas: 317428) +NonceManager_OffRampUpgrade:test_UpgradedNonceNewSenderStartsAtZero_Success() (gas: 324168) +NonceManager_OffRampUpgrade:test_UpgradedNonceStartsAtV1Nonce_Success() (gas: 420048) +NonceManager_OffRampUpgrade:test_UpgradedOffRampNonceSkipsIfMsgInFlight_Success() (gas: 378284) +NonceManager_OffRampUpgrade:test_UpgradedSenderNoncesReadsPreviousRampTransitive_Success() (gas: 327638) +NonceManager_OffRampUpgrade:test_UpgradedSenderNoncesReadsPreviousRamp_Success() (gas: 313233) +NonceManager_OffRampUpgrade:test_Upgraded_Success() (gas: 184571) +NonceManager_OnRampUpgrade:test_UpgradeNonceNewSenderStartsAtZero_Success() (gas: 194138) +NonceManager_OnRampUpgrade:test_UpgradeNonceStartsAtV1Nonce_Success() (gas: 269418) +NonceManager_OnRampUpgrade:test_UpgradeSenderNoncesReadsPreviousRamp_Success() (gas: 153619) +NonceManager_OnRampUpgrade:test_Upgrade_Success() (gas: 126388) +NonceManager_applyPreviousRampsUpdates:test_MultipleRampsUpdates() (gas: 134448) +NonceManager_applyPreviousRampsUpdates:test_PreviousRampAlreadySetOffRamp_Revert() (gas: 47118) +NonceManager_applyPreviousRampsUpdates:test_PreviousRampAlreadySetOnRampAndOffRamp_Revert() (gas: 69128) +NonceManager_applyPreviousRampsUpdates:test_PreviousRampAlreadySetOnRamp_Revert() (gas: 46949) +NonceManager_applyPreviousRampsUpdates:test_SingleRampUpdate() (gas: 72431) +NonceManager_applyPreviousRampsUpdates:test_ZeroInput() (gas: 12892) +NonceManager_typeAndVersion:test_typeAndVersion() (gas: 10623) +OCR2BaseNoChecks_setOCR2Config:test_FMustBePositive_Revert() (gas: 15443) +OCR2BaseNoChecks_setOCR2Config:test_RepeatAddress_Revert() (gas: 48841) +OCR2BaseNoChecks_setOCR2Config:test_SetConfigSuccess_gas() (gas: 97138) +OCR2BaseNoChecks_setOCR2Config:test_TooManyTransmitter_Revert() (gas: 75615) +OCR2BaseNoChecks_setOCR2Config:test_TransmitterCannotBeZeroAddress_Revert() (gas: 32515) +OCR2BaseNoChecks_transmit:test_ConfigDigestMismatch_Revert() (gas: 20081) +OCR2BaseNoChecks_transmit:test_ForkedChain_Revert() (gas: 29888) +OCR2BaseNoChecks_transmit:test_TransmitSuccess_gas() (gas: 30530) +OCR2BaseNoChecks_transmit:test_UnAuthorizedTransmitter_Revert() (gas: 25249) +OCR2Base_setOCR2Config:test_FMustBePositive_Revert() (gas: 15449) +OCR2Base_setOCR2Config:test_FTooHigh_Revert() (gas: 15725) +OCR2Base_setOCR2Config:test_OracleOutOfRegister_Revert() (gas: 21647) +OCR2Base_setOCR2Config:test_RepeatAddress_Revert() (gas: 56234) +OCR2Base_setOCR2Config:test_SetConfigSuccess_gas() (gas: 169648) +OCR2Base_setOCR2Config:test_SingerCannotBeZeroAddress_Revert() (gas: 32751) +OCR2Base_setOCR2Config:test_TooManySigners_Revert() (gas: 34759) +OCR2Base_setOCR2Config:test_TransmitterCannotBeZeroAddress_Revert() (gas: 55992) +OCR2Base_transmit:test_ConfigDigestMismatch_Revert() (gas: 22520) +OCR2Base_transmit:test_ForkedChain_Revert() (gas: 42561) +OCR2Base_transmit:test_NonUniqueSignature_Revert() (gas: 62252) +OCR2Base_transmit:test_SignatureOutOfRegistration_Revert() (gas: 24538) +OCR2Base_transmit:test_Transmit2SignersSuccess_gas() (gas: 58490) +OCR2Base_transmit:test_UnAuthorizedTransmitter_Revert() (gas: 27448) +OCR2Base_transmit:test_UnauthorizedSigner_Revert() (gas: 45597) +OCR2Base_transmit:test_WrongNumberOfSignatures_Revert() (gas: 23593) +OffRamp_afterOC3ConfigSet:test_afterOCR3ConfigSet_SignatureVerificationDisabled_Revert() (gas: 8713610) +OffRamp_applySourceChainConfigUpdates:test_AddMultipleChains_Success() (gas: 495784) +OffRamp_applySourceChainConfigUpdates:test_AddNewChain_Success() (gas: 108012) +OffRamp_applySourceChainConfigUpdates:test_ApplyZeroUpdates_Success() (gas: 13396) +OffRamp_applySourceChainConfigUpdates:test_ReplaceExistingChainOnRamp_Success() (gas: 110731) +OffRamp_applySourceChainConfigUpdates:test_ReplaceExistingChain_Success() (gas: 124744) +OffRamp_applySourceChainConfigUpdates:test_RouterAddress_Revert() (gas: 15779) +OffRamp_applySourceChainConfigUpdates:test_ZeroOnRampAddress_Revert() (gas: 77753) +OffRamp_applySourceChainConfigUpdates:test_ZeroSourceChainSelector_Revert() (gas: 17894) +OffRamp_batchExecute:test_MultipleReportsDifferentChainsSkipCursedChain_Success() (gas: 226338) +OffRamp_batchExecute:test_MultipleReportsDifferentChains_Success() (gas: 429509) +OffRamp_batchExecute:test_MultipleReportsSameChain_Success() (gas: 372465) +OffRamp_batchExecute:test_MultipleReportsSkipDuplicate_Success() (gas: 209836) +OffRamp_batchExecute:test_OutOfBoundsGasLimitsAccess_Revert() (gas: 241079) +OffRamp_batchExecute:test_SingleReport_Success() (gas: 189795) +OffRamp_batchExecute:test_Unhealthy_Success() (gas: 755139) +OffRamp_batchExecute:test_ZeroReports_Revert() (gas: 12056) +OffRamp_ccipReceive:test_Reverts() (gas: 19273) +OffRamp_commit:test_FailedRMNVerification_Reverts() (gas: 76556) +OffRamp_commit:test_InvalidIntervalMinLargerThanMax_Revert() (gas: 82400) +OffRamp_commit:test_InvalidInterval_Revert() (gas: 76445) +OffRamp_commit:test_InvalidOnRamp_Revert() (gas: 108687) +OffRamp_commit:test_InvalidRootRevert() (gas: 74960) +OffRamp_commit:test_NoConfigWithOtherConfigPresent_Revert() (gas: 9360634) +OffRamp_commit:test_NoConfig_Revert() (gas: 8934681) +OffRamp_commit:test_OnlyGasPriceUpdates_Success() (gas: 131455) +OffRamp_commit:test_OnlyPriceUpdateStaleReport_Revert() (gas: 147604) +OffRamp_commit:test_OnlyTokenPriceUpdates_Success() (gas: 131409) +OffRamp_commit:test_PriceSequenceNumberCleared_Success() (gas: 425637) +OffRamp_commit:test_ReportAndPriceUpdate_Success() (gas: 191690) +OffRamp_commit:test_ReportOnlyRootSuccess_gas() (gas: 163656) +OffRamp_commit:test_RootAlreadyCommitted_Revert() (gas: 176069) +OffRamp_commit:test_SourceChainNotEnabled_Revert() (gas: 71763) +OffRamp_commit:test_StaleReportWithRoot_Success() (gas: 288932) +OffRamp_commit:test_UnauthorizedTransmitter_Revert() (gas: 145019) +OffRamp_commit:test_Unhealthy_Revert() (gas: 70989) +OffRamp_commit:test_ValidPriceUpdateThenStaleReportWithRoot_Success() (gas: 256127) +OffRamp_commit:test_ZeroEpochAndRound_Revert() (gas: 60728) +OffRamp_constructor:test_Constructor_Success() (gas: 8935901) +OffRamp_constructor:test_SourceChainSelector_Revert() (gas: 150546) +OffRamp_constructor:test_ZeroChainSelector_Revert() (gas: 113084) +OffRamp_constructor:test_ZeroNonceManager_Revert() (gas: 110886) +OffRamp_constructor:test_ZeroOnRampAddress_Revert() (gas: 176089) +OffRamp_constructor:test_ZeroRMNRemote_Revert() (gas: 110888) +OffRamp_constructor:test_ZeroTokenAdminRegistry_Revert() (gas: 110833) +OffRamp_execute:test_IncorrectArrayType_Revert() (gas: 19253) +OffRamp_execute:test_LargeBatch_Success() (gas: 4831331) +OffRamp_execute:test_MultipleReportsWithPartialValidationFailures_Success() (gas: 468977) +OffRamp_execute:test_MultipleReports_Success() (gas: 395912) +OffRamp_execute:test_NoConfigWithOtherConfigPresent_Revert() (gas: 9784947) +OffRamp_execute:test_NoConfig_Revert() (gas: 8991924) +OffRamp_execute:test_NonArray_Revert() (gas: 34547) +OffRamp_execute:test_SingleReport_Success() (gas: 210425) +OffRamp_execute:test_UnauthorizedTransmitter_Revert() (gas: 173744) +OffRamp_execute:test_WrongConfigWithSigners_Revert() (gas: 9792690) +OffRamp_execute:test_ZeroReports_Revert() (gas: 19219) +OffRamp_executeSingleMessage:test_MessageSender_Revert() (gas: 23911) +OffRamp_executeSingleMessage:test_NonContractWithTokens_Success() (gas: 286273) +OffRamp_executeSingleMessage:test_NonContract_Success() (gas: 26384) +OffRamp_executeSingleMessage:test_TokenHandlingError_Revert() (gas: 245106) +OffRamp_executeSingleMessage:test_ZeroGasDONExecution_Revert() (gas: 60902) +OffRamp_executeSingleMessage:test_executeSingleMessage_NoTokens_Success() (gas: 60040) +OffRamp_executeSingleMessage:test_executeSingleMessage_WithFailingValidationNoRouterCall_Revert() (gas: 270677) +OffRamp_executeSingleMessage:test_executeSingleMessage_WithFailingValidation_Revert() (gas: 101079) +OffRamp_executeSingleMessage:test_executeSingleMessage_WithTokens_Success() (gas: 332414) +OffRamp_executeSingleMessage:test_executeSingleMessage_WithValidation_Success() (gas: 111597) +OffRamp_executeSingleReport:test_DisabledSourceChain_Revert() (gas: 37321) +OffRamp_executeSingleReport:test_EmptyReport_Revert() (gas: 24536) +OffRamp_executeSingleReport:test_InvalidSourcePoolAddress_Success() (gas: 628653) +OffRamp_executeSingleReport:test_ManualExecutionNotYetEnabled_Revert() (gas: 60026) +OffRamp_executeSingleReport:test_MismatchingDestChainSelector_Revert() (gas: 43010) +OffRamp_executeSingleReport:test_NonExistingSourceChain_Revert() (gas: 37846) +OffRamp_executeSingleReport:test_ReceiverError_Success() (gas: 223634) +OffRamp_executeSingleReport:test_RetryFailedMessageWithoutManualExecution_Revert() (gas: 240277) +OffRamp_executeSingleReport:test_RootNotCommitted_Revert() (gas: 51973) +OffRamp_executeSingleReport:test_RouterYULCall_Revert() (gas: 626753) +OffRamp_executeSingleReport:test_SingleMessageNoTokensOtherChain_Success() (gas: 299138) +OffRamp_executeSingleReport:test_SingleMessageNoTokensUnordered_Success() (gas: 255810) +OffRamp_executeSingleReport:test_SingleMessageNoTokens_Success() (gas: 274269) +OffRamp_executeSingleReport:test_SingleMessageToNonCCIPReceiver_Success() (gas: 309063) +OffRamp_executeSingleReport:test_SingleMessagesNoTokensSuccess_gas() (gas: 168861) +OffRamp_executeSingleReport:test_SkippedIncorrectNonceStillExecutes_Success() (gas: 527833) +OffRamp_executeSingleReport:test_SkippedIncorrectNonce_Success() (gas: 73724) +OffRamp_executeSingleReport:test_TokenDataMismatch_Revert() (gas: 87694) +OffRamp_executeSingleReport:test_TwoMessagesWithTokensAndGE_Success() (gas: 759817) +OffRamp_executeSingleReport:test_TwoMessagesWithTokensSuccess_gas() (gas: 690470) +OffRamp_executeSingleReport:test_UnexpectedTokenData_Revert() (gas: 43005) +OffRamp_executeSingleReport:test_UnhealthySingleChainCurse_Revert() (gas: 748570) +OffRamp_executeSingleReport:test_Unhealthy_Success() (gas: 748573) +OffRamp_executeSingleReport:test_WithCurseOnAnotherSourceChain_Success() (gas: 599815) +OffRamp_executeSingleReport:test__execute_SkippedAlreadyExecutedMessageUnordered_Success() (gas: 175111) +OffRamp_executeSingleReport:test__execute_SkippedAlreadyExecutedMessage_Success() (gas: 204028) +OffRamp_getExecutionState:test_FillExecutionState_Success() (gas: 5668716) +OffRamp_getExecutionState:test_GetDifferentChainExecutionState_Success() (gas: 147734) +OffRamp_getExecutionState:test_GetExecutionState_Success() (gas: 111295) +OffRamp_manuallyExecute:test_ManualExecGasLimitMismatchSingleReport_Revert() (gas: 122804) +OffRamp_manuallyExecute:test_ManualExecInvalidGasLimit_Revert() (gas: 37136) +OffRamp_manuallyExecute:test_manuallyExecute_DoesNotRevertIfUntouched_Success() (gas: 208234) +OffRamp_manuallyExecute:test_manuallyExecute_FailedTx_Revert() (gas: 260631) +OffRamp_manuallyExecute:test_manuallyExecute_ForkedChain_Revert() (gas: 36682) +OffRamp_manuallyExecute:test_manuallyExecute_GasLimitMismatchMultipleReports_Revert() (gas: 257676) +OffRamp_manuallyExecute:test_manuallyExecute_LowGasLimit_Success() (gas: 742972) +OffRamp_manuallyExecute:test_manuallyExecute_MultipleReportsWithSingleCursedLane_Revert() (gas: 405854) +OffRamp_manuallyExecute:test_manuallyExecute_ReentrancyFails_Success() (gas: 3547460) +OffRamp_manuallyExecute:test_manuallyExecute_SourceChainSelectorMismatch_Revert() (gas: 197340) +OffRamp_manuallyExecute:test_manuallyExecute_Success() (gas: 279886) +OffRamp_manuallyExecute:test_manuallyExecute_WithGasOverride_Success() (gas: 280613) +OffRamp_manuallyExecute:test_manuallyExecute_WithMultiReportGasOverride_Success() (gas: 1033784) +OffRamp_manuallyExecute:test_manuallyExecute_WithPartialMessages_Success() (gas: 464814) +OffRamp_releaseOrMintSingleToken:test__releaseOrMintSingleToken_NotACompatiblePool_Revert() (gas: 52243) +OffRamp_releaseOrMintSingleToken:test__releaseOrMintSingleToken_Success() (gas: 126618) +OffRamp_releaseOrMintSingleToken:test__releaseOrMintSingleToken_TokenHandlingError_transfer_Revert() (gas: 104072) +OffRamp_releaseOrMintSingleToken:test_releaseOrMintToken_InvalidDataLength_Revert() (gas: 48769) +OffRamp_releaseOrMintSingleToken:test_releaseOrMintToken_ReleaseOrMintBalanceMismatch_Revert() (gas: 114585) +OffRamp_releaseOrMintSingleToken:test_releaseOrMintToken_TokenHandlingError_BalanceOf_Revert() (gas: 51100) +OffRamp_releaseOrMintSingleToken:test_releaseOrMintToken_skip_ReleaseOrMintBalanceMismatch_if_pool_Revert() (gas: 105832) +OffRamp_releaseOrMintTokens:test_TokenHandlingError_Reverts() (gas: 193701) +OffRamp_releaseOrMintTokens:test__releaseOrMintTokens_PoolIsNotAPool_Reverts() (gas: 30888) +OffRamp_releaseOrMintTokens:test_releaseOrMintTokens_InvalidDataLengthReturnData_Revert() (gas: 80897) +OffRamp_releaseOrMintTokens:test_releaseOrMintTokens_InvalidEVMAddress_Revert() (gas: 50105) +OffRamp_releaseOrMintTokens:test_releaseOrMintTokens_PoolDoesNotSupportDest_Reverts() (gas: 100002) +OffRamp_releaseOrMintTokens:test_releaseOrMintTokens_Success() (gas: 213541) +OffRamp_releaseOrMintTokens:test_releaseOrMintTokens_destDenominatedDecimals_Success() (gas: 224262) +OffRamp_setDynamicConfig:test_FeeQuoterZeroAddress_Revert() (gas: 13213) +OffRamp_setDynamicConfig:test_NonOwner_Revert() (gas: 16240) +OffRamp_setDynamicConfig:test_SetDynamicConfigWithValidator_Success() (gas: 55971) +OffRamp_setDynamicConfig:test_SetDynamicConfig_Success() (gas: 33870) +OffRamp_trialExecute:test_RateLimitError_Success() (gas: 270511) +OffRamp_trialExecute:test_TokenHandlingErrorIsCaught_Success() (gas: 280620) +OffRamp_trialExecute:test_TokenPoolIsNotAContract_Success() (gas: 410529) +OffRamp_trialExecute:test_trialExecute_Success() (gas: 340579) +OnRampTokenPoolReentrancy:test_OnRampTokenPoolReentrancy_Success() (gas: 512278) +OnRamp_allowListConfigUpdates:test_applyAllowList_Revert() (gas: 80313) +OnRamp_allowListConfigUpdates:test_applyAllowList_Success() (gas: 354740) +OnRamp_applyDestChainConfigUpdates:test_ApplyDestChainConfigUpdates_Success() (gas: 78476) +OnRamp_applyDestChainConfigUpdates:test_ApplyDestChainConfigUpdates_WithInvalidChainSelector_Revert() (gas: 15598) +OnRamp_constructor:test_Constructor_InvalidConfigChainSelectorEqZero_Revert() (gas: 101837) +OnRamp_constructor:test_Constructor_InvalidConfigNonceManagerEqAddressZero_Revert() (gas: 99743) +OnRamp_constructor:test_Constructor_InvalidConfigRMNProxyEqAddressZero_Revert() (gas: 104729) +OnRamp_constructor:test_Constructor_InvalidConfigTokenAdminRegistryEqAddressZero_Revert() (gas: 99796) +OnRamp_constructor:test_Constructor_Success() (gas: 4294993) +OnRamp_forwardFromRouter:test_ForwardFromRouterExtraArgsV2AllowOutOfOrderTrue_Success() (gas: 134655) +OnRamp_forwardFromRouter:test_ForwardFromRouterExtraArgsV2_Success() (gas: 166583) +OnRamp_forwardFromRouter:test_ForwardFromRouterSuccessCustomExtraArgs() (gas: 165492) +OnRamp_forwardFromRouter:test_ForwardFromRouterSuccessEmptyExtraArgs() (gas: 162725) +OnRamp_forwardFromRouter:test_ForwardFromRouterSuccessLegacyExtraArgs() (gas: 165755) +OnRamp_forwardFromRouter:test_ForwardFromRouter_Success() (gas: 164774) +OnRamp_forwardFromRouter:test_ForwardFromRouter_Success_ConfigurableSourceRouter() (gas: 158716) +OnRamp_forwardFromRouter:test_InvalidExtraArgsTag_Revert() (gas: 32580) +OnRamp_forwardFromRouter:test_MessageValidationError_Revert() (gas: 154423) +OnRamp_forwardFromRouter:test_MesssageFeeTooHigh_Revert() (gas: 31234) +OnRamp_forwardFromRouter:test_MultiCannotSendZeroTokens_Revert() (gas: 82099) +OnRamp_forwardFromRouter:test_OriginalSender_Revert() (gas: 15202) +OnRamp_forwardFromRouter:test_Paused_Revert() (gas: 42751) +OnRamp_forwardFromRouter:test_Permissions_Revert() (gas: 20909) +OnRamp_forwardFromRouter:test_ShouldIncrementNonceOnlyOnOrdered_Success() (gas: 249346) +OnRamp_forwardFromRouter:test_ShouldIncrementSeqNumAndNonce_Success() (gas: 276492) +OnRamp_forwardFromRouter:test_ShouldStoreLinkFees() (gas: 138405) +OnRamp_forwardFromRouter:test_ShouldStoreNonLinkFees() (gas: 164821) +OnRamp_forwardFromRouter:test_SourceTokenDataTooLarge_Revert() (gas: 5533782) +OnRamp_forwardFromRouter:test_UnAllowedOriginalSender_Revert() (gas: 21651) +OnRamp_forwardFromRouter:test_UnsupportedToken_Revert() (gas: 122349) +OnRamp_forwardFromRouter:test_forwardFromRouter_UnsupportedToken_Revert() (gas: 85175) +OnRamp_forwardFromRouter:test_forwardFromRouter_WithValidation_Success() (gas: 331769) +OnRamp_getFee:test_EmptyMessage_Success() (gas: 143077) +OnRamp_getFee:test_EnforceOutOfOrder_Revert() (gas: 80962) +OnRamp_getFee:test_GetFeeOfZeroForTokenMessage_Success() (gas: 115466) +OnRamp_getFee:test_NotAFeeTokenButPricedToken_Revert() (gas: 41569) +OnRamp_getFee:test_SingleTokenMessage_Success() (gas: 173448) +OnRamp_getFee:test_Unhealthy_Revert() (gas: 19992) +OnRamp_getSupportedTokens:test_GetSupportedTokens_Revert() (gas: 11166) +OnRamp_getTokenPool:test_GetTokenPool_Success() (gas: 41998) +OnRamp_setDynamicConfig:test_SetConfigInvalidConfigFeeAggregatorEqAddressZero_Revert() (gas: 13017) +OnRamp_setDynamicConfig:test_SetConfigInvalidConfigFeeQuoterEqAddressZero_Revert() (gas: 15321) +OnRamp_setDynamicConfig:test_SetConfigInvalidConfig_Revert() (gas: 12964) +OnRamp_setDynamicConfig:test_SetConfigOnlyOwner_Revert() (gas: 20542) +OnRamp_setDynamicConfig:test_SetDynamicConfig_Success() (gas: 63269) +OnRamp_withdrawFeeTokens:test_WithdrawFeeTokens_Success() (gas: 104639) +PingPong_ccipReceive:test_CcipReceive_Success() (gas: 177342) +PingPong_plumbing:test_OutOfOrderExecution_Success() (gas: 21848) +PingPong_plumbing:test_Pausing_Success() (gas: 19077) +PingPong_startPingPong:test_StartPingPong_With_OOO_Success() (gas: 199811) +PingPong_startPingPong:test_StartPingPong_With_Sequenced_Ordered_Success() (gas: 218627) +RMNHome:test() (gas: 254) +RMN_constructor:test_Constructor_Success() (gas: 63037) +RMN_getRecordedCurseRelatedOps:test_OpsPostDeployment() (gas: 24609) +RMN_lazyVoteToCurseUpdate_Benchmark:test_VoteToCurseLazilyRetain3VotersUponConfigChange_gas() (gas: 159340) +RMN_ownerUnbless:test_Unbless_Success() (gas: 103665) +RMN_ownerUnvoteToCurse:test_CanBlessAndCurseAfterGlobalCurseIsLifted() (gas: 527240) +RMN_ownerUnvoteToCurse:test_IsIdempotent() (gas: 461028) +RMN_ownerUnvoteToCurse:test_NonOwner_Revert() (gas: 25696) +RMN_ownerUnvoteToCurse:test_OwnerUnvoteToCurseSuccess_gas() (gas: 402269) +RMN_ownerUnvoteToCurse:test_UnknownVoter_Revert() (gas: 37341) +RMN_ownerUnvoteToCurse_Benchmark:test_OwnerUnvoteToCurse_1Voter_LiftsCurse_gas() (gas: 310729) +RMN_permaBlessing:test_PermaBlessing() (gas: 234032) +RMN_setConfig:test_BlessVoterIsZeroAddress_Revert() (gas: 19944) +RMN_setConfig:test_EitherThresholdIsZero_Revert() (gas: 29093) +RMN_setConfig:test_NonOwner_Revert() (gas: 19180) +RMN_setConfig:test_RepeatedAddress_Revert() (gas: 24182) +RMN_setConfig:test_SetConfigSuccess_gas() (gas: 121383) +RMN_setConfig:test_TotalWeightsSmallerThanEachThreshold_Revert() (gas: 42230) +RMN_setConfig:test_VoteToBlessByEjectedVoter_Revert() (gas: 150092) +RMN_setConfig:test_VotersLengthIsZero_Revert() (gas: 13777) +RMN_setConfig:test_WeightIsZeroAddress_Revert() (gas: 20193) +RMN_setConfig_Benchmark_1:test_SetConfig_7Voters_gas() (gas: 699447) +RMN_setConfig_Benchmark_2:test_ResetConfig_7Voters_gas() (gas: 262912) +RMN_unvoteToCurse:test_InvalidCursesHash() (gas: 29467) +RMN_unvoteToCurse:test_OwnerSkips() (gas: 38039) +RMN_unvoteToCurse:test_OwnerSucceeds() (gas: 69773) +RMN_unvoteToCurse:test_UnauthorizedVoter() (gas: 59241) +RMN_unvoteToCurse:test_ValidCursesHash() (gas: 66142) +RMN_unvoteToCurse:test_VotersCantLiftCurseButOwnerCan() (gas: 729679) +RMN_voteToBless:test_Curse_Revert() (gas: 496801) +RMN_voteToBless:test_IsAlreadyBlessed_Revert() (gas: 147850) +RMN_voteToBless:test_RootSuccess() (gas: 745652) +RMN_voteToBless:test_SenderAlreadyVoted_Revert() (gas: 123496) +RMN_voteToBless:test_UnauthorizedVoter_Revert() (gas: 19508) +RMN_voteToBless_Benchmark:test_1RootSuccess_gas() (gas: 49435) +RMN_voteToBless_Benchmark:test_3RootSuccess_gas() (gas: 110271) +RMN_voteToBless_Benchmark:test_5RootSuccess_gas() (gas: 171045) +RMN_voteToBless_Blessed_Benchmark:test_1RootSuccessBecameBlessed_gas() (gas: 34790) +RMN_voteToBless_Blessed_Benchmark:test_1RootSuccess_gas() (gas: 32338) +RMN_voteToBless_Blessed_Benchmark:test_3RootSuccess_gas() (gas: 93196) +RMN_voteToBless_Blessed_Benchmark:test_5RootSuccess_gas() (gas: 153948) +RMN_voteToCurse:test_CurseOnlyWhenThresholdReached_Success() (gas: 1748779) +RMN_voteToCurse:test_EmptySubjects_Revert() (gas: 15996) +RMN_voteToCurse:test_EvenIfAlreadyCursed_Success() (gas: 564086) +RMN_voteToCurse:test_OwnerCanCurseAndUncurse() (gas: 471086) +RMN_voteToCurse:test_RepeatedSubject_Revert() (gas: 151480) +RMN_voteToCurse:test_ReusedCurseId_Revert() (gas: 155411) +RMN_voteToCurse:test_UnauthorizedVoter_Revert() (gas: 14537) +RMN_voteToCurse:test_VoteToCurse_NoCurse_Success() (gas: 203894) +RMN_voteToCurse:test_VoteToCurse_YesCurse_Success() (gas: 495649) +RMN_voteToCurse_2:test_VotesAreDroppedIfSubjectIsNotCursedDuringConfigChange() (gas: 417003) +RMN_voteToCurse_2:test_VotesAreRetainedIfSubjectIsCursedDuringConfigChange() (gas: 1339323) +RMN_voteToCurse_Benchmark_1:test_VoteToCurse_NewSubject_NewVoter_NoCurse_gas() (gas: 146898) +RMN_voteToCurse_Benchmark_1:test_VoteToCurse_NewSubject_NewVoter_YesCurse_gas() (gas: 171152) +RMN_voteToCurse_Benchmark_2:test_VoteToCurse_OldSubject_NewVoter_NoCurse_gas() (gas: 126446) +RMN_voteToCurse_Benchmark_2:test_VoteToCurse_OldSubject_OldVoter_NoCurse_gas() (gas: 102691) +RMN_voteToCurse_Benchmark_3:test_VoteToCurse_OldSubject_NewVoter_YesCurse_gas() (gas: 151187) +RateLimiter_constructor:test_Constructor_Success() (gas: 22964) +RateLimiter_consume:test_AggregateValueMaxCapacityExceeded_Revert() (gas: 19839) +RateLimiter_consume:test_AggregateValueRateLimitReached_Revert() (gas: 28311) +RateLimiter_consume:test_ConsumeAggregateValue_Success() (gas: 39405) +RateLimiter_consume:test_ConsumeTokens_Success() (gas: 21919) +RateLimiter_consume:test_ConsumeUnlimited_Success() (gas: 57402) +RateLimiter_consume:test_ConsumingMoreThanUint128_Revert() (gas: 19531) +RateLimiter_consume:test_RateLimitReachedOverConsecutiveBlocks_Revert() (gas: 33020) +RateLimiter_consume:test_Refill_Success() (gas: 48170) +RateLimiter_consume:test_TokenMaxCapacityExceeded_Revert() (gas: 22450) +RateLimiter_consume:test_TokenRateLimitReached_Revert() (gas: 31057) +RateLimiter_currentTokenBucketState:test_CurrentTokenBucketState_Success() (gas: 49681) +RateLimiter_currentTokenBucketState:test_Refill_Success() (gas: 63750) +RateLimiter_setTokenBucketConfig:test_SetRateLimiterConfig_Success() (gas: 48188) +RegistryModuleOwnerCustom_constructor:test_constructor_Revert() (gas: 36711) +RegistryModuleOwnerCustom_registerAdminViaGetCCIPAdmin:test_registerAdminViaGetCCIPAdmin_Revert() (gas: 22517) +RegistryModuleOwnerCustom_registerAdminViaGetCCIPAdmin:test_registerAdminViaGetCCIPAdmin_Success() (gas: 137341) +RegistryModuleOwnerCustom_registerAdminViaOwner:test_registerAdminViaOwner_Revert() (gas: 22359) +RegistryModuleOwnerCustom_registerAdminViaOwner:test_registerAdminViaOwner_Success() (gas: 137182) +Router_applyRampUpdates:test_OffRampMismatch_Revert() (gas: 93496) +Router_applyRampUpdates:test_OffRampUpdatesWithRouting() (gas: 12348645) +Router_applyRampUpdates:test_OnRampDisable() (gas: 65150) +Router_applyRampUpdates:test_OnlyOwner_Revert() (gas: 13275) +Router_ccipSend:test_CCIPSendLinkFeeNoTokenSuccess_gas() (gas: 133628) +Router_ccipSend:test_CCIPSendLinkFeeOneTokenSuccess_gas() (gas: 240450) +Router_ccipSend:test_CCIPSendNativeFeeNoTokenSuccess_gas() (gas: 150932) +Router_ccipSend:test_CCIPSendNativeFeeOneTokenSuccess_gas() (gas: 257734) +Router_ccipSend:test_FeeTokenAmountTooLow_Revert() (gas: 80339) +Router_ccipSend:test_InvalidMsgValue() (gas: 35871) +Router_ccipSend:test_NativeFeeTokenInsufficientValue() (gas: 83151) +Router_ccipSend:test_NativeFeeTokenOverpay_Success() (gas: 208593) +Router_ccipSend:test_NativeFeeTokenZeroValue() (gas: 67498) +Router_ccipSend:test_NativeFeeToken_Success() (gas: 206349) +Router_ccipSend:test_NonLinkFeeToken_Success() (gas: 271781) +Router_ccipSend:test_UnsupportedDestinationChain_Revert() (gas: 28660) +Router_ccipSend:test_WhenNotHealthy_Revert() (gas: 48532) +Router_ccipSend:test_WrappedNativeFeeToken_Success() (gas: 210892) +Router_ccipSend:test_ZeroFeeAndGasPrice_Success() (gas: 287439) +Router_constructor:test_Constructor_Success() (gas: 14515) +Router_getArmProxy:test_getArmProxy() (gas: 11328) +Router_getFee:test_GetFeeSupportedChain_Success() (gas: 57871) +Router_getFee:test_UnsupportedDestinationChain_Revert() (gas: 20945) +Router_getSupportedTokens:test_GetSupportedTokens_Revert() (gas: 11166) +Router_recoverTokens:test_RecoverTokensInvalidRecipient_Revert() (gas: 12807) +Router_recoverTokens:test_RecoverTokensNoFunds_Revert() (gas: 21382) +Router_recoverTokens:test_RecoverTokensNonOwner_Revert() (gas: 12776) +Router_recoverTokens:test_RecoverTokensValueReceiver_Revert() (gas: 603372) +Router_recoverTokens:test_RecoverTokens_Success() (gas: 59811) +Router_routeMessage:test_AutoExec_Success() (gas: 52571) +Router_routeMessage:test_ExecutionEvent_Success() (gas: 183071) +Router_routeMessage:test_ManualExec_Success() (gas: 41748) +Router_routeMessage:test_OnlyOffRamp_Revert() (gas: 28290) +Router_routeMessage:test_WhenNotHealthy_Revert() (gas: 47722) +Router_setWrappedNative:test_OnlyOwner_Revert() (gas: 11766) +SelfFundedPingPong_ccipReceive:test_FundingIfNotANop_Revert() (gas: 62294) +SelfFundedPingPong_ccipReceive:test_Funding_Success() (gas: 564049) +SelfFundedPingPong_setCountIncrBeforeFunding:test_setCountIncrBeforeFunding() (gas: 22195) +TokenAdminRegistry_acceptAdminRole:test_acceptAdminRole_OnlyPendingAdministrator_Revert() (gas: 58611) +TokenAdminRegistry_acceptAdminRole:test_acceptAdminRole_Success() (gas: 50532) +TokenAdminRegistry_addRegistryModule:test_addRegistryModule_OnlyOwner_Revert() (gas: 14159) +TokenAdminRegistry_addRegistryModule:test_addRegistryModule_Success() (gas: 70293) +TokenAdminRegistry_getAllConfiguredTokens:test_getAllConfiguredTokens_outOfBounds_Success() (gas: 12680) +TokenAdminRegistry_getPool:test_getPool_Success() (gas: 18649) +TokenAdminRegistry_getPools:test_getPools_Success() (gas: 48161) +TokenAdminRegistry_isAdministrator:test_isAdministrator_Success() (gas: 113861) +TokenAdminRegistry_proposeAdministrator:test_proposeAdministrator_AlreadyRegistered_Revert() (gas: 109470) +TokenAdminRegistry_proposeAdministrator:test_proposeAdministrator_OnlyRegistryModule_Revert() (gas: 17535) +TokenAdminRegistry_proposeAdministrator:test_proposeAdministrator_ZeroAddress_Revert() (gas: 16768) +TokenAdminRegistry_proposeAdministrator:test_proposeAdministrator_module_Success() (gas: 123148) +TokenAdminRegistry_proposeAdministrator:test_proposeAdministrator_owner_Success() (gas: 114227) +TokenAdminRegistry_proposeAdministrator:test_proposeAdministrator_reRegisterWhileUnclaimed_Success() (gas: 123889) +TokenAdminRegistry_removeRegistryModule:test_removeRegistryModule_OnlyOwner_Revert() (gas: 14115) +TokenAdminRegistry_removeRegistryModule:test_removeRegistryModule_Success() (gas: 58226) +TokenAdminRegistry_setPool:test_setPool_InvalidTokenPoolToken_Revert() (gas: 21992) +TokenAdminRegistry_setPool:test_setPool_OnlyAdministrator_Revert() (gas: 20133) +TokenAdminRegistry_setPool:test_setPool_Success() (gas: 41047) +TokenAdminRegistry_setPool:test_setPool_ZeroAddressRemovesPool_Success() (gas: 35795) +TokenAdminRegistry_transferAdminRole:test_transferAdminRole_OnlyAdministrator_Revert() (gas: 20198) +TokenAdminRegistry_transferAdminRole:test_transferAdminRole_Success() (gas: 54721) +TokenPoolAndProxy:test_lockOrBurn_burnMint_Success() (gas: 8984851) +TokenPoolAndProxy:test_lockOrBurn_burnWithFromMint_Success() (gas: 9017404) +TokenPoolAndProxy:test_lockOrBurn_lockRelease_Success() (gas: 9314221) +TokenPoolAndProxy:test_setPreviousPool_Success() (gas: 5168919) +TokenPoolAndProxyMigration:test_tokenPoolMigration_Success_1_2() (gas: 9978681) +TokenPoolAndProxyMigration:test_tokenPoolMigration_Success_1_4() (gas: 10176990) +TokenPoolWithAllowList_applyAllowListUpdates:test_AllowListNotEnabled_Revert() (gas: 3418174) +TokenPoolWithAllowList_applyAllowListUpdates:test_OnlyOwner_Revert() (gas: 13392) +TokenPoolWithAllowList_applyAllowListUpdates:test_SetAllowListSkipsZero_Success() (gas: 26742) +TokenPoolWithAllowList_applyAllowListUpdates:test_SetAllowList_Success() (gas: 189536) +TokenPoolWithAllowList_getAllowList:test_GetAllowList_Success() (gas: 25742) +TokenPoolWithAllowList_getAllowListEnabled:test_GetAllowListEnabled_Success() (gas: 8788) +TokenPoolWithAllowList_setRouter:test_SetRouter_Success() (gas: 28100) +TokenPool_applyChainUpdates:test_applyChainUpdates_DisabledNonZeroRateLimit_Revert() (gas: 282666) +TokenPool_applyChainUpdates:test_applyChainUpdates_InvalidRateLimitRate_Revert() (gas: 580050) +TokenPool_applyChainUpdates:test_applyChainUpdates_NonExistentChain_Revert() (gas: 22750) +TokenPool_applyChainUpdates:test_applyChainUpdates_OnlyCallableByOwner_Revert() (gas: 12333) +TokenPool_applyChainUpdates:test_applyChainUpdates_Success() (gas: 534354) +TokenPool_applyChainUpdates:test_applyChainUpdates_ZeroAddressNotAllowed_Revert() (gas: 165350) +TokenPool_constructor:test_ZeroAddressNotAllowed_Revert() (gas: 74247) +TokenPool_constructor:test_immutableFields_Success() (gas: 23251) +TokenPool_getRemotePool:test_getRemotePool_Success() (gas: 285082) +TokenPool_onlyOffRamp:test_CallerIsNotARampOnRouter_Revert() (gas: 287212) +TokenPool_onlyOffRamp:test_ChainNotAllowed_Revert() (gas: 305616) +TokenPool_onlyOffRamp:test_onlyOffRamp_Success() (gas: 361142) +TokenPool_onlyOnRamp:test_CallerIsNotARampOnRouter_Revert() (gas: 286591) +TokenPool_onlyOnRamp:test_ChainNotAllowed_Revert() (gas: 269389) +TokenPool_onlyOnRamp:test_onlyOnRamp_Success() (gas: 315814) +TokenPool_setChainRateLimiterConfig:test_NonExistentChain_Revert() (gas: 19578) +TokenPool_setChainRateLimiterConfig:test_OnlyOwnerOrRateLimitAdmin_Revert() (gas: 17926) +TokenPool_setRemotePool:test_setRemotePool_NonExistentChain_Reverts() (gas: 17612) +TokenPool_setRemotePool:test_setRemotePool_OnlyOwner_Reverts() (gas: 15337) +TokenPool_setRemotePool:test_setRemotePool_Success() (gas: 293732) +TokenProxy_ccipSend:test_CcipSendGasShouldBeZero_Revert() (gas: 20582) +TokenProxy_ccipSend:test_CcipSendInsufficientAllowance_Revert() (gas: 160687) +TokenProxy_ccipSend:test_CcipSendInvalidToken_Revert() (gas: 18599) +TokenProxy_ccipSend:test_CcipSendNative_Success() (gas: 291712) +TokenProxy_ccipSend:test_CcipSendNoDataAllowed_Revert() (gas: 19019) +TokenProxy_ccipSend:test_CcipSend_Success() (gas: 311441) +TokenProxy_constructor:test_Constructor() (gas: 15309) +TokenProxy_getFee:test_GetFeeGasShouldBeZero_Revert() (gas: 20176) +TokenProxy_getFee:test_GetFeeInvalidToken_Revert() (gas: 14693) +TokenProxy_getFee:test_GetFeeNoDataAllowed_Revert() (gas: 18513) +TokenProxy_getFee:test_GetFee_Success() (gas: 120543) +USDCTokenPool__validateMessage:test_ValidateInvalidMessage_Revert() (gas: 37856) +USDCTokenPool_lockOrBurn:test_CallerIsNotARampOnRouter_Revert() (gas: 40114) +USDCTokenPool_lockOrBurn:test_LockOrBurnWithAllowList_Revert() (gas: 34440) +USDCTokenPool_lockOrBurn:test_LockOrBurn_Success() (gas: 147394) +USDCTokenPool_lockOrBurn:test_UnknownDomain_Revert() (gas: 546719) +USDCTokenPool_releaseOrMint:test_ReleaseOrMintRealTx_Success() (gas: 326433) +USDCTokenPool_releaseOrMint:test_TokenMaxCapacityExceeded_Revert() (gas: 59047) +USDCTokenPool_releaseOrMint:test_UnlockingUSDCFailed_Revert() (gas: 112325) +USDCTokenPool_setDomains:test_InvalidDomain_Revert() (gas: 74539) +USDCTokenPool_setDomains:test_OnlyOwner_Revert() (gas: 12298) +USDCTokenPool_supportsInterface:test_SupportsInterface_Success() (gas: 11479) \ No newline at end of file diff --git a/contracts/src/v0.8/ccip/offRamp/OffRamp.sol b/contracts/src/v0.8/ccip/offRamp/OffRamp.sol index a236feeb2c..7de4ce204e 100644 --- a/contracts/src/v0.8/ccip/offRamp/OffRamp.sol +++ b/contracts/src/v0.8/ccip/offRamp/OffRamp.sol @@ -60,6 +60,8 @@ contract OffRamp is ITypeAndVersion, MultiOCR3Base { error InvalidMessageDestChainSelector(uint64 messageDestChainSelector); error SourceChainSelectorMismatch(uint64 reportSourceChainSelector, uint64 messageSourceChainSelector); error SignatureVerificationDisabled(); + error InvalidOnRamp(bytes reportOnRamp, bytes configOnRamp); + error InvalidOnRampUpdate(); /// @dev Atlas depends on this event, if changing, please notify Atlas. event StaticConfigSet(StaticConfig staticConfig); @@ -609,7 +611,7 @@ contract OffRamp is ITypeAndVersion, MultiOCR3Base { if (commitReport.merkleRoots.length == 0) revert StaleCommitReport(); } } - + for (uint256 i = 0; i < commitReport.merkleRoots.length; ++i) { Internal.MerkleRoot memory root = commitReport.merkleRoots[i]; uint64 sourceChainSelector = root.sourceChainSelector; @@ -619,6 +621,11 @@ contract OffRamp is ITypeAndVersion, MultiOCR3Base { } SourceChainConfig storage sourceChainConfig = _getEnabledSourceChainConfig(sourceChainSelector); + bytes memory onRamp = sourceChainConfig.onRamp; + + if (keccak256(root.onRampAddress) != keccak256(onRamp)) { + revert InvalidOnRamp(root.onRampAddress, onRamp); + } if (sourceChainConfig.minSeqNr != root.minSeqNr || root.minSeqNr > root.maxSeqNr) { revert InvalidInterval(root.sourceChainSelector, root.minSeqNr, root.maxSeqNr); @@ -752,10 +759,17 @@ contract OffRamp is ITypeAndVersion, MultiOCR3Base { revert ZeroAddressNotAllowed(); } - currentConfig.onRamp = newOnRamp; + // OnRamp updates should only happens due to a misconfiguration + // If an OnRamp is misconfigured not reports should have been committed and no messages should have been executed + // This is enforced byt the onRamp address check in the commit function + if (currentConfig.minSeqNr != 1) { + revert InvalidOnRampUpdate(); + } + currentConfig.onRamp = newOnRamp; currentConfig.isEnabled = sourceConfigUpdate.isEnabled; currentConfig.router = sourceConfigUpdate.router; + emit SourceChainConfigSet(sourceChainSelector, currentConfig); } } diff --git a/contracts/src/v0.8/ccip/test/e2e/MultiRampsEnd2End.sol b/contracts/src/v0.8/ccip/test/e2e/MultiRampsEnd2End.sol index 446dcfc344..2ae10b9293 100644 --- a/contracts/src/v0.8/ccip/test/e2e/MultiRampsEnd2End.sol +++ b/contracts/src/v0.8/ccip/test/e2e/MultiRampsEnd2End.sol @@ -156,13 +156,13 @@ contract MultiRampsE2E is OnRampSetup, OffRampSetup { roots[0] = Internal.MerkleRoot({ sourceChainSelector: SOURCE_CHAIN_SELECTOR, onRampAddress: abi.encode(address(s_onRamp)), - minSeqNr: messages1[0].header.sequenceNumber, + minSeqNr: messages1[0].header.sequenceNumber, maxSeqNr: messages1[1].header.sequenceNumber, merkleRoot: merkleRoots[0] }); roots[1] = Internal.MerkleRoot({ sourceChainSelector: SOURCE_CHAIN_SELECTOR + 1, - onRampAddress: abi.encode(address(s_onRamp)), + onRampAddress: abi.encode(address(s_onRamp2)), minSeqNr: messages2[0].header.sequenceNumber, maxSeqNr: messages2[0].header.sequenceNumber, merkleRoot: merkleRoots[1] diff --git a/contracts/src/v0.8/ccip/test/offRamp/OffRamp.t.sol b/contracts/src/v0.8/ccip/test/offRamp/OffRamp.t.sol index 290f03673c..0c23a71ca4 100644 --- a/contracts/src/v0.8/ccip/test/offRamp/OffRamp.t.sol +++ b/contracts/src/v0.8/ccip/test/offRamp/OffRamp.t.sol @@ -789,24 +789,6 @@ contract OffRamp_executeSingleReport is OffRampSetup { s_offRamp.executeSingleReport(executionReport, new uint256[](0)); } - function test_MismatchingOnRampRoot_Revert() public { - s_offRamp.setVerifyOverrideResult(SOURCE_CHAIN_SELECTOR_1, 0); - - Internal.Any2EVMRampMessage[] memory messages = - _generateSingleBasicMessage(SOURCE_CHAIN_SELECTOR_1, ON_RAMP_ADDRESS_1); - - OffRamp.CommitReport memory commitReport = _constructCommitReport( - // Root against mismatching on ramp - Internal._hash(messages[0], ON_RAMP_ADDRESS_3) - ); - _commit(commitReport, s_latestSequenceNumber); - - Internal.ExecutionReportSingleChain memory executionReport = - _generateReportFromMessages(SOURCE_CHAIN_SELECTOR_1, messages); - vm.expectRevert(abi.encodeWithSelector(OffRamp.RootNotCommitted.selector, SOURCE_CHAIN_SELECTOR_1)); - s_offRamp.executeSingleReport(executionReport, new uint256[](0)); - } - function test_UnhealthySingleChainCurse_Revert() public { _setMockRMNChainCurse(SOURCE_CHAIN_SELECTOR_1, true); vm.expectEmit(); @@ -3146,7 +3128,7 @@ contract OffRamp_commit is OffRampSetup { Internal.MerkleRoot[] memory roots = new Internal.MerkleRoot[](1); roots[0] = Internal.MerkleRoot({ sourceChainSelector: SOURCE_CHAIN_SELECTOR_1, - onRampAddress: abi.encode(ON_RAMP_ADDRESS_1), + onRampAddress: ON_RAMP_ADDRESS_1, minSeqNr: 1, maxSeqNr: max1, merkleRoot: root @@ -3175,7 +3157,7 @@ contract OffRamp_commit is OffRampSetup { Internal.MerkleRoot[] memory roots = new Internal.MerkleRoot[](1); roots[0] = Internal.MerkleRoot({ sourceChainSelector: SOURCE_CHAIN_SELECTOR_1, - onRampAddress: abi.encode(ON_RAMP_ADDRESS_1), + onRampAddress: ON_RAMP_ADDRESS_1, minSeqNr: 1, maxSeqNr: maxSeq, merkleRoot: "stale report 1" @@ -3326,7 +3308,7 @@ contract OffRamp_commit is OffRampSetup { roots = new Internal.MerkleRoot[](1); roots[0] = Internal.MerkleRoot({ sourceChainSelector: SOURCE_CHAIN_SELECTOR_1, - onRampAddress: abi.encode(ON_RAMP_ADDRESS_1), + onRampAddress: ON_RAMP_ADDRESS_1, minSeqNr: 1, maxSeqNr: maxSeq, merkleRoot: "stale report" @@ -3432,7 +3414,7 @@ contract OffRamp_commit is OffRampSetup { Internal.MerkleRoot[] memory roots = new Internal.MerkleRoot[](1); roots[0] = Internal.MerkleRoot({ sourceChainSelector: SOURCE_CHAIN_SELECTOR_1, - onRampAddress: abi.encode(ON_RAMP_ADDRESS_1), + onRampAddress: ON_RAMP_ADDRESS_1, minSeqNr: 1, maxSeqNr: 4, merkleRoot: bytes32(0) @@ -3448,7 +3430,7 @@ contract OffRamp_commit is OffRampSetup { Internal.MerkleRoot[] memory roots = new Internal.MerkleRoot[](1); roots[0] = Internal.MerkleRoot({ sourceChainSelector: SOURCE_CHAIN_SELECTOR_1, - onRampAddress: abi.encode(ON_RAMP_ADDRESS_1), + onRampAddress: ON_RAMP_ADDRESS_1, minSeqNr: 2, maxSeqNr: 2, merkleRoot: bytes32(0) @@ -3469,7 +3451,7 @@ contract OffRamp_commit is OffRampSetup { Internal.MerkleRoot[] memory roots = new Internal.MerkleRoot[](1); roots[0] = Internal.MerkleRoot({ sourceChainSelector: SOURCE_CHAIN_SELECTOR_1, - onRampAddress: abi.encode(ON_RAMP_ADDRESS_1), + onRampAddress: ON_RAMP_ADDRESS_1, minSeqNr: 1, maxSeqNr: 0, merkleRoot: bytes32(0) @@ -3534,7 +3516,7 @@ contract OffRamp_commit is OffRampSetup { Internal.MerkleRoot[] memory roots = new Internal.MerkleRoot[](1); roots[0] = Internal.MerkleRoot({ sourceChainSelector: SOURCE_CHAIN_SELECTOR_1, - onRampAddress: abi.encode(ON_RAMP_ADDRESS_1), + onRampAddress: ON_RAMP_ADDRESS_1, minSeqNr: 1, maxSeqNr: 2, merkleRoot: "Only a single root" @@ -3552,11 +3534,20 @@ contract OffRamp_commit is OffRampSetup { _commit(commitReport, ++s_latestSequenceNumber); } + function test_InvalidOnRamp_Revert() public { + OffRamp.CommitReport memory commitReport = _constructCommitReport(); + + commitReport.merkleRoots[0].onRampAddress = ON_RAMP_ADDRESS_2; + + vm.expectRevert(abi.encodeWithSelector(OffRamp.InvalidOnRamp.selector, ON_RAMP_ADDRESS_2, ON_RAMP_ADDRESS_1)); + _commit(commitReport, s_latestSequenceNumber); + } + function _constructCommitReport() internal view returns (OffRamp.CommitReport memory) { Internal.MerkleRoot[] memory roots = new Internal.MerkleRoot[](1); roots[0] = Internal.MerkleRoot({ sourceChainSelector: SOURCE_CHAIN_SELECTOR_1, - onRampAddress: abi.encode(ON_RAMP_ADDRESS_1), + onRampAddress: ON_RAMP_ADDRESS_1, minSeqNr: 1, maxSeqNr: s_maxInterval, merkleRoot: "test #2" diff --git a/core/gethwrappers/ccip/generated/offramp/offramp.go b/core/gethwrappers/ccip/generated/offramp/offramp.go index c79a8d7b8a..de640fd04b 100644 --- a/core/gethwrappers/ccip/generated/offramp/offramp.go +++ b/core/gethwrappers/ccip/generated/offramp/offramp.go @@ -162,8 +162,8 @@ type OffRampStaticConfig struct { } var OffRampMetaData = &bind.MetaData{ - ABI: "[{\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"chainSelector\",\"type\":\"uint64\"},{\"internalType\":\"contractIRMNV2\",\"name\":\"rmn\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tokenAdminRegistry\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"nonceManager\",\"type\":\"address\"}],\"internalType\":\"structOffRamp.StaticConfig\",\"name\":\"staticConfig\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"feeQuoter\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"permissionLessExecutionThresholdSeconds\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"maxTokenTransferGas\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"maxPoolReleaseOrMintGas\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"messageValidator\",\"type\":\"address\"}],\"internalType\":\"structOffRamp.DynamicConfig\",\"name\":\"dynamicConfig\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"contractIRouter\",\"name\":\"router\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"bool\",\"name\":\"isEnabled\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"onRamp\",\"type\":\"bytes\"}],\"internalType\":\"structOffRamp.SourceChainConfigArgs[]\",\"name\":\"sourceChainConfigs\",\"type\":\"tuple[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"CanOnlySelfCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"expected\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"actual\",\"type\":\"bytes32\"}],\"name\":\"ConfigDigestMismatch\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"}],\"name\":\"CursedByRMN\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"EmptyReport\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"messageId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"err\",\"type\":\"bytes\"}],\"name\":\"ExecutionError\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"expected\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"actual\",\"type\":\"uint256\"}],\"name\":\"ForkedChain\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"enumMultiOCR3Base.InvalidConfigErrorType\",\"name\":\"errorType\",\"type\":\"uint8\"}],\"name\":\"InvalidConfig\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"expected\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"got\",\"type\":\"uint256\"}],\"name\":\"InvalidDataLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"encodedAddress\",\"type\":\"bytes\"}],\"name\":\"InvalidEVMAddress\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"min\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"max\",\"type\":\"uint64\"}],\"name\":\"InvalidInterval\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"newLimit\",\"type\":\"uint256\"}],\"name\":\"InvalidManualExecutionGasLimit\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"messageDestChainSelector\",\"type\":\"uint64\"}],\"name\":\"InvalidMessageDestChainSelector\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"sequenceNumber\",\"type\":\"uint64\"},{\"internalType\":\"enumInternal.MessageExecutionState\",\"name\":\"newState\",\"type\":\"uint8\"}],\"name\":\"InvalidNewState\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidProof\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidRoot\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"}],\"name\":\"InvalidStaticConfig\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LeavesCannotBeEmpty\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ManualExecutionGasLimitMismatch\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"}],\"name\":\"ManualExecutionNotYetEnabled\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"errorReason\",\"type\":\"bytes\"}],\"name\":\"MessageValidationError\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NonUniqueSignatures\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"notPool\",\"type\":\"address\"}],\"name\":\"NotACompatiblePool\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OracleCannotBeZeroAddress\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"err\",\"type\":\"bytes\"}],\"name\":\"ReceiverError\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amountReleased\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balancePre\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balancePost\",\"type\":\"uint256\"}],\"name\":\"ReleaseOrMintBalanceMismatch\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"merkleRoot\",\"type\":\"bytes32\"}],\"name\":\"RootAlreadyCommitted\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"}],\"name\":\"RootNotCommitted\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SignatureVerificationDisabled\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SignaturesOutOfRegistration\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"}],\"name\":\"SourceChainNotEnabled\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"reportSourceChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"messageSourceChainSelector\",\"type\":\"uint64\"}],\"name\":\"SourceChainSelectorMismatch\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"StaleCommitReport\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"ocrPluginType\",\"type\":\"uint8\"}],\"name\":\"StaticConfigCannotBeChanged\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"sequenceNumber\",\"type\":\"uint64\"}],\"name\":\"TokenDataMismatch\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"err\",\"type\":\"bytes\"}],\"name\":\"TokenHandlingError\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UnauthorizedSigner\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UnauthorizedTransmitter\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UnexpectedTokenData\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"expected\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"actual\",\"type\":\"uint256\"}],\"name\":\"WrongMessageLength\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"WrongNumberOfSignatures\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZeroAddressNotAllowed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZeroChainSelectorNotAllowed\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"sequenceNumber\",\"type\":\"uint64\"}],\"name\":\"AlreadyAttempted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"components\":[{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"sourceToken\",\"type\":\"address\"},{\"internalType\":\"uint224\",\"name\":\"usdPerToken\",\"type\":\"uint224\"}],\"internalType\":\"structInternal.TokenPriceUpdate[]\",\"name\":\"tokenPriceUpdates\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"uint64\",\"name\":\"destChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"uint224\",\"name\":\"usdPerUnitGas\",\"type\":\"uint224\"}],\"internalType\":\"structInternal.GasPriceUpdate[]\",\"name\":\"gasPriceUpdates\",\"type\":\"tuple[]\"}],\"internalType\":\"structInternal.PriceUpdates\",\"name\":\"priceUpdates\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"onRampAddress\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"minSeqNr\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"maxSeqNr\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"merkleRoot\",\"type\":\"bytes32\"}],\"internalType\":\"structInternal.MerkleRoot[]\",\"name\":\"merkleRoots\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"internalType\":\"structIRMNV2.Signature[]\",\"name\":\"rmnSignatures\",\"type\":\"tuple[]\"}],\"indexed\":false,\"internalType\":\"structOffRamp.CommitReport\",\"name\":\"report\",\"type\":\"tuple\"}],\"name\":\"CommitReportAccepted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"ocrPluginType\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"configDigest\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"signers\",\"type\":\"address[]\"},{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"transmitters\",\"type\":\"address[]\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"F\",\"type\":\"uint8\"}],\"name\":\"ConfigSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"feeQuoter\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"permissionLessExecutionThresholdSeconds\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"maxTokenTransferGas\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"maxPoolReleaseOrMintGas\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"messageValidator\",\"type\":\"address\"}],\"indexed\":false,\"internalType\":\"structOffRamp.DynamicConfig\",\"name\":\"dynamicConfig\",\"type\":\"tuple\"}],\"name\":\"DynamicConfigSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"sequenceNumber\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"messageId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"messageHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"enumInternal.MessageExecutionState\",\"name\":\"state\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"returnData\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"gasUsed\",\"type\":\"uint256\"}],\"name\":\"ExecutionStateChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"OwnershipTransferRequested\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"root\",\"type\":\"bytes32\"}],\"name\":\"RootRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"sequenceNumber\",\"type\":\"uint64\"}],\"name\":\"SkippedAlreadyExecutedMessage\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"}],\"name\":\"SkippedReportExecution\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"components\":[{\"internalType\":\"contractIRouter\",\"name\":\"router\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"isEnabled\",\"type\":\"bool\"},{\"internalType\":\"uint64\",\"name\":\"minSeqNr\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"onRamp\",\"type\":\"bytes\"}],\"indexed\":false,\"internalType\":\"structOffRamp.SourceChainConfig\",\"name\":\"sourceConfig\",\"type\":\"tuple\"}],\"name\":\"SourceChainConfigSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"}],\"name\":\"SourceChainSelectorAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"chainSelector\",\"type\":\"uint64\"},{\"internalType\":\"contractIRMNV2\",\"name\":\"rmn\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tokenAdminRegistry\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"nonceManager\",\"type\":\"address\"}],\"indexed\":false,\"internalType\":\"structOffRamp.StaticConfig\",\"name\":\"staticConfig\",\"type\":\"tuple\"}],\"name\":\"StaticConfigSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint8\",\"name\":\"ocrPluginType\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"configDigest\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"sequenceNumber\",\"type\":\"uint64\"}],\"name\":\"Transmitted\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"acceptOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"contractIRouter\",\"name\":\"router\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"bool\",\"name\":\"isEnabled\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"onRamp\",\"type\":\"bytes\"}],\"internalType\":\"structOffRamp.SourceChainConfigArgs[]\",\"name\":\"sourceChainConfigUpdates\",\"type\":\"tuple[]\"}],\"name\":\"applySourceChainConfigUpdates\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"messageId\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"sender\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"structClient.EVMTokenAmount[]\",\"name\":\"destTokenAmounts\",\"type\":\"tuple[]\"}],\"internalType\":\"structClient.Any2EVMMessage\",\"name\":\"\",\"type\":\"tuple\"}],\"name\":\"ccipReceive\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32[3]\",\"name\":\"reportContext\",\"type\":\"bytes32[3]\"},{\"internalType\":\"bytes\",\"name\":\"report\",\"type\":\"bytes\"},{\"internalType\":\"bytes32[]\",\"name\":\"rs\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes32[]\",\"name\":\"ss\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes32\",\"name\":\"rawVs\",\"type\":\"bytes32\"}],\"name\":\"commit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32[3]\",\"name\":\"reportContext\",\"type\":\"bytes32[3]\"},{\"internalType\":\"bytes\",\"name\":\"report\",\"type\":\"bytes\"}],\"name\":\"execute\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"messageId\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"destChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"sequenceNumber\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"internalType\":\"structInternal.RampMessageHeader\",\"name\":\"header\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"sender\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"gasLimit\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"bytes\",\"name\":\"sourcePoolAddress\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"destTokenAddress\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"extraData\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"destExecData\",\"type\":\"bytes\"}],\"internalType\":\"structInternal.RampTokenAmount[]\",\"name\":\"tokenAmounts\",\"type\":\"tuple[]\"}],\"internalType\":\"structInternal.Any2EVMRampMessage\",\"name\":\"message\",\"type\":\"tuple\"},{\"internalType\":\"bytes[]\",\"name\":\"offchainTokenData\",\"type\":\"bytes[]\"}],\"name\":\"executeSingleMessage\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getDynamicConfig\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"feeQuoter\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"permissionLessExecutionThresholdSeconds\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"maxTokenTransferGas\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"maxPoolReleaseOrMintGas\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"messageValidator\",\"type\":\"address\"}],\"internalType\":\"structOffRamp.DynamicConfig\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"sequenceNumber\",\"type\":\"uint64\"}],\"name\":\"getExecutionState\",\"outputs\":[{\"internalType\":\"enumInternal.MessageExecutionState\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getLatestPriceSequenceNumber\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"root\",\"type\":\"bytes32\"}],\"name\":\"getMerkleRoot\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"}],\"name\":\"getSourceChainConfig\",\"outputs\":[{\"components\":[{\"internalType\":\"contractIRouter\",\"name\":\"router\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"isEnabled\",\"type\":\"bool\"},{\"internalType\":\"uint64\",\"name\":\"minSeqNr\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"onRamp\",\"type\":\"bytes\"}],\"internalType\":\"structOffRamp.SourceChainConfig\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getStaticConfig\",\"outputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"chainSelector\",\"type\":\"uint64\"},{\"internalType\":\"contractIRMNV2\",\"name\":\"rmn\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tokenAdminRegistry\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"nonceManager\",\"type\":\"address\"}],\"internalType\":\"structOffRamp.StaticConfig\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"ocrPluginType\",\"type\":\"uint8\"}],\"name\":\"latestConfigDetails\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"configDigest\",\"type\":\"bytes32\"},{\"internalType\":\"uint8\",\"name\":\"F\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"n\",\"type\":\"uint8\"},{\"internalType\":\"bool\",\"name\":\"isSignatureVerificationEnabled\",\"type\":\"bool\"}],\"internalType\":\"structMultiOCR3Base.ConfigInfo\",\"name\":\"configInfo\",\"type\":\"tuple\"},{\"internalType\":\"address[]\",\"name\":\"signers\",\"type\":\"address[]\"},{\"internalType\":\"address[]\",\"name\":\"transmitters\",\"type\":\"address[]\"}],\"internalType\":\"structMultiOCR3Base.OCRConfig\",\"name\":\"ocrConfig\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"components\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"messageId\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"destChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"sequenceNumber\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"internalType\":\"structInternal.RampMessageHeader\",\"name\":\"header\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"sender\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"gasLimit\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"bytes\",\"name\":\"sourcePoolAddress\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"destTokenAddress\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"extraData\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"destExecData\",\"type\":\"bytes\"}],\"internalType\":\"structInternal.RampTokenAmount[]\",\"name\":\"tokenAmounts\",\"type\":\"tuple[]\"}],\"internalType\":\"structInternal.Any2EVMRampMessage[]\",\"name\":\"messages\",\"type\":\"tuple[]\"},{\"internalType\":\"bytes[][]\",\"name\":\"offchainTokenData\",\"type\":\"bytes[][]\"},{\"internalType\":\"bytes32[]\",\"name\":\"proofs\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"proofFlagBits\",\"type\":\"uint256\"}],\"internalType\":\"structInternal.ExecutionReportSingleChain[]\",\"name\":\"reports\",\"type\":\"tuple[]\"},{\"internalType\":\"uint256[][]\",\"name\":\"gasLimitOverrides\",\"type\":\"uint256[][]\"}],\"name\":\"manuallyExecute\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"feeQuoter\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"permissionLessExecutionThresholdSeconds\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"maxTokenTransferGas\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"maxPoolReleaseOrMintGas\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"messageValidator\",\"type\":\"address\"}],\"internalType\":\"structOffRamp.DynamicConfig\",\"name\":\"dynamicConfig\",\"type\":\"tuple\"}],\"name\":\"setDynamicConfig\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"configDigest\",\"type\":\"bytes32\"},{\"internalType\":\"uint8\",\"name\":\"ocrPluginType\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"F\",\"type\":\"uint8\"},{\"internalType\":\"bool\",\"name\":\"isSignatureVerificationEnabled\",\"type\":\"bool\"},{\"internalType\":\"address[]\",\"name\":\"signers\",\"type\":\"address[]\"},{\"internalType\":\"address[]\",\"name\":\"transmitters\",\"type\":\"address[]\"}],\"internalType\":\"structMultiOCR3Base.OCRConfigArgs[]\",\"name\":\"ocrConfigArgs\",\"type\":\"tuple[]\"}],\"name\":\"setOCR3Configs\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"typeAndVersion\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"}]", - Bin: "0x6101206040523480156200001257600080fd5b5060405162006b8038038062006b8083398101604081905262000035916200082b565b33806000816200008c5760405162461bcd60e51b815260206004820152601860248201527f43616e6e6f7420736574206f776e657220746f207a65726f000000000000000060448201526064015b60405180910390fd5b600080546001600160a01b0319166001600160a01b0384811691909117909155811615620000bf57620000bf81620001fa565b5050466080525060208301516001600160a01b03161580620000ec575060408301516001600160a01b0316155b8062000103575060608301516001600160a01b0316155b1562000122576040516342bcdf7f60e11b815260040160405180910390fd5b82516001600160401b03166000036200014e5760405163c656089560e01b815260040160405180910390fd5b82516001600160401b0390811660a052602080850180516001600160a01b0390811660c05260408088018051831660e0526060808a01805185166101005283518b519098168852945184169587019590955251821690850152905116908201527f683eb52ee924eb817377cfa8f41f238f4bb7a877da5267869dfffbad85f564d89060800160405180910390a1620001e682620002a5565b620001f181620003c1565b50505062000bcb565b336001600160a01b03821603620002545760405162461bcd60e51b815260206004820152601760248201527f43616e6e6f74207472616e7366657220746f2073656c66000000000000000000604482015260640162000083565b600180546001600160a01b0319166001600160a01b0383811691821790925560008054604051929316917fed8889f560326eb138920d842192f0eb3dd22b4f139c87a2c57538e05bae12789190a350565b80516001600160a01b0316620002ce576040516342bcdf7f60e11b815260040160405180910390fd5b80516004805460208085018051604080880180516060808b0180516001600160a01b039b8c166001600160c01b0319909a168a17600160a01b63ffffffff98891602176001600160c01b0316600160c01b948816949094026001600160e01b031693909317600160e01b93871693909302929092179098556080808b018051600580546001600160a01b031916918d169190911790558451988952955185169688019690965290518316918601919091525116938301939093529151909216908201527fa55bd56595c45f517e5967a3067f3dca684445a3080e7c04a4e0d5a40cda627d9060a00160405180910390a150565b60005b8151811015620005ca576000828281518110620003e557620003e562000981565b60200260200101519050600081602001519050806001600160401b0316600003620004235760405163c656089560e01b815260040160405180910390fd5b81516001600160a01b03166200044c576040516342bcdf7f60e11b815260040160405180910390fd5b6001600160401b038116600090815260066020526040902060608301516001820180546200047a9062000997565b9050600003620004d8578154600160a81b600160e81b031916600160a81b1782556040516001600160401b03841681527ff4c1390c70e5c0f491ae1ccbc06f9117cbbadf2767b247b3bc203280f24c0fb99060200160405180910390a15b805115806200050e5750604080516000602082015201604051602081830303815290604052805190602001208180519060200120145b156200052d576040516342bcdf7f60e11b815260040160405180910390fd5b600182016200053d828262000a28565b50604080850151835486516001600160a01b03166001600160a01b0319921515600160a01b02929092166001600160a81b031990911617178355516001600160401b038416907f49f51971edd25182e97182d6ea372a0488ce2ab639f6a3a7ab4df0d2636fe56b90620005b290859062000af4565b60405180910390a250505050806001019050620003c4565b5050565b634e487b7160e01b600052604160045260246000fd5b604051608081016001600160401b0381118282101715620006095762000609620005ce565b60405290565b604051601f8201601f191681016001600160401b03811182821017156200063a576200063a620005ce565b604052919050565b80516001600160401b03811681146200065a57600080fd5b919050565b6001600160a01b03811681146200067557600080fd5b50565b805163ffffffff811681146200065a57600080fd5b6000601f83601f840112620006a157600080fd5b825160206001600160401b0380831115620006c057620006c0620005ce565b8260051b620006d18382016200060f565b9384528681018301938381019089861115620006ec57600080fd5b84890192505b858310156200081e578251848111156200070c5760008081fd5b89016080601f19828d038101821315620007265760008081fd5b62000730620005e4565b888401516200073f816200065f565b815260406200075085820162000642565b8a83015260608086015180151581146200076a5760008081fd5b83830152938501519389851115620007825760008081fd5b84860195508f603f8701126200079a57600094508485fd5b8a860151945089851115620007b357620007b3620005ce565b620007c48b858f880116016200060f565b93508484528f82868801011115620007dc5760008081fd5b60005b85811015620007fc578681018301518582018d01528b01620007df565b5060009484018b019490945250918201528352509184019190840190620006f2565b9998505050505050505050565b60008060008385036101408112156200084357600080fd5b60808112156200085257600080fd5b6200085c620005e4565b620008678662000642565b8152602086015162000879816200065f565b602082015260408601516200088e816200065f565b60408201526060860151620008a3816200065f565b6060820152935060a0607f1982011215620008bd57600080fd5b5060405160a081016001600160401b038082118383101715620008e457620008e4620005ce565b8160405260808701519150620008fa826200065f565b8183526200090b60a0880162000678565b60208401526200091e60c0880162000678565b60408401526200093160e0880162000678565b6060840152610100870151915062000949826200065f565b60808301829052610120870151929450808311156200096757600080fd5b505062000977868287016200068d565b9150509250925092565b634e487b7160e01b600052603260045260246000fd5b600181811c90821680620009ac57607f821691505b602082108103620009cd57634e487b7160e01b600052602260045260246000fd5b50919050565b601f82111562000a23576000816000526020600020601f850160051c81016020861015620009fe5750805b601f850160051c820191505b8181101562000a1f5782815560010162000a0a565b5050505b505050565b81516001600160401b0381111562000a445762000a44620005ce565b62000a5c8162000a55845462000997565b84620009d3565b602080601f83116001811462000a94576000841562000a7b5750858301515b600019600386901b1c1916600185901b17855562000a1f565b600085815260208120601f198616915b8281101562000ac55788860151825594840194600190910190840162000aa4565b508582101562000ae45787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b602080825282546001600160a01b0381168383015260a081901c60ff161515604084015260a81c6001600160401b0316606083015260808083015260018084018054600093929190849062000b498162000997565b8060a089015260c0600183166000811462000b6d576001811462000b8a5762000bbc565b60ff19841660c08b015260c083151560051b8b0101945062000bbc565b85600052602060002060005b8481101562000bb35781548c820185015290880190890162000b96565b8b0160c0019550505b50929998505050505050505050565b60805160a05160c05160e05161010051615f3f62000c416000396000818161024001526129bd0152600081816102110152612eb10152600081816101e20152818161077f01528181610986015261233f0152600081816101b201526125cc01526000818161172d01526117790152615f3f6000f3fe608060405234801561001057600080fd5b50600436106101515760003560e01c806379ba5097116100cd578063c673e58411610081578063e9d68a8e11610066578063e9d68a8e1461052a578063f2fde38b1461054a578063f716f99f1461055d57600080fd5b8063c673e584146104c5578063ccd37ba3146104e557600080fd5b80638da5cb5b116100b25780638da5cb5b14610484578063991a50181461049f578063a80036b4146104b257600080fd5b806379ba50971461046e57806385572ffb1461047657600080fd5b80632d04ab76116101245780633f4b04aa116101095780633f4b04aa146103365780635e36480c146103525780637437ff9f1461037257600080fd5b80632d04ab7614610310578063311cd5131461032357600080fd5b806304666f9c1461015657806305d938b51461016b57806306285c691461017e578063181f5a77146102c7575b600080fd5b61016961016436600461407d565b610570565b005b610169610179366004614707565b610584565b61027060408051608081018252600080825260208201819052918101829052606081019190915260405180608001604052807f000000000000000000000000000000000000000000000000000000000000000067ffffffffffffffff1681526020017f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031681526020017f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031681526020017f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316815250905090565b6040516102be9190815167ffffffffffffffff1681526020808301516001600160a01b0390811691830191909152604080840151821690830152606092830151169181019190915260800190565b60405180910390f35b6103036040518060400160405280601181526020017f4f666652616d7020312e362e302d64657600000000000000000000000000000081525081565b6040516102be9190614882565b61016961031e36600461492d565b610729565b6101696103313660046149e0565b610cbf565b60095460405167ffffffffffffffff90911681526020016102be565b610365610360366004614a34565b610d28565b6040516102be9190614a91565b6104116040805160a081018252600080825260208201819052918101829052606081018290526080810191909152506040805160a0810182526004546001600160a01b03808216835263ffffffff600160a01b83048116602085015278010000000000000000000000000000000000000000000000008304811694840194909452600160e01b9091049092166060820152600554909116608082015290565b6040516102be9190600060a0820190506001600160a01b03808451168352602084015163ffffffff808216602086015280604087015116604086015280606087015116606086015250508060808501511660808401525092915050565b610169610d7e565b610169610151366004614a9f565b6000546040516001600160a01b0390911681526020016102be565b6101696104ad366004614aee565b610e3c565b6101696104c0366004614b62565b610e4d565b6104d86104d3366004614bcf565b6111c0565b6040516102be9190614c2f565b61051c6104f3366004614ca4565b67ffffffffffffffff919091166000908152600860209081526040808320938352929052205490565b6040519081526020016102be565b61053d610538366004614cce565b61131e565b6040516102be9190614ce9565b610169610558366004614d37565b61142b565b61016961056b366004614dbc565b61143c565b61057861147e565b610581816114da565b50565b61058c61172a565b8151815181146105c8576040517f83e3f56400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60005b818110156107195760008482815181106105e7576105e7614efa565b6020026020010151905060008160200151519050600085848151811061060f5761060f614efa565b6020026020010151905080518214610653576040517f83e3f56400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60005b8281101561070a57600082828151811061067257610672614efa565b6020026020010151905080600014610701578460200151828151811061069a5761069a614efa565b6020026020010151608001518110156107015784516040517fc8e9605100000000000000000000000000000000000000000000000000000000815267ffffffffffffffff909116600482015260248101839052604481018290526064015b60405180910390fd5b50600101610656565b505050508060010190506105cb565b5061072483836117ab565b505050565b600061073787890189615129565b602081015151909150156107e357602081015160408083015190517fccd5af000000000000000000000000000000000000000000000000000000000081526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169263ccd5af00926107b29260040161538f565b60006040518083038186803b1580156107ca57600080fd5b505afa1580156107de573d6000803e3d6000fd5b505050505b805151511515806107f957508051602001515115155b156108f95760095460208a01359067ffffffffffffffff808316911610156108b8576009805467ffffffffffffffff191667ffffffffffffffff83161790556004805483516040517f3937306f0000000000000000000000000000000000000000000000000000000081526001600160a01b0390921692633937306f92610881929101615471565b600060405180830381600087803b15801561089b57600080fd5b505af11580156108af573d6000803e3d6000fd5b505050506108f7565b8160200151516000036108f7576040517f2261116700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505b60005b816020015151811015610c085760008260200151828151811061092157610921614efa565b602090810291909101015180516040517f2cbc26bb00000000000000000000000000000000000000000000000000000000815277ffffffffffffffff00000000000000000000000000000000608083901b166004820152919250906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690632cbc26bb90602401602060405180830381865afa1580156109cd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109f19190615484565b15610a34576040517ffdbd6a7200000000000000000000000000000000000000000000000000000000815267ffffffffffffffff821660048201526024016106f8565b6000610a3f8261185b565b6040840151815491925067ffffffffffffffff908116600160a81b90920416141580610a865750826060015167ffffffffffffffff16836040015167ffffffffffffffff16115b15610ae5578251604080850151606086015191517fd5e0f0d600000000000000000000000000000000000000000000000000000000815267ffffffffffffffff93841660048201529083166024820152911660448201526064016106f8565b608083015180610b21576040517f504570e300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b835167ffffffffffffffff16600090815260086020908152604080832084845290915290205415610b945783516040517f32cf0cbf00000000000000000000000000000000000000000000000000000000815267ffffffffffffffff9091166004820152602481018290526044016106f8565b6060840151610ba49060016154b7565b82547fffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffff16600160a81b67ffffffffffffffff9283160217909255925116600090815260086020908152604080832094835293905291909120429055506001016108fc565b507f23bc80217a08968cec0790cd045b396fa7eea0a21af469e603329940b883d86d81604051610c3891906154df565b60405180910390a1610cb460008a8a8a8a8a8080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020808e0282810182019093528d82529093508d92508c9182918501908490808284376000920191909152508b92506118c2915050565b505050505050505050565b610cff610cce82840184615537565b6040805160008082526020820190925290610cf9565b6060815260200190600190039081610ce45790505b506117ab565b604080516000808252602082019092529050610d226001858585858660006118c2565b50505050565b6000610d366001600461556c565b6002610d43608085615595565b67ffffffffffffffff16610d5791906155bc565b610d618585611c39565b901c166003811115610d7557610d75614a67565b90505b92915050565b6001546001600160a01b03163314610dd85760405162461bcd60e51b815260206004820152601660248201527f4d7573742062652070726f706f736564206f776e65720000000000000000000060448201526064016106f8565b600080543373ffffffffffffffffffffffffffffffffffffffff19808316821784556001805490911690556040516001600160a01b0390921692909183917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a350565b610e4461147e565b61058181611c80565b333014610e86576040517f371a732800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040805160008082526020820190925281610ec3565b6040805180820190915260008082526020820152815260200190600190039081610e9c5790505b5060a08501515190915015610ef757610ef48460a00151856020015186606001518760000151602001518787611de6565b90505b6040805160a0810182528551518152855160209081015167ffffffffffffffff1681830152808701518351600094840192610f33929101614882565b60408051601f19818403018152918152908252878101516020830152018390526005549091506001600160a01b03168015611040576040517f08d450a10000000000000000000000000000000000000000000000000000000081526001600160a01b038216906308d450a190610fad908590600401615675565b600060405180830381600087803b158015610fc757600080fd5b505af1925050508015610fd8575060015b611040573d808015611006576040519150601f19603f3d011682016040523d82523d6000602084013e61100b565b606091505b50806040517f09c253250000000000000000000000000000000000000000000000000000000081526004016106f89190614882565b60408601515115801561105557506080860151155b8061106c575060608601516001600160a01b03163b155b806110ac575060608601516110aa906001600160a01b03167f85572ffb00000000000000000000000000000000000000000000000000000000611f05565b155b156110b957505050505050565b855160209081015167ffffffffffffffff1660009081526006909152604080822054608089015160608a015192517f3cf9798300000000000000000000000000000000000000000000000000000000815284936001600160a01b0390931692633cf97983926111319289926113889291600401615688565b6000604051808303816000875af1158015611150573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261117891908101906156c4565b5091509150816111b657806040517f0a8d6e8c0000000000000000000000000000000000000000000000000000000081526004016106f89190614882565b5050505050505050565b6112036040805160e081019091526000606082018181526080830182905260a0830182905260c08301919091528190815260200160608152602001606081525090565b60ff808316600090815260026020818152604092839020835160e081018552815460608201908152600183015480881660808401526101008104881660a0840152620100009004909616151560c0820152948552918201805484518184028101840190955280855292938583019390928301828280156112ac57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161128e575b505050505081526020016003820180548060200260200160405190810160405280929190818152602001828054801561130e57602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116112f0575b5050505050815250509050919050565b604080516080808201835260008083526020808401829052838501829052606080850181905267ffffffffffffffff878116845260068352928690208651948501875280546001600160a01b0381168652600160a01b810460ff16151593860193909352600160a81b9092049092169483019490945260018401805493949293918401916113ab9061575a565b80601f01602080910402602001604051908101604052809291908181526020018280546113d79061575a565b801561130e5780601f106113f95761010080835404028352916020019161130e565b820191906000526020600020905b81548152906001019060200180831161140757505050919092525091949350505050565b61143361147e565b61058181611f21565b61144461147e565b60005b815181101561147a5761147282828151811061146557611465614efa565b6020026020010151611fd7565b600101611447565b5050565b6000546001600160a01b031633146114d85760405162461bcd60e51b815260206004820152601660248201527f4f6e6c792063616c6c61626c65206279206f776e65720000000000000000000060448201526064016106f8565b565b60005b815181101561147a5760008282815181106114fa576114fa614efa565b602002602001015190506000816020015190508067ffffffffffffffff16600003611551576040517fc656089500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81516001600160a01b0316611579576040516342bcdf7f60e11b815260040160405180910390fd5b67ffffffffffffffff8116600090815260066020526040902060608301516001820180546115a69061575a565b90506000036116195781547fffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffff16600160a81b17825560405167ffffffffffffffff841681527ff4c1390c70e5c0f491ae1ccbc06f9117cbbadf2767b247b3bc203280f24c0fb99060200160405180910390a15b8051158061164e5750604080516000602082015201604051602081830303815290604052805190602001208180519060200120145b1561166c576040516342bcdf7f60e11b815260040160405180910390fd5b6001820161167a82826157e4565b50604080850151835486516001600160a01b031673ffffffffffffffffffffffffffffffffffffffff19921515600160a01b02929092167fffffffffffffffffffffff000000000000000000000000000000000000000000909116171783555167ffffffffffffffff8416907f49f51971edd25182e97182d6ea372a0488ce2ab639f6a3a7ab4df0d2636fe56b906117139085906158a4565b60405180910390a2505050508060010190506114dd565b467f0000000000000000000000000000000000000000000000000000000000000000146114d8576040517f0f01ce850000000000000000000000000000000000000000000000000000000081527f000000000000000000000000000000000000000000000000000000000000000060048201524660248201526044016106f8565b81516000036117e5576040517ebf199700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b805160408051600080825260208201909252911591905b84518110156118545761184c85828151811061181a5761181a614efa565b6020026020010151846118465785838151811061183957611839614efa565b60200260200101516122eb565b836122eb565b6001016117fc565b5050505050565b67ffffffffffffffff811660009081526006602052604081208054600160a01b900460ff16610d78576040517fed053c5900000000000000000000000000000000000000000000000000000000815267ffffffffffffffff841660048201526024016106f8565b60ff878116600090815260026020908152604080832081516080810183528154815260019091015480861693820193909352610100830485169181019190915262010000909104909216151560608301528735906119218760a4615972565b905082606001511561196957845161193a9060206155bc565b86516119479060206155bc565b6119529060a0615972565b61195c9190615972565b6119669082615972565b90505b3681146119ab576040517f8e1192e1000000000000000000000000000000000000000000000000000000008152600481018290523660248201526044016106f8565b50815181146119f35781516040517f93df584c0000000000000000000000000000000000000000000000000000000081526004810191909152602481018290526044016106f8565b6119fb61172a565b60ff808a1660009081526003602090815260408083203384528252808320815180830190925280548086168352939491939092840191610100909104166002811115611a4957611a49614a67565b6002811115611a5a57611a5a614a67565b9052509050600281602001516002811115611a7757611a77614a67565b148015611acb5750600260008b60ff1660ff168152602001908152602001600020600301816000015160ff1681548110611ab357611ab3614efa565b6000918252602090912001546001600160a01b031633145b611b01576040517fda0f08e800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50816060015115611be3576020820151611b1c906001615985565b60ff16855114611b58576040517f71253a2500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8351855114611b93576040517fa75d88af00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008787604051611ba592919061599e565b604051908190038120611bbc918b906020016159ae565b604051602081830303815290604052805190602001209050611be18a82888888612c6b565b505b6040805182815260208a81013567ffffffffffffffff169082015260ff8b16917f198d6990ef96613a9026203077e422916918b03ff47f0be6bee7b02d8e139ef0910160405180910390a2505050505050505050565b67ffffffffffffffff8216600090815260076020526040812081611c5e6080856159c2565b67ffffffffffffffff1681526020810191909152604001600020549392505050565b80516001600160a01b0316611ca8576040516342bcdf7f60e11b815260040160405180910390fd5b80516004805460208085018051604080880180516060808b0180516001600160a01b039b8c167fffffffffffffffff000000000000000000000000000000000000000000000000909a168a17600160a01b63ffffffff988916021777ffffffffffffffffffffffffffffffffffffffffffffffff167801000000000000000000000000000000000000000000000000948816949094026001600160e01b031693909317600160e01b93871693909302929092179098556080808b0180516005805473ffffffffffffffffffffffffffffffffffffffff1916918d169190911790558451988952955185169688019690965290518316918601919091525116938301939093529151909216908201527fa55bd56595c45f517e5967a3067f3dca684445a3080e7c04a4e0d5a40cda627d9060a00160405180910390a150565b6060865167ffffffffffffffff811115611e0257611e02613e94565b604051908082528060200260200182016040528015611e4757816020015b6040805180820190915260008082526020820152815260200190600190039081611e205790505b50905060005b8751811015611ef957611ed4888281518110611e6b57611e6b614efa565b6020026020010151888888888887818110611e8857611e88614efa565b9050602002810190611e9a91906159e9565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612e5092505050565b828281518110611ee657611ee6614efa565b6020908102919091010152600101611e4d565b505b9695505050505050565b6000611f10836131f5565b8015610d755750610d758383613259565b336001600160a01b03821603611f795760405162461bcd60e51b815260206004820152601760248201527f43616e6e6f74207472616e7366657220746f2073656c6600000000000000000060448201526064016106f8565b6001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0383811691821790925560008054604051929316917fed8889f560326eb138920d842192f0eb3dd22b4f139c87a2c57538e05bae12789190a350565b806040015160ff16600003612002576000604051631b3fab5160e11b81526004016106f89190615a30565b60208082015160ff8082166000908152600290935260408320600181015492939092839216900361206f57606084015160018201805491151562010000027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff9092169190911790556120c4565b6060840151600182015460ff62010000909104161515901515146120c4576040517f87f6037c00000000000000000000000000000000000000000000000000000000815260ff841660048201526024016106f8565b60a0840151805161010010156120f0576001604051631b3fab5160e11b81526004016106f89190615a30565b612156848460030180548060200260200160405190810160405280929190818152602001828054801561214c57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161212e575b5050505050613314565b846060015115612260576121c4848460020180548060200260200160405190810160405280929190818152602001828054801561214c576020028201919060005260206000209081546001600160a01b0316815260019091019060200180831161212e575050505050613314565b6080850151805161010010156121f0576002604051631b3fab5160e11b81526004016106f89190615a30565b6040860151612200906003615a4a565b60ff16815111612226576003604051631b3fab5160e11b81526004016106f89190615a30565b805160018401805461ff00191661010060ff8416021790556122519060028601906020840190613e0d565b5061225e8582600161337d565b505b61226c8482600261337d565b80516122819060038501906020840190613e0d565b5060408581015160018401805460ff191660ff8316179055865180855560a088015192517fab8b1b57514019638d7b5ce9c638fe71366fe8e2be1c40a7a80f1733d0e9f547936122da9389939260028a01929190615a66565b60405180910390a1611854846134f1565b815181516040517f2cbc26bb000000000000000000000000000000000000000000000000000000008152608083901b77ffffffffffffffff00000000000000000000000000000000166004820152901515907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690632cbc26bb90602401602060405180830381865afa15801561238e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123b29190615484565b1561243e5780156123fb576040517ffdbd6a7200000000000000000000000000000000000000000000000000000000815267ffffffffffffffff831660048201526024016106f8565b60405167ffffffffffffffff831681527faab522ed53d887e56ed53dd37398a01aeef6a58e0fa77c2173beb9512d8949339060200160405180910390a150505050565b60006124498361185b565b60010180546124579061575a565b80601f01602080910402602001604051908101604052809291908181526020018280546124839061575a565b80156124d05780601f106124a5576101008083540402835291602001916124d0565b820191906000526020600020905b8154815290600101906020018083116124b357829003601f168201915b50505060208801515192935050506000819003612518576040517ebf199700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8560400151518114612556576040517f57e0e08300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008167ffffffffffffffff81111561257157612571613e94565b60405190808252806020026020018201604052801561259a578160200160208202803683370190505b50905060005b828110156126f3576000886020015182815181106125c0576125c0614efa565b602002602001015190507f000000000000000000000000000000000000000000000000000000000000000067ffffffffffffffff1681600001516040015167ffffffffffffffff161461265357805160409081015190517f38432a2200000000000000000000000000000000000000000000000000000000815267ffffffffffffffff90911660048201526024016106f8565b8667ffffffffffffffff1681600001516020015167ffffffffffffffff16146126c3578051602001516040517f6c95f1eb00000000000000000000000000000000000000000000000000000000815267ffffffffffffffff808a16600483015290911660248201526044016106f8565b6126cd8186613561565b8383815181106126df576126df614efa565b6020908102919091010152506001016125a0565b50600061270a86838a606001518b60800151613683565b905080600003612752576040517f7dd17a7e00000000000000000000000000000000000000000000000000000000815267ffffffffffffffff871660048201526024016106f8565b60005b83811015610cb45760005a905060008a60200151838151811061277a5761277a614efa565b6020026020010151905060006127988a836000015160600151610d28565b905060008160038111156127ae576127ae614a67565b14806127cb575060038160038111156127c9576127c9614a67565b145b612823578151606001516040805167ffffffffffffffff808e16825290921660208301527f3b575419319662b2a6f5e2467d84521517a3382b908eb3d557bb3fdb0c50e23c91015b60405180910390a1505050612c63565b88156128f357600454600090600160a01b900463ffffffff16612846874261556c565b11905080806128665750600382600381111561286457612864614a67565b145b6128a8576040517fa9cfc86200000000000000000000000000000000000000000000000000000000815267ffffffffffffffff8c1660048201526024016106f8565b8b85815181106128ba576128ba614efa565b60200260200101516000146128ed578b85815181106128db576128db614efa565b60200260200101518360800181815250505b50612954565b600081600381111561290757612907614a67565b14612954578151606001516040805167ffffffffffffffff808e16825290921660208301527f3ef2a99c550a751d4b0b261268f05a803dfb049ab43616a1ffb388f61fe651209101612813565b81516080015167ffffffffffffffff1615612a4357600081600381111561297d5761297d614a67565b03612a435781516080015160208301516040517fe0e03cae0000000000000000000000000000000000000000000000000000000081526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169263e0e03cae926129f4928f929190600401615b12565b6020604051808303816000875af1158015612a13573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a379190615484565b612a4357505050612c63565b60008c604001518581518110612a5b57612a5b614efa565b6020026020010151905080518360a001515114612abf578251606001516040517f1cfe6d8b00000000000000000000000000000000000000000000000000000000815267ffffffffffffffff808e16600483015290911660248201526044016106f8565b612ad38b84600001516060015160016136c1565b600080612ae08584613769565b91509150612af78d866000015160600151846136c1565b8b15612b67576003826003811115612b1157612b11614a67565b03612b67576000846003811115612b2a57612b2a614a67565b14612b67578451516040517f2b11b8d90000000000000000000000000000000000000000000000000000000081526106f891908390600401615b3f565b6002826003811115612b7b57612b7b614a67565b14612bd5576003826003811115612b9457612b94614a67565b14612bd5578451606001516040517f926c5a3e0000000000000000000000000000000000000000000000000000000081526106f8918f918590600401615b58565b84600001516000015185600001516060015167ffffffffffffffff168e67ffffffffffffffff167f05665fe9ad095383d018353f4cbcba77e84db27dd215081bbf7cdf9ae6fbe48b8c8b81518110612c2f57612c2f614efa565b602002602001015186865a612c44908e61556c565b604051612c549493929190615b7e565b60405180910390a45050505050505b600101612755565b8251600090815b818110156111b6576000600188868460208110612c9157612c91614efa565b612c9e91901a601b615985565b898581518110612cb057612cb0614efa565b6020026020010151898681518110612cca57612cca614efa565b602002602001015160405160008152602001604052604051612d08949392919093845260ff9290921660208401526040830152606082015260800190565b6020604051602081039080840390855afa158015612d2a573d6000803e3d6000fd5b505060408051601f1981015160ff808e166000908152600360209081528582206001600160a01b03851683528152858220858701909652855480841686529397509095509293928401916101009004166002811115612d8b57612d8b614a67565b6002811115612d9c57612d9c614a67565b9052509050600181602001516002811115612db957612db9614a67565b14612df0576040517fca31867a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8051600160ff9091161b851615612e33576040517ff67bc7c400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b806000015160ff166001901b851794505050806001019050612c72565b60408051808201909152600080825260208201526000612e738760200151613833565b6040517fbbe4f6db0000000000000000000000000000000000000000000000000000000081526001600160a01b0380831660048301529192506000917f0000000000000000000000000000000000000000000000000000000000000000169063bbe4f6db90602401602060405180830381865afa158015612ef8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f1c9190615bb5565b90506001600160a01b0381161580612f645750612f626001600160a01b0382167faff2afbf00000000000000000000000000000000000000000000000000000000611f05565b155b15612fa6576040517fae9b4ce90000000000000000000000000000000000000000000000000000000081526001600160a01b03821660048201526024016106f8565b6004546000908190612fc89089908690600160e01b900463ffffffff166138d9565b9150915060008060006130956040518061010001604052808e81526020018c67ffffffffffffffff1681526020018d6001600160a01b031681526020018f606001518152602001896001600160a01b031681526020018f6000015181526020018f6040015181526020018b8152506040516024016130469190615bd2565b60408051601f198184030181529190526020810180516001600160e01b03167f390775370000000000000000000000000000000000000000000000000000000017905287866113886084613a07565b925092509250826130d457816040517fe1cd55090000000000000000000000000000000000000000000000000000000081526004016106f89190614882565b815160201461311c5781516040517f78ef80240000000000000000000000000000000000000000000000000000000081526020600482015260248101919091526044016106f8565b6000828060200190518101906131329190615c9f565b9050866001600160a01b03168c6001600160a01b0316146131c75760006131638d8a61315e868a61556c565b6138d9565b5090508681108061317d57508161317a888361556c565b14155b156131c5576040517fa966e21f0000000000000000000000000000000000000000000000000000000081526004810183905260248101889052604481018290526064016106f8565b505b604080518082019091526001600160a01b039098168852602088015250949550505050505095945050505050565b6000613221827f01ffc9a700000000000000000000000000000000000000000000000000000000613259565b8015610d785750613252827fffffffff00000000000000000000000000000000000000000000000000000000613259565b1592915050565b6040517fffffffff0000000000000000000000000000000000000000000000000000000082166024820152600090819060440160408051601f19818403018152919052602080820180516001600160e01b03167f01ffc9a700000000000000000000000000000000000000000000000000000000178152825192935060009283928392909183918a617530fa92503d915060005190508280156132fd575060208210155b80156133095750600081115b979650505050505050565b60005b81518110156107245760ff83166000908152600360205260408120835190919084908490811061334957613349614efa565b6020908102919091018101516001600160a01b03168252810191909152604001600020805461ffff19169055600101613317565b60005b8251811015610d2257600083828151811061339d5761339d614efa565b60200260200101519050600060028111156133ba576133ba614a67565b60ff80871660009081526003602090815260408083206001600160a01b038716845290915290205461010090041660028111156133f9576133f9614a67565b1461341a576004604051631b3fab5160e11b81526004016106f89190615a30565b6001600160a01b03811661345a576040517fd6c62c9b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60405180604001604052808360ff16815260200184600281111561348057613480614a67565b905260ff80871660009081526003602090815260408083206001600160a01b0387168452825290912083518154931660ff198416811782559184015190929091839161ffff1916176101008360028111156134dd576134dd614a67565b021790555090505050806001019050613380565b60ff81166105815760ff8082166000908152600260205260409020600101546201000090041661354d576040517f7a3b4c9400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6009805467ffffffffffffffff1916905550565b8151602080820151604092830151925160009384936135a7937f2425b0b9f9054c76ff151b0a175b18f37a4a4e82013a72e9f15c9caa095ed21f93909291889101615cb8565b60408051601f1981840301815290829052805160209182012086518051888401516060808b0151908401516080808d015195015195976135f09794969395929491939101615ceb565b604051602081830303815290604052805190602001208560400151805190602001208660a001516040516020016136279190615df0565b60408051601f198184030181528282528051602091820120908301969096528101939093526060830191909152608082015260a081019190915260c0015b60405160208183030381529060405280519060200120905092915050565b600080613691858585613b2d565b67ffffffffffffffff8716600090815260086020908152604080832093835292905220549150505b949350505050565b600060026136d0608085615595565b67ffffffffffffffff166136e491906155bc565b905060006136f28585611c39565b9050816137016001600461556c565b901b19168183600381111561371857613718614a67565b67ffffffffffffffff871660009081526007602052604081209190921b929092179182916137476080886159c2565b67ffffffffffffffff1681526020810191909152604001600020555050505050565b6040517fa80036b4000000000000000000000000000000000000000000000000000000008152600090606090309063a80036b4906137ad9087908790600401615e50565b600060405180830381600087803b1580156137c757600080fd5b505af19250505080156137d8575060015b613817573d808015613806576040519150601f19603f3d011682016040523d82523d6000602084013e61380b565b606091505b5060039250905061382c565b50506040805160208101909152600081526002905b9250929050565b6000815160201461387257816040517f8d666f600000000000000000000000000000000000000000000000000000000081526004016106f89190614882565b6000828060200190518101906138889190615c9f565b90506001600160a01b038111806138a0575061040081105b15610d7857826040517f8d666f600000000000000000000000000000000000000000000000000000000081526004016106f89190614882565b60008060008060006139538860405160240161390491906001600160a01b0391909116815260200190565b60408051601f198184030181529190526020810180516001600160e01b03167f70a082310000000000000000000000000000000000000000000000000000000017905288886113886084613a07565b9250925092508261399257816040517fe1cd55090000000000000000000000000000000000000000000000000000000081526004016106f89190614882565b60208251146139da5781516040517f78ef80240000000000000000000000000000000000000000000000000000000081526020600482015260248101919091526044016106f8565b818060200190518101906139ee9190615c9f565b6139f8828861556c565b94509450505050935093915050565b6000606060008361ffff1667ffffffffffffffff811115613a2a57613a2a613e94565b6040519080825280601f01601f191660200182016040528015613a54576020820181803683370190505b509150863b613a87577f0c3b563c0000000000000000000000000000000000000000000000000000000060005260046000fd5b5a85811015613aba577fafa32a2c0000000000000000000000000000000000000000000000000000000060005260046000fd5b8590036040810481038710613af3577f37c3be290000000000000000000000000000000000000000000000000000000060005260046000fd5b505a6000808a5160208c0160008c8cf193505a900390503d84811115613b165750835b808352806000602085013e50955095509592505050565b8251825160009190818303613b6e576040517f11a6b26400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6101018211801590613b8257506101018111155b613b9f576040516309bde33960e01b815260040160405180910390fd5b60001982820101610100811115613bc9576040516309bde33960e01b815260040160405180910390fd5b80600003613bf65786600081518110613be457613be4614efa565b60200260200101519350505050613dc5565b60008167ffffffffffffffff811115613c1157613c11613e94565b604051908082528060200260200182016040528015613c3a578160200160208202803683370190505b50905060008080805b85811015613d645760006001821b8b811603613c9e5788851015613c87578c5160018601958e918110613c7857613c78614efa565b60200260200101519050613cc0565b8551600185019487918110613c7857613c78614efa565b8b5160018401938d918110613cb557613cb5614efa565b602002602001015190505b600089861015613cf0578d5160018701968f918110613ce157613ce1614efa565b60200260200101519050613d12565b8651600186019588918110613d0757613d07614efa565b602002602001015190505b82851115613d33576040516309bde33960e01b815260040160405180910390fd5b613d3d8282613dcc565b878481518110613d4f57613d4f614efa565b60209081029190910101525050600101613c43565b506001850382148015613d7657508683145b8015613d8157508581145b613d9e576040516309bde33960e01b815260040160405180910390fd5b836001860381518110613db357613db3614efa565b60200260200101519750505050505050505b9392505050565b6000818310613de457613ddf8284613dea565b610d75565b610d7583835b604080516001602082015290810183905260608101829052600090608001613665565b828054828255906000526020600020908101928215613e6f579160200282015b82811115613e6f578251825473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03909116178255602090920191600190910190613e2d565b50613e7b929150613e7f565b5090565b5b80821115613e7b5760008155600101613e80565b634e487b7160e01b600052604160045260246000fd5b6040516080810167ffffffffffffffff81118282101715613ecd57613ecd613e94565b60405290565b60405160a0810167ffffffffffffffff81118282101715613ecd57613ecd613e94565b60405160c0810167ffffffffffffffff81118282101715613ecd57613ecd613e94565b6040805190810167ffffffffffffffff81118282101715613ecd57613ecd613e94565b6040516060810167ffffffffffffffff81118282101715613ecd57613ecd613e94565b604051601f8201601f1916810167ffffffffffffffff81118282101715613f8857613f88613e94565b604052919050565b600067ffffffffffffffff821115613faa57613faa613e94565b5060051b60200190565b6001600160a01b038116811461058157600080fd5b803567ffffffffffffffff81168114613fe157600080fd5b919050565b801515811461058157600080fd5b8035613fe181613fe6565b600067ffffffffffffffff82111561401957614019613e94565b50601f01601f191660200190565b600082601f83011261403857600080fd5b813561404b61404682613fff565b613f5f565b81815284602083860101111561406057600080fd5b816020850160208301376000918101602001919091529392505050565b6000602080838503121561409057600080fd5b823567ffffffffffffffff808211156140a857600080fd5b818501915085601f8301126140bc57600080fd5b81356140ca61404682613f90565b81815260059190911b830184019084810190888311156140e957600080fd5b8585015b8381101561418f578035858111156141055760008081fd5b86016080818c03601f190181131561411d5760008081fd5b614125613eaa565b8983013561413281613fb4565b81526040614141848201613fc9565b8b83015260608085013561415481613fe6565b8383015292840135928984111561416d57600091508182fd5b61417b8f8d86880101614027565b9083015250855250509186019186016140ed565b5098975050505050505050565b600060a082840312156141ae57600080fd5b6141b6613ed3565b9050813581526141c860208301613fc9565b60208201526141d960408301613fc9565b60408201526141ea60608301613fc9565b60608201526141fb60808301613fc9565b608082015292915050565b8035613fe181613fb4565b600082601f83011261422257600080fd5b8135602061423261404683613f90565b82815260059290921b8401810191818101908684111561425157600080fd5b8286015b84811015611ef957803567ffffffffffffffff808211156142765760008081fd5b9088019060a0828b03601f19018113156142905760008081fd5b614298613ed3565b87840135838111156142aa5760008081fd5b6142b88d8a83880101614027565b825250604080850135848111156142cf5760008081fd5b6142dd8e8b83890101614027565b8a84015250606080860135858111156142f65760008081fd5b6143048f8c838a0101614027565b8385015250608091508186013581840152508285013592508383111561432a5760008081fd5b6143388d8a85880101614027565b908201528652505050918301918301614255565b6000610140828403121561435f57600080fd5b614367613ef6565b9050614373838361419c565b815260a082013567ffffffffffffffff8082111561439057600080fd5b61439c85838601614027565b602084015260c08401359150808211156143b557600080fd5b6143c185838601614027565b60408401526143d260e08501614206565b606084015261010084013560808401526101208401359150808211156143f757600080fd5b5061440484828501614211565b60a08301525092915050565b600082601f83011261442157600080fd5b8135602061443161404683613f90565b82815260059290921b8401810191818101908684111561445057600080fd5b8286015b84811015611ef957803567ffffffffffffffff8111156144745760008081fd5b6144828986838b010161434c565b845250918301918301614454565b600082601f8301126144a157600080fd5b813560206144b161404683613f90565b82815260059290921b840181019181810190868411156144d057600080fd5b8286015b84811015611ef957803567ffffffffffffffff808211156144f457600080fd5b818901915089603f83011261450857600080fd5b8582013561451861404682613f90565b81815260059190911b830160400190878101908c83111561453857600080fd5b604085015b838110156145715780358581111561455457600080fd5b6145638f6040838a0101614027565b84525091890191890161453d565b508752505050928401925083016144d4565b600082601f83011261459457600080fd5b813560206145a461404683613f90565b8083825260208201915060208460051b8701019350868411156145c657600080fd5b602086015b84811015611ef957803583529183019183016145cb565b600082601f8301126145f357600080fd5b8135602061460361404683613f90565b82815260059290921b8401810191818101908684111561462257600080fd5b8286015b84811015611ef957803567ffffffffffffffff808211156146475760008081fd5b9088019060a0828b03601f19018113156146615760008081fd5b614669613ed3565b614674888501613fc9565b81526040808501358481111561468a5760008081fd5b6146988e8b83890101614410565b8a84015250606080860135858111156146b15760008081fd5b6146bf8f8c838a0101614490565b83850152506080915081860135858111156146da5760008081fd5b6146e88f8c838a0101614583565b9184019190915250919093013590830152508352918301918301614626565b600080604080848603121561471b57600080fd5b833567ffffffffffffffff8082111561473357600080fd5b61473f878388016145e2565b945060209150818601358181111561475657600080fd5b8601601f8101881361476757600080fd5b803561477561404682613f90565b81815260059190911b8201840190848101908a83111561479457600080fd5b8584015b83811015614820578035868111156147b05760008081fd5b8501603f81018d136147c25760008081fd5b878101356147d261404682613f90565b81815260059190911b82018a0190898101908f8311156147f25760008081fd5b928b01925b828410156148105783358252928a0192908a01906147f7565b8652505050918601918601614798565b50809750505050505050509250929050565b60005b8381101561484d578181015183820152602001614835565b50506000910152565b6000815180845261486e816020860160208601614832565b601f01601f19169290920160200192915050565b602081526000610d756020830184614856565b8060608101831015610d7857600080fd5b60008083601f8401126148b857600080fd5b50813567ffffffffffffffff8111156148d057600080fd5b60208301915083602082850101111561382c57600080fd5b60008083601f8401126148fa57600080fd5b50813567ffffffffffffffff81111561491257600080fd5b6020830191508360208260051b850101111561382c57600080fd5b60008060008060008060008060e0898b03121561494957600080fd5b6149538a8a614895565b9750606089013567ffffffffffffffff8082111561497057600080fd5b61497c8c838d016148a6565b909950975060808b013591508082111561499557600080fd5b6149a18c838d016148e8565b909750955060a08b01359150808211156149ba57600080fd5b506149c78b828c016148e8565b999c989b50969995989497949560c00135949350505050565b6000806000608084860312156149f557600080fd5b6149ff8585614895565b9250606084013567ffffffffffffffff811115614a1b57600080fd5b614a27868287016148a6565b9497909650939450505050565b60008060408385031215614a4757600080fd5b614a5083613fc9565b9150614a5e60208401613fc9565b90509250929050565b634e487b7160e01b600052602160045260246000fd5b60048110614a8d57614a8d614a67565b9052565b60208101610d788284614a7d565b600060208284031215614ab157600080fd5b813567ffffffffffffffff811115614ac857600080fd5b820160a08185031215613dc557600080fd5b803563ffffffff81168114613fe157600080fd5b600060a08284031215614b0057600080fd5b614b08613ed3565b8235614b1381613fb4565b8152614b2160208401614ada565b6020820152614b3260408401614ada565b6040820152614b4360608401614ada565b60608201526080830135614b5681613fb4565b60808201529392505050565b600080600060408486031215614b7757600080fd5b833567ffffffffffffffff80821115614b8f57600080fd5b614b9b8783880161434c565b94506020860135915080821115614bb157600080fd5b50614a27868287016148e8565b803560ff81168114613fe157600080fd5b600060208284031215614be157600080fd5b610d7582614bbe565b60008151808452602080850194506020840160005b83811015614c245781516001600160a01b031687529582019590820190600101614bff565b509495945050505050565b60208152600082518051602084015260ff602082015116604084015260ff604082015116606084015260608101511515608084015250602083015160c060a0840152614c7e60e0840182614bea565b90506040840151601f198483030160c0850152614c9b8282614bea565b95945050505050565b60008060408385031215614cb757600080fd5b614cc083613fc9565b946020939093013593505050565b600060208284031215614ce057600080fd5b610d7582613fc9565b602081526001600160a01b03825116602082015260208201511515604082015267ffffffffffffffff6040830151166060820152600060608301516080808401526136b960a0840182614856565b600060208284031215614d4957600080fd5b8135613dc581613fb4565b600082601f830112614d6557600080fd5b81356020614d7561404683613f90565b8083825260208201915060208460051b870101935086841115614d9757600080fd5b602086015b84811015611ef9578035614daf81613fb4565b8352918301918301614d9c565b60006020808385031215614dcf57600080fd5b823567ffffffffffffffff80821115614de757600080fd5b818501915085601f830112614dfb57600080fd5b8135614e0961404682613f90565b81815260059190911b83018401908481019088831115614e2857600080fd5b8585015b8381101561418f57803585811115614e4357600080fd5b860160c0818c03601f19011215614e5a5760008081fd5b614e62613ef6565b8882013581526040614e75818401614bbe565b8a8301526060614e86818501614bbe565b8284015260809150614e99828501613ff4565b9083015260a08381013589811115614eb15760008081fd5b614ebf8f8d83880101614d54565b838501525060c0840135915088821115614ed95760008081fd5b614ee78e8c84870101614d54565b9083015250845250918601918601614e2c565b634e487b7160e01b600052603260045260246000fd5b80356001600160e01b0381168114613fe157600080fd5b600082601f830112614f3857600080fd5b81356020614f4861404683613f90565b82815260069290921b84018101918181019086841115614f6757600080fd5b8286015b84811015611ef95760408189031215614f845760008081fd5b614f8c613f19565b614f9582613fc9565b8152614fa2858301614f10565b81860152835291830191604001614f6b565b600082601f830112614fc557600080fd5b81356020614fd561404683613f90565b82815260059290921b84018101918181019086841115614ff457600080fd5b8286015b84811015611ef957803567ffffffffffffffff808211156150195760008081fd5b9088019060a0828b03601f19018113156150335760008081fd5b61503b613ed3565b615046888501613fc9565b81526040808501358481111561505c5760008081fd5b61506a8e8b83890101614027565b8a840152506060935061507e848601613fc9565b90820152608061508f858201613fc9565b93820193909352920135908201528352918301918301614ff8565b600082601f8301126150bb57600080fd5b813560206150cb61404683613f90565b82815260069290921b840181019181810190868411156150ea57600080fd5b8286015b84811015611ef957604081890312156151075760008081fd5b61510f613f19565b8135815284820135858201528352918301916040016150ee565b6000602080838503121561513c57600080fd5b823567ffffffffffffffff8082111561515457600080fd5b908401906060828703121561516857600080fd5b615170613f3c565b82358281111561517f57600080fd5b8301604081890381131561519257600080fd5b61519a613f19565b8235858111156151a957600080fd5b8301601f81018b136151ba57600080fd5b80356151c861404682613f90565b81815260069190911b8201890190898101908d8311156151e757600080fd5b928a01925b828410156152375785848f0312156152045760008081fd5b61520c613f19565b843561521781613fb4565b8152615224858d01614f10565b818d0152825292850192908a01906151ec565b84525050508287013591508482111561524f57600080fd5b61525b8a838501614f27565b8188015283525050828401358281111561527457600080fd5b61528088828601614fb4565b8583015250604083013593508184111561529957600080fd5b6152a5878585016150aa565b60408201529695505050505050565b600082825180855260208086019550808260051b84010181860160005b8481101561534657601f19868403018952815160a067ffffffffffffffff80835116865286830151828888015261530a83880182614856565b604085810151841690890152606080860151909316928801929092525060809283015192909501919091525097830197908301906001016152d1565b5090979650505050505050565b60008151808452602080850194506020840160005b83811015614c24578151805188528301518388015260409096019590820190600101615368565b6040815260006153a260408301856152b4565b8281036020840152614c9b8185615353565b805160408084528151848201819052600092602091908201906060870190855b8181101561540b57835180516001600160a01b031684528501516001600160e01b03168584015292840192918501916001016153d4565b50508583015187820388850152805180835290840192506000918401905b80831015615465578351805167ffffffffffffffff1683528501516001600160e01b031685830152928401926001929092019190850190615429565b50979650505050505050565b602081526000610d7560208301846153b4565b60006020828403121561549657600080fd5b8151613dc581613fe6565b634e487b7160e01b600052601160045260246000fd5b67ffffffffffffffff8181168382160190808211156154d8576154d86154a1565b5092915050565b6020815260008251606060208401526154fb60808401826153b4565b90506020840151601f198085840301604086015261551983836152b4565b9250604086015191508085840301606086015250614c9b8282615353565b60006020828403121561554957600080fd5b813567ffffffffffffffff81111561556057600080fd5b6136b9848285016145e2565b81810381811115610d7857610d786154a1565b634e487b7160e01b600052601260045260246000fd5b600067ffffffffffffffff808416806155b0576155b061557f565b92169190910692915050565b8082028115828204841417610d7857610d786154a1565b805182526000602067ffffffffffffffff81840151168185015260408084015160a0604087015261560760a0870182614856565b9050606085015186820360608801526156208282614856565b608087810151898303918a01919091528051808352908601935060009250908501905b8083101561546557835180516001600160a01b0316835286015186830152928501926001929092019190840190615643565b602081526000610d7560208301846155d3565b60808152600061569b60808301876155d3565b61ffff9590951660208301525060408101929092526001600160a01b0316606090910152919050565b6000806000606084860312156156d957600080fd5b83516156e481613fe6565b602085015190935067ffffffffffffffff81111561570157600080fd5b8401601f8101861361571257600080fd5b805161572061404682613fff565b81815287602083850101111561573557600080fd5b615746826020830160208601614832565b809450505050604084015190509250925092565b600181811c9082168061576e57607f821691505b60208210810361578e57634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115610724576000816000526020600020601f850160051c810160208610156157bd5750805b601f850160051c820191505b818110156157dc578281556001016157c9565b505050505050565b815167ffffffffffffffff8111156157fe576157fe613e94565b6158128161580c845461575a565b84615794565b602080601f831160018114615847576000841561582f5750858301515b600019600386901b1c1916600185901b1785556157dc565b600085815260208120601f198616915b8281101561587657888601518255948401946001909101908401615857565b50858210156158945787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6000602080835283546001600160a01b038116602085015260ff8160a01c161515604085015267ffffffffffffffff8160a81c166060850152506001808501608080860152600081546158f68161575a565b8060a089015260c06001831660008114615917576001811461593357615963565b60ff19841660c08b015260c083151560051b8b01019450615963565b85600052602060002060005b8481101561595a5781548c820185015290880190890161593f565b8b0160c0019550505b50929998505050505050505050565b80820180821115610d7857610d786154a1565b60ff8181168382160190811115610d7857610d786154a1565b8183823760009101908152919050565b828152606082602083013760800192915050565b600067ffffffffffffffff808416806159dd576159dd61557f565b92169190910492915050565b6000808335601e19843603018112615a0057600080fd5b83018035915067ffffffffffffffff821115615a1b57600080fd5b60200191503681900382131561382c57600080fd5b6020810160058310615a4457615a44614a67565b91905290565b60ff81811683821602908116908181146154d8576154d86154a1565b600060a0820160ff881683526020878185015260a0604085015281875480845260c0860191508860005282600020935060005b81811015615abe5784546001600160a01b031683526001948501949284019201615a99565b50508481036060860152865180825290820192508187019060005b81811015615afe5782516001600160a01b031685529383019391830191600101615ad9565b50505060ff85166080850152509050611efb565b600067ffffffffffffffff808616835280851660208401525060606040830152614c9b6060830184614856565b8281526040602082015260006136b96040830184614856565b67ffffffffffffffff848116825283166020820152606081016136b96040830184614a7d565b848152615b8e6020820185614a7d565b608060408201526000615ba46080830185614856565b905082606083015295945050505050565b600060208284031215615bc757600080fd5b8151613dc581613fb4565b6020815260008251610100806020850152615bf1610120850183614856565b91506020850151615c0e604086018267ffffffffffffffff169052565b5060408501516001600160a01b038116606086015250606085015160808501526080850151615c4860a08601826001600160a01b03169052565b5060a0850151601f19808685030160c0870152615c658483614856565b935060c08701519150808685030160e0870152615c828483614856565b935060e0870151915080868503018387015250611efb8382614856565b600060208284031215615cb157600080fd5b5051919050565b848152600067ffffffffffffffff808616602084015280851660408401525060806060830152611efb6080830184614856565b86815260c060208201526000615d0460c0830188614856565b6001600160a01b039690961660408301525067ffffffffffffffff9384166060820152608081019290925290911660a09091015292915050565b600082825180855260208086019550808260051b84010181860160005b8481101561534657601f19868403018952815160a08151818652615d8182870182614856565b9150508582015185820387870152615d998282614856565b91505060408083015186830382880152615db38382614856565b92505050606080830151818701525060808083015192508582038187015250615ddc8183614856565b9a86019a9450505090830190600101615d5b565b602081526000610d756020830184615d3e565b60008282518085526020808601955060208260051b8401016020860160005b8481101561534657601f19868403018952615e3e838351614856565b98840198925090830190600101615e22565b604081526000835180516040840152602081015167ffffffffffffffff80821660608601528060408401511660808601528060608401511660a08601528060808401511660c086015250505060208401516101408060e0850152615eb8610180850183614856565b91506040860151603f198086850301610100870152615ed78483614856565b935060608801519150615ef66101208701836001600160a01b03169052565b60808801518387015260a0880151925080868503016101608701525050615f1d8282615d3e565b9150508281036020840152614c9b8185615e0356fea164736f6c6343000818000a", + ABI: "[{\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"chainSelector\",\"type\":\"uint64\"},{\"internalType\":\"contractIRMNV2\",\"name\":\"rmn\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tokenAdminRegistry\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"nonceManager\",\"type\":\"address\"}],\"internalType\":\"structOffRamp.StaticConfig\",\"name\":\"staticConfig\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"feeQuoter\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"permissionLessExecutionThresholdSeconds\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"maxTokenTransferGas\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"maxPoolReleaseOrMintGas\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"messageValidator\",\"type\":\"address\"}],\"internalType\":\"structOffRamp.DynamicConfig\",\"name\":\"dynamicConfig\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"contractIRouter\",\"name\":\"router\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"bool\",\"name\":\"isEnabled\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"onRamp\",\"type\":\"bytes\"}],\"internalType\":\"structOffRamp.SourceChainConfigArgs[]\",\"name\":\"sourceChainConfigs\",\"type\":\"tuple[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"CanOnlySelfCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"expected\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"actual\",\"type\":\"bytes32\"}],\"name\":\"ConfigDigestMismatch\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"}],\"name\":\"CursedByRMN\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"EmptyReport\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"messageId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"err\",\"type\":\"bytes\"}],\"name\":\"ExecutionError\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"expected\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"actual\",\"type\":\"uint256\"}],\"name\":\"ForkedChain\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"enumMultiOCR3Base.InvalidConfigErrorType\",\"name\":\"errorType\",\"type\":\"uint8\"}],\"name\":\"InvalidConfig\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"expected\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"got\",\"type\":\"uint256\"}],\"name\":\"InvalidDataLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"encodedAddress\",\"type\":\"bytes\"}],\"name\":\"InvalidEVMAddress\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"min\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"max\",\"type\":\"uint64\"}],\"name\":\"InvalidInterval\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"newLimit\",\"type\":\"uint256\"}],\"name\":\"InvalidManualExecutionGasLimit\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"messageDestChainSelector\",\"type\":\"uint64\"}],\"name\":\"InvalidMessageDestChainSelector\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"sequenceNumber\",\"type\":\"uint64\"},{\"internalType\":\"enumInternal.MessageExecutionState\",\"name\":\"newState\",\"type\":\"uint8\"}],\"name\":\"InvalidNewState\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"reportOnRamp\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"configOnRamp\",\"type\":\"bytes\"}],\"name\":\"InvalidOnRamp\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidOnRampUpdate\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidProof\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidRoot\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"}],\"name\":\"InvalidStaticConfig\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LeavesCannotBeEmpty\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ManualExecutionGasLimitMismatch\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"}],\"name\":\"ManualExecutionNotYetEnabled\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"errorReason\",\"type\":\"bytes\"}],\"name\":\"MessageValidationError\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NonUniqueSignatures\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"notPool\",\"type\":\"address\"}],\"name\":\"NotACompatiblePool\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OracleCannotBeZeroAddress\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"err\",\"type\":\"bytes\"}],\"name\":\"ReceiverError\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amountReleased\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balancePre\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balancePost\",\"type\":\"uint256\"}],\"name\":\"ReleaseOrMintBalanceMismatch\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"merkleRoot\",\"type\":\"bytes32\"}],\"name\":\"RootAlreadyCommitted\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"}],\"name\":\"RootNotCommitted\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SignatureVerificationDisabled\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SignaturesOutOfRegistration\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"}],\"name\":\"SourceChainNotEnabled\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"reportSourceChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"messageSourceChainSelector\",\"type\":\"uint64\"}],\"name\":\"SourceChainSelectorMismatch\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"StaleCommitReport\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"ocrPluginType\",\"type\":\"uint8\"}],\"name\":\"StaticConfigCannotBeChanged\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"sequenceNumber\",\"type\":\"uint64\"}],\"name\":\"TokenDataMismatch\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"err\",\"type\":\"bytes\"}],\"name\":\"TokenHandlingError\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UnauthorizedSigner\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UnauthorizedTransmitter\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UnexpectedTokenData\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"expected\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"actual\",\"type\":\"uint256\"}],\"name\":\"WrongMessageLength\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"WrongNumberOfSignatures\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZeroAddressNotAllowed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZeroChainSelectorNotAllowed\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"sequenceNumber\",\"type\":\"uint64\"}],\"name\":\"AlreadyAttempted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"components\":[{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"sourceToken\",\"type\":\"address\"},{\"internalType\":\"uint224\",\"name\":\"usdPerToken\",\"type\":\"uint224\"}],\"internalType\":\"structInternal.TokenPriceUpdate[]\",\"name\":\"tokenPriceUpdates\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"uint64\",\"name\":\"destChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"uint224\",\"name\":\"usdPerUnitGas\",\"type\":\"uint224\"}],\"internalType\":\"structInternal.GasPriceUpdate[]\",\"name\":\"gasPriceUpdates\",\"type\":\"tuple[]\"}],\"internalType\":\"structInternal.PriceUpdates\",\"name\":\"priceUpdates\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"onRampAddress\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"minSeqNr\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"maxSeqNr\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"merkleRoot\",\"type\":\"bytes32\"}],\"internalType\":\"structInternal.MerkleRoot[]\",\"name\":\"merkleRoots\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"internalType\":\"structIRMNV2.Signature[]\",\"name\":\"rmnSignatures\",\"type\":\"tuple[]\"}],\"indexed\":false,\"internalType\":\"structOffRamp.CommitReport\",\"name\":\"report\",\"type\":\"tuple\"}],\"name\":\"CommitReportAccepted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"ocrPluginType\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"configDigest\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"signers\",\"type\":\"address[]\"},{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"transmitters\",\"type\":\"address[]\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"F\",\"type\":\"uint8\"}],\"name\":\"ConfigSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"feeQuoter\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"permissionLessExecutionThresholdSeconds\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"maxTokenTransferGas\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"maxPoolReleaseOrMintGas\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"messageValidator\",\"type\":\"address\"}],\"indexed\":false,\"internalType\":\"structOffRamp.DynamicConfig\",\"name\":\"dynamicConfig\",\"type\":\"tuple\"}],\"name\":\"DynamicConfigSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"sequenceNumber\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"messageId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"messageHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"enumInternal.MessageExecutionState\",\"name\":\"state\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"returnData\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"gasUsed\",\"type\":\"uint256\"}],\"name\":\"ExecutionStateChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"OwnershipTransferRequested\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"root\",\"type\":\"bytes32\"}],\"name\":\"RootRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"sequenceNumber\",\"type\":\"uint64\"}],\"name\":\"SkippedAlreadyExecutedMessage\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"}],\"name\":\"SkippedReportExecution\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"components\":[{\"internalType\":\"contractIRouter\",\"name\":\"router\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"isEnabled\",\"type\":\"bool\"},{\"internalType\":\"uint64\",\"name\":\"minSeqNr\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"onRamp\",\"type\":\"bytes\"}],\"indexed\":false,\"internalType\":\"structOffRamp.SourceChainConfig\",\"name\":\"sourceConfig\",\"type\":\"tuple\"}],\"name\":\"SourceChainConfigSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"}],\"name\":\"SourceChainSelectorAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"chainSelector\",\"type\":\"uint64\"},{\"internalType\":\"contractIRMNV2\",\"name\":\"rmn\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tokenAdminRegistry\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"nonceManager\",\"type\":\"address\"}],\"indexed\":false,\"internalType\":\"structOffRamp.StaticConfig\",\"name\":\"staticConfig\",\"type\":\"tuple\"}],\"name\":\"StaticConfigSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint8\",\"name\":\"ocrPluginType\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"configDigest\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"sequenceNumber\",\"type\":\"uint64\"}],\"name\":\"Transmitted\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"acceptOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"contractIRouter\",\"name\":\"router\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"bool\",\"name\":\"isEnabled\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"onRamp\",\"type\":\"bytes\"}],\"internalType\":\"structOffRamp.SourceChainConfigArgs[]\",\"name\":\"sourceChainConfigUpdates\",\"type\":\"tuple[]\"}],\"name\":\"applySourceChainConfigUpdates\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"messageId\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"sender\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"structClient.EVMTokenAmount[]\",\"name\":\"destTokenAmounts\",\"type\":\"tuple[]\"}],\"internalType\":\"structClient.Any2EVMMessage\",\"name\":\"\",\"type\":\"tuple\"}],\"name\":\"ccipReceive\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32[3]\",\"name\":\"reportContext\",\"type\":\"bytes32[3]\"},{\"internalType\":\"bytes\",\"name\":\"report\",\"type\":\"bytes\"},{\"internalType\":\"bytes32[]\",\"name\":\"rs\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes32[]\",\"name\":\"ss\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes32\",\"name\":\"rawVs\",\"type\":\"bytes32\"}],\"name\":\"commit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32[3]\",\"name\":\"reportContext\",\"type\":\"bytes32[3]\"},{\"internalType\":\"bytes\",\"name\":\"report\",\"type\":\"bytes\"}],\"name\":\"execute\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"messageId\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"destChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"sequenceNumber\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"internalType\":\"structInternal.RampMessageHeader\",\"name\":\"header\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"sender\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"gasLimit\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"bytes\",\"name\":\"sourcePoolAddress\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"destTokenAddress\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"extraData\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"destExecData\",\"type\":\"bytes\"}],\"internalType\":\"structInternal.RampTokenAmount[]\",\"name\":\"tokenAmounts\",\"type\":\"tuple[]\"}],\"internalType\":\"structInternal.Any2EVMRampMessage\",\"name\":\"message\",\"type\":\"tuple\"},{\"internalType\":\"bytes[]\",\"name\":\"offchainTokenData\",\"type\":\"bytes[]\"}],\"name\":\"executeSingleMessage\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getDynamicConfig\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"feeQuoter\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"permissionLessExecutionThresholdSeconds\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"maxTokenTransferGas\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"maxPoolReleaseOrMintGas\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"messageValidator\",\"type\":\"address\"}],\"internalType\":\"structOffRamp.DynamicConfig\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"sequenceNumber\",\"type\":\"uint64\"}],\"name\":\"getExecutionState\",\"outputs\":[{\"internalType\":\"enumInternal.MessageExecutionState\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getLatestPriceSequenceNumber\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"root\",\"type\":\"bytes32\"}],\"name\":\"getMerkleRoot\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"}],\"name\":\"getSourceChainConfig\",\"outputs\":[{\"components\":[{\"internalType\":\"contractIRouter\",\"name\":\"router\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"isEnabled\",\"type\":\"bool\"},{\"internalType\":\"uint64\",\"name\":\"minSeqNr\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"onRamp\",\"type\":\"bytes\"}],\"internalType\":\"structOffRamp.SourceChainConfig\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getStaticConfig\",\"outputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"chainSelector\",\"type\":\"uint64\"},{\"internalType\":\"contractIRMNV2\",\"name\":\"rmn\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tokenAdminRegistry\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"nonceManager\",\"type\":\"address\"}],\"internalType\":\"structOffRamp.StaticConfig\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"ocrPluginType\",\"type\":\"uint8\"}],\"name\":\"latestConfigDetails\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"configDigest\",\"type\":\"bytes32\"},{\"internalType\":\"uint8\",\"name\":\"F\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"n\",\"type\":\"uint8\"},{\"internalType\":\"bool\",\"name\":\"isSignatureVerificationEnabled\",\"type\":\"bool\"}],\"internalType\":\"structMultiOCR3Base.ConfigInfo\",\"name\":\"configInfo\",\"type\":\"tuple\"},{\"internalType\":\"address[]\",\"name\":\"signers\",\"type\":\"address[]\"},{\"internalType\":\"address[]\",\"name\":\"transmitters\",\"type\":\"address[]\"}],\"internalType\":\"structMultiOCR3Base.OCRConfig\",\"name\":\"ocrConfig\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"components\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"messageId\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"destChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"sequenceNumber\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"internalType\":\"structInternal.RampMessageHeader\",\"name\":\"header\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"sender\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"gasLimit\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"bytes\",\"name\":\"sourcePoolAddress\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"destTokenAddress\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"extraData\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"destExecData\",\"type\":\"bytes\"}],\"internalType\":\"structInternal.RampTokenAmount[]\",\"name\":\"tokenAmounts\",\"type\":\"tuple[]\"}],\"internalType\":\"structInternal.Any2EVMRampMessage[]\",\"name\":\"messages\",\"type\":\"tuple[]\"},{\"internalType\":\"bytes[][]\",\"name\":\"offchainTokenData\",\"type\":\"bytes[][]\"},{\"internalType\":\"bytes32[]\",\"name\":\"proofs\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"proofFlagBits\",\"type\":\"uint256\"}],\"internalType\":\"structInternal.ExecutionReportSingleChain[]\",\"name\":\"reports\",\"type\":\"tuple[]\"},{\"internalType\":\"uint256[][]\",\"name\":\"gasLimitOverrides\",\"type\":\"uint256[][]\"}],\"name\":\"manuallyExecute\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"feeQuoter\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"permissionLessExecutionThresholdSeconds\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"maxTokenTransferGas\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"maxPoolReleaseOrMintGas\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"messageValidator\",\"type\":\"address\"}],\"internalType\":\"structOffRamp.DynamicConfig\",\"name\":\"dynamicConfig\",\"type\":\"tuple\"}],\"name\":\"setDynamicConfig\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"configDigest\",\"type\":\"bytes32\"},{\"internalType\":\"uint8\",\"name\":\"ocrPluginType\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"F\",\"type\":\"uint8\"},{\"internalType\":\"bool\",\"name\":\"isSignatureVerificationEnabled\",\"type\":\"bool\"},{\"internalType\":\"address[]\",\"name\":\"signers\",\"type\":\"address[]\"},{\"internalType\":\"address[]\",\"name\":\"transmitters\",\"type\":\"address[]\"}],\"internalType\":\"structMultiOCR3Base.OCRConfigArgs[]\",\"name\":\"ocrConfigArgs\",\"type\":\"tuple[]\"}],\"name\":\"setOCR3Configs\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"typeAndVersion\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"}]", + Bin: "0x6101206040523480156200001257600080fd5b5060405162006d0a38038062006d0a83398101604081905262000035916200085e565b33806000816200008c5760405162461bcd60e51b815260206004820152601860248201527f43616e6e6f7420736574206f776e657220746f207a65726f000000000000000060448201526064015b60405180910390fd5b600080546001600160a01b0319166001600160a01b0384811691909117909155811615620000bf57620000bf81620001fa565b5050466080525060208301516001600160a01b03161580620000ec575060408301516001600160a01b0316155b8062000103575060608301516001600160a01b0316155b1562000122576040516342bcdf7f60e11b815260040160405180910390fd5b82516001600160401b03166000036200014e5760405163c656089560e01b815260040160405180910390fd5b82516001600160401b0390811660a052602080850180516001600160a01b0390811660c05260408088018051831660e0526060808a01805185166101005283518b519098168852945184169587019590955251821690850152905116908201527f683eb52ee924eb817377cfa8f41f238f4bb7a877da5267869dfffbad85f564d89060800160405180910390a1620001e682620002a5565b620001f181620003c1565b50505062000bfe565b336001600160a01b03821603620002545760405162461bcd60e51b815260206004820152601760248201527f43616e6e6f74207472616e7366657220746f2073656c66000000000000000000604482015260640162000083565b600180546001600160a01b0319166001600160a01b0383811691821790925560008054604051929316917fed8889f560326eb138920d842192f0eb3dd22b4f139c87a2c57538e05bae12789190a350565b80516001600160a01b0316620002ce576040516342bcdf7f60e11b815260040160405180910390fd5b80516004805460208085018051604080880180516060808b0180516001600160a01b039b8c166001600160c01b0319909a168a17600160a01b63ffffffff98891602176001600160c01b0316600160c01b948816949094026001600160e01b031693909317600160e01b93871693909302929092179098556080808b018051600580546001600160a01b031916918d169190911790558451988952955185169688019690965290518316918601919091525116938301939093529151909216908201527fa55bd56595c45f517e5967a3067f3dca684445a3080e7c04a4e0d5a40cda627d9060a00160405180910390a150565b60005b8151811015620005fd576000828281518110620003e557620003e5620009b4565b60200260200101519050600081602001519050806001600160401b0316600003620004235760405163c656089560e01b815260040160405180910390fd5b81516001600160a01b03166200044c576040516342bcdf7f60e11b815260040160405180910390fd5b6001600160401b038116600090815260066020526040902060608301516001820180546200047a90620009ca565b9050600003620004d8578154600160a81b600160e81b031916600160a81b1782556040516001600160401b03841681527ff4c1390c70e5c0f491ae1ccbc06f9117cbbadf2767b247b3bc203280f24c0fb99060200160405180910390a15b805115806200050e5750604080516000602082015201604051602081830303815290604052805190602001208180519060200120145b156200052d576040516342bcdf7f60e11b815260040160405180910390fd5b8154600160a81b90046001600160401b03166001146200056057604051634ffae15560e11b815260040160405180910390fd5b6001820162000570828262000a5b565b50604080850151835486516001600160a01b03166001600160a01b0319921515600160a01b02929092166001600160a81b031990911617178355516001600160401b038416907f49f51971edd25182e97182d6ea372a0488ce2ab639f6a3a7ab4df0d2636fe56b90620005e590859062000b27565b60405180910390a250505050806001019050620003c4565b5050565b634e487b7160e01b600052604160045260246000fd5b604051608081016001600160401b03811182821017156200063c576200063c62000601565b60405290565b604051601f8201601f191681016001600160401b03811182821017156200066d576200066d62000601565b604052919050565b80516001600160401b03811681146200068d57600080fd5b919050565b6001600160a01b0381168114620006a857600080fd5b50565b805163ffffffff811681146200068d57600080fd5b6000601f83601f840112620006d457600080fd5b825160206001600160401b0380831115620006f357620006f362000601565b8260051b6200070483820162000642565b93845286810183019383810190898611156200071f57600080fd5b84890192505b8583101562000851578251848111156200073f5760008081fd5b89016080601f19828d038101821315620007595760008081fd5b6200076362000617565b88840151620007728162000692565b815260406200078385820162000675565b8a83015260608086015180151581146200079d5760008081fd5b83830152938501519389851115620007b55760008081fd5b84860195508f603f870112620007cd57600094508485fd5b8a860151945089851115620007e657620007e662000601565b620007f78b858f8801160162000642565b93508484528f828688010111156200080f5760008081fd5b60005b858110156200082f578681018301518582018d01528b0162000812565b5060009484018b01949094525091820152835250918401919084019062000725565b9998505050505050505050565b60008060008385036101408112156200087657600080fd5b60808112156200088557600080fd5b6200088f62000617565b6200089a8662000675565b81526020860151620008ac8162000692565b60208201526040860151620008c18162000692565b60408201526060860151620008d68162000692565b6060820152935060a0607f1982011215620008f057600080fd5b5060405160a081016001600160401b03808211838310171562000917576200091762000601565b81604052608087015191506200092d8262000692565b8183526200093e60a08801620006ab565b60208401526200095160c08801620006ab565b60408401526200096460e08801620006ab565b606084015261010087015191506200097c8262000692565b60808301829052610120870151929450808311156200099a57600080fd5b5050620009aa86828701620006c0565b9150509250925092565b634e487b7160e01b600052603260045260246000fd5b600181811c90821680620009df57607f821691505b60208210810362000a0057634e487b7160e01b600052602260045260246000fd5b50919050565b601f82111562000a56576000816000526020600020601f850160051c8101602086101562000a315750805b601f850160051c820191505b8181101562000a525782815560010162000a3d565b5050505b505050565b81516001600160401b0381111562000a775762000a7762000601565b62000a8f8162000a888454620009ca565b8462000a06565b602080601f83116001811462000ac7576000841562000aae5750858301515b600019600386901b1c1916600185901b17855562000a52565b600085815260208120601f198616915b8281101562000af85788860151825594840194600190910190840162000ad7565b508582101562000b175787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b602080825282546001600160a01b0381168383015260a081901c60ff161515604084015260a81c6001600160401b0316606083015260808083015260018084018054600093929190849062000b7c81620009ca565b8060a089015260c0600183166000811462000ba0576001811462000bbd5762000bef565b60ff19841660c08b015260c083151560051b8b0101945062000bef565b85600052602060002060005b8481101562000be65781548c820185015290880190890162000bc9565b8b0160c0019550505b50929998505050505050505050565b60805160a05160c05160e0516101005161609662000c74600039600081816102400152612aef0152600081816102110152612fe30152600081816101e20152818161077f0152818161098601526124710152600081816101b201526126fe01526000818161185f01526118ab01526160966000f3fe608060405234801561001057600080fd5b50600436106101515760003560e01c806379ba5097116100cd578063c673e58411610081578063e9d68a8e11610066578063e9d68a8e1461052a578063f2fde38b1461054a578063f716f99f1461055d57600080fd5b8063c673e584146104c5578063ccd37ba3146104e557600080fd5b80638da5cb5b116100b25780638da5cb5b14610484578063991a50181461049f578063a80036b4146104b257600080fd5b806379ba50971461046e57806385572ffb1461047657600080fd5b80632d04ab76116101245780633f4b04aa116101095780633f4b04aa146103365780635e36480c146103525780637437ff9f1461037257600080fd5b80632d04ab7614610310578063311cd5131461032357600080fd5b806304666f9c1461015657806305d938b51461016b57806306285c691461017e578063181f5a77146102c7575b600080fd5b6101696101643660046141af565b610570565b005b610169610179366004614839565b610584565b61027060408051608081018252600080825260208201819052918101829052606081019190915260405180608001604052807f000000000000000000000000000000000000000000000000000000000000000067ffffffffffffffff1681526020017f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031681526020017f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031681526020017f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316815250905090565b6040516102be9190815167ffffffffffffffff1681526020808301516001600160a01b0390811691830191909152604080840151821690830152606092830151169181019190915260800190565b60405180910390f35b6103036040518060400160405280601181526020017f4f666652616d7020312e362e302d64657600000000000000000000000000000081525081565b6040516102be91906149b4565b61016961031e366004614a5f565b610729565b610169610331366004614b12565b610da5565b60095460405167ffffffffffffffff90911681526020016102be565b610365610360366004614b66565b610e0e565b6040516102be9190614bc3565b6104116040805160a081018252600080825260208201819052918101829052606081018290526080810191909152506040805160a0810182526004546001600160a01b03808216835263ffffffff600160a01b83048116602085015278010000000000000000000000000000000000000000000000008304811694840194909452600160e01b9091049092166060820152600554909116608082015290565b6040516102be9190600060a0820190506001600160a01b03808451168352602084015163ffffffff808216602086015280604087015116604086015280606087015116606086015250508060808501511660808401525092915050565b610169610e64565b610169610151366004614bd1565b6000546040516001600160a01b0390911681526020016102be565b6101696104ad366004614c20565b610f22565b6101696104c0366004614c94565b610f33565b6104d86104d3366004614d01565b6112a6565b6040516102be9190614d61565b61051c6104f3366004614dd6565b67ffffffffffffffff919091166000908152600860209081526040808320938352929052205490565b6040519081526020016102be565b61053d610538366004614e00565b611404565b6040516102be9190614e1b565b610169610558366004614e69565b611511565b61016961056b366004614eee565b611522565b610578611564565b610581816115c0565b50565b61058c61185c565b8151815181146105c8576040517f83e3f56400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60005b818110156107195760008482815181106105e7576105e761502c565b6020026020010151905060008160200151519050600085848151811061060f5761060f61502c565b6020026020010151905080518214610653576040517f83e3f56400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60005b8281101561070a5760008282815181106106725761067261502c565b6020026020010151905080600014610701578460200151828151811061069a5761069a61502c565b6020026020010151608001518110156107015784516040517fc8e9605100000000000000000000000000000000000000000000000000000000815267ffffffffffffffff909116600482015260248101839052604481018290526064015b60405180910390fd5b50600101610656565b505050508060010190506105cb565b5061072483836118dd565b505050565b60006107378789018961525b565b602081015151909150156107e357602081015160408083015190517fccd5af000000000000000000000000000000000000000000000000000000000081526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169263ccd5af00926107b2926004016154c1565b60006040518083038186803b1580156107ca57600080fd5b505afa1580156107de573d6000803e3d6000fd5b505050505b805151511515806107f957508051602001515115155b156108f95760095460208a01359067ffffffffffffffff808316911610156108b8576009805467ffffffffffffffff191667ffffffffffffffff83161790556004805483516040517f3937306f0000000000000000000000000000000000000000000000000000000081526001600160a01b0390921692633937306f926108819291016155a3565b600060405180830381600087803b15801561089b57600080fd5b505af11580156108af573d6000803e3d6000fd5b505050506108f7565b8160200151516000036108f7576040517f2261116700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505b60005b816020015151811015610cee576000826020015182815181106109215761092161502c565b602090810291909101015180516040517f2cbc26bb00000000000000000000000000000000000000000000000000000000815277ffffffffffffffff00000000000000000000000000000000608083901b166004820152919250906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690632cbc26bb90602401602060405180830381865afa1580156109cd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109f191906155b6565b15610a34576040517ffdbd6a7200000000000000000000000000000000000000000000000000000000815267ffffffffffffffff821660048201526024016106f8565b6000610a3f8261198d565b90506000816001018054610a52906155d3565b80601f0160208091040260200160405190810160405280929190818152602001828054610a7e906155d3565b8015610acb5780601f10610aa057610100808354040283529160200191610acb565b820191906000526020600020905b815481529060010190602001808311610aae57829003601f168201915b50505050509050808051906020012084602001518051906020012014610b25578360200151816040517f213009580000000000000000000000000000000000000000000000000000000081526004016106f892919061560d565b60408401518254600160a81b900467ffffffffffffffff9081169116141580610b695750836060015167ffffffffffffffff16846040015167ffffffffffffffff16115b15610bc8578351604080860151606087015191517fd5e0f0d600000000000000000000000000000000000000000000000000000000815267ffffffffffffffff93841660048201529083166024820152911660448201526064016106f8565b608084015180610c04576040517f504570e300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b845167ffffffffffffffff16600090815260086020908152604080832084845290915290205415610c775784516040517f32cf0cbf00000000000000000000000000000000000000000000000000000000815267ffffffffffffffff9091166004820152602481018290526044016106f8565b6060850151610c87906001615648565b83547fffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffff16600160a81b67ffffffffffffffff9283160217909355935190911660009081526008602090815260408083209583529490529290922042905550506001016108fc565b507f23bc80217a08968cec0790cd045b396fa7eea0a21af469e603329940b883d86d81604051610d1e9190615670565b60405180910390a1610d9a60008a8a8a8a8a8080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020808e0282810182019093528d82529093508d92508c9182918501908490808284376000920191909152508b92506119f4915050565b505050505050505050565b610de5610db4828401846156c8565b6040805160008082526020820190925290610ddf565b6060815260200190600190039081610dca5790505b506118dd565b604080516000808252602082019092529050610e086001858585858660006119f4565b50505050565b6000610e1c600160046156fd565b6002610e29608085615726565b67ffffffffffffffff16610e3d919061574d565b610e478585611d6b565b901c166003811115610e5b57610e5b614b99565b90505b92915050565b6001546001600160a01b03163314610ebe5760405162461bcd60e51b815260206004820152601660248201527f4d7573742062652070726f706f736564206f776e65720000000000000000000060448201526064016106f8565b600080543373ffffffffffffffffffffffffffffffffffffffff19808316821784556001805490911690556040516001600160a01b0390921692909183917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a350565b610f2a611564565b61058181611db2565b333014610f6c576040517f371a732800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040805160008082526020820190925281610fa9565b6040805180820190915260008082526020820152815260200190600190039081610f825790505b5060a08501515190915015610fdd57610fda8460a00151856020015186606001518760000151602001518787611f18565b90505b6040805160a0810182528551518152855160209081015167ffffffffffffffff16818301528087015183516000948401926110199291016149b4565b60408051601f19818403018152918152908252878101516020830152018390526005549091506001600160a01b03168015611126576040517f08d450a10000000000000000000000000000000000000000000000000000000081526001600160a01b038216906308d450a190611093908590600401615806565b600060405180830381600087803b1580156110ad57600080fd5b505af19250505080156110be575060015b611126573d8080156110ec576040519150601f19603f3d011682016040523d82523d6000602084013e6110f1565b606091505b50806040517f09c253250000000000000000000000000000000000000000000000000000000081526004016106f891906149b4565b60408601515115801561113b57506080860151155b80611152575060608601516001600160a01b03163b155b8061119257506060860151611190906001600160a01b03167f85572ffb00000000000000000000000000000000000000000000000000000000612037565b155b1561119f57505050505050565b855160209081015167ffffffffffffffff1660009081526006909152604080822054608089015160608a015192517f3cf9798300000000000000000000000000000000000000000000000000000000815284936001600160a01b0390931692633cf97983926112179289926113889291600401615819565b6000604051808303816000875af1158015611236573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261125e9190810190615855565b50915091508161129c57806040517f0a8d6e8c0000000000000000000000000000000000000000000000000000000081526004016106f891906149b4565b5050505050505050565b6112e96040805160e081019091526000606082018181526080830182905260a0830182905260c08301919091528190815260200160608152602001606081525090565b60ff808316600090815260026020818152604092839020835160e081018552815460608201908152600183015480881660808401526101008104881660a0840152620100009004909616151560c08201529485529182018054845181840281018401909552808552929385830193909283018282801561139257602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611374575b50505050508152602001600382018054806020026020016040519081016040528092919081815260200182805480156113f457602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116113d6575b5050505050815250509050919050565b604080516080808201835260008083526020808401829052838501829052606080850181905267ffffffffffffffff878116845260068352928690208651948501875280546001600160a01b0381168652600160a01b810460ff16151593860193909352600160a81b909204909216948301949094526001840180549394929391840191611491906155d3565b80601f01602080910402602001604051908101604052809291908181526020018280546114bd906155d3565b80156113f45780601f106114df576101008083540402835291602001916113f4565b820191906000526020600020905b8154815290600101906020018083116114ed57505050919092525091949350505050565b611519611564565b61058181612053565b61152a611564565b60005b81518110156115605761155882828151811061154b5761154b61502c565b6020026020010151612109565b60010161152d565b5050565b6000546001600160a01b031633146115be5760405162461bcd60e51b815260206004820152601660248201527f4f6e6c792063616c6c61626c65206279206f776e65720000000000000000000060448201526064016106f8565b565b60005b81518110156115605760008282815181106115e0576115e061502c565b602002602001015190506000816020015190508067ffffffffffffffff16600003611637576040517fc656089500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81516001600160a01b031661165f576040516342bcdf7f60e11b815260040160405180910390fd5b67ffffffffffffffff81166000908152600660205260409020606083015160018201805461168c906155d3565b90506000036116ff5781547fffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffff16600160a81b17825560405167ffffffffffffffff841681527ff4c1390c70e5c0f491ae1ccbc06f9117cbbadf2767b247b3bc203280f24c0fb99060200160405180910390a15b805115806117345750604080516000602082015201604051602081830303815290604052805190602001208180519060200120145b15611752576040516342bcdf7f60e11b815260040160405180910390fd5b8154600160a81b900467ffffffffffffffff1660011461179e576040517f9ff5c2aa00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600182016117ac828261593b565b50604080850151835486516001600160a01b031673ffffffffffffffffffffffffffffffffffffffff19921515600160a01b02929092167fffffffffffffffffffffff000000000000000000000000000000000000000000909116171783555167ffffffffffffffff8416907f49f51971edd25182e97182d6ea372a0488ce2ab639f6a3a7ab4df0d2636fe56b906118459085906159fb565b60405180910390a2505050508060010190506115c3565b467f0000000000000000000000000000000000000000000000000000000000000000146115be576040517f0f01ce850000000000000000000000000000000000000000000000000000000081527f000000000000000000000000000000000000000000000000000000000000000060048201524660248201526044016106f8565b8151600003611917576040517ebf199700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b805160408051600080825260208201909252911591905b84518110156119865761197e85828151811061194c5761194c61502c565b6020026020010151846119785785838151811061196b5761196b61502c565b602002602001015161241d565b8361241d565b60010161192e565b5050505050565b67ffffffffffffffff811660009081526006602052604081208054600160a01b900460ff16610e5e576040517fed053c5900000000000000000000000000000000000000000000000000000000815267ffffffffffffffff841660048201526024016106f8565b60ff87811660009081526002602090815260408083208151608081018352815481526001909101548086169382019390935261010083048516918101919091526201000090910490921615156060830152873590611a538760a4615ac9565b9050826060015115611a9b578451611a6c90602061574d565b8651611a7990602061574d565b611a849060a0615ac9565b611a8e9190615ac9565b611a989082615ac9565b90505b368114611add576040517f8e1192e1000000000000000000000000000000000000000000000000000000008152600481018290523660248201526044016106f8565b5081518114611b255781516040517f93df584c0000000000000000000000000000000000000000000000000000000081526004810191909152602481018290526044016106f8565b611b2d61185c565b60ff808a1660009081526003602090815260408083203384528252808320815180830190925280548086168352939491939092840191610100909104166002811115611b7b57611b7b614b99565b6002811115611b8c57611b8c614b99565b9052509050600281602001516002811115611ba957611ba9614b99565b148015611bfd5750600260008b60ff1660ff168152602001908152602001600020600301816000015160ff1681548110611be557611be561502c565b6000918252602090912001546001600160a01b031633145b611c33576040517fda0f08e800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50816060015115611d15576020820151611c4e906001615adc565b60ff16855114611c8a576040517f71253a2500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8351855114611cc5576040517fa75d88af00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008787604051611cd7929190615af5565b604051908190038120611cee918b90602001615b05565b604051602081830303815290604052805190602001209050611d138a82888888612d9d565b505b6040805182815260208a81013567ffffffffffffffff169082015260ff8b16917f198d6990ef96613a9026203077e422916918b03ff47f0be6bee7b02d8e139ef0910160405180910390a2505050505050505050565b67ffffffffffffffff8216600090815260076020526040812081611d90608085615b19565b67ffffffffffffffff1681526020810191909152604001600020549392505050565b80516001600160a01b0316611dda576040516342bcdf7f60e11b815260040160405180910390fd5b80516004805460208085018051604080880180516060808b0180516001600160a01b039b8c167fffffffffffffffff000000000000000000000000000000000000000000000000909a168a17600160a01b63ffffffff988916021777ffffffffffffffffffffffffffffffffffffffffffffffff167801000000000000000000000000000000000000000000000000948816949094026001600160e01b031693909317600160e01b93871693909302929092179098556080808b0180516005805473ffffffffffffffffffffffffffffffffffffffff1916918d169190911790558451988952955185169688019690965290518316918601919091525116938301939093529151909216908201527fa55bd56595c45f517e5967a3067f3dca684445a3080e7c04a4e0d5a40cda627d9060a00160405180910390a150565b6060865167ffffffffffffffff811115611f3457611f34613fc6565b604051908082528060200260200182016040528015611f7957816020015b6040805180820190915260008082526020820152815260200190600190039081611f525790505b50905060005b875181101561202b57612006888281518110611f9d57611f9d61502c565b6020026020010151888888888887818110611fba57611fba61502c565b9050602002810190611fcc9190615b40565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612f8292505050565b8282815181106120185761201861502c565b6020908102919091010152600101611f7f565b505b9695505050505050565b600061204283613327565b8015610e5b5750610e5b838361338b565b336001600160a01b038216036120ab5760405162461bcd60e51b815260206004820152601760248201527f43616e6e6f74207472616e7366657220746f2073656c6600000000000000000060448201526064016106f8565b6001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0383811691821790925560008054604051929316917fed8889f560326eb138920d842192f0eb3dd22b4f139c87a2c57538e05bae12789190a350565b806040015160ff16600003612134576000604051631b3fab5160e11b81526004016106f89190615b87565b60208082015160ff808216600090815260029093526040832060018101549293909283921690036121a157606084015160018201805491151562010000027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff9092169190911790556121f6565b6060840151600182015460ff62010000909104161515901515146121f6576040517f87f6037c00000000000000000000000000000000000000000000000000000000815260ff841660048201526024016106f8565b60a084015180516101001015612222576001604051631b3fab5160e11b81526004016106f89190615b87565b612288848460030180548060200260200160405190810160405280929190818152602001828054801561227e57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311612260575b5050505050613446565b846060015115612392576122f6848460020180548060200260200160405190810160405280929190818152602001828054801561227e576020028201919060005260206000209081546001600160a01b03168152600190910190602001808311612260575050505050613446565b608085015180516101001015612322576002604051631b3fab5160e11b81526004016106f89190615b87565b6040860151612332906003615ba1565b60ff16815111612358576003604051631b3fab5160e11b81526004016106f89190615b87565b805160018401805461ff00191661010060ff8416021790556123839060028601906020840190613f3f565b50612390858260016134af565b505b61239e848260026134af565b80516123b39060038501906020840190613f3f565b5060408581015160018401805460ff191660ff8316179055865180855560a088015192517fab8b1b57514019638d7b5ce9c638fe71366fe8e2be1c40a7a80f1733d0e9f5479361240c9389939260028a01929190615bbd565b60405180910390a161198684613623565b815181516040517f2cbc26bb000000000000000000000000000000000000000000000000000000008152608083901b77ffffffffffffffff00000000000000000000000000000000166004820152901515907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690632cbc26bb90602401602060405180830381865afa1580156124c0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124e491906155b6565b1561257057801561252d576040517ffdbd6a7200000000000000000000000000000000000000000000000000000000815267ffffffffffffffff831660048201526024016106f8565b60405167ffffffffffffffff831681527faab522ed53d887e56ed53dd37398a01aeef6a58e0fa77c2173beb9512d8949339060200160405180910390a150505050565b600061257b8361198d565b6001018054612589906155d3565b80601f01602080910402602001604051908101604052809291908181526020018280546125b5906155d3565b80156126025780601f106125d757610100808354040283529160200191612602565b820191906000526020600020905b8154815290600101906020018083116125e557829003601f168201915b5050506020880151519293505050600081900361264a576040517ebf199700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8560400151518114612688576040517f57e0e08300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008167ffffffffffffffff8111156126a3576126a3613fc6565b6040519080825280602002602001820160405280156126cc578160200160208202803683370190505b50905060005b82811015612825576000886020015182815181106126f2576126f261502c565b602002602001015190507f000000000000000000000000000000000000000000000000000000000000000067ffffffffffffffff1681600001516040015167ffffffffffffffff161461278557805160409081015190517f38432a2200000000000000000000000000000000000000000000000000000000815267ffffffffffffffff90911660048201526024016106f8565b8667ffffffffffffffff1681600001516020015167ffffffffffffffff16146127f5578051602001516040517f6c95f1eb00000000000000000000000000000000000000000000000000000000815267ffffffffffffffff808a16600483015290911660248201526044016106f8565b6127ff8186613693565b8383815181106128115761281161502c565b6020908102919091010152506001016126d2565b50600061283c86838a606001518b608001516137b5565b905080600003612884576040517f7dd17a7e00000000000000000000000000000000000000000000000000000000815267ffffffffffffffff871660048201526024016106f8565b60005b83811015610d9a5760005a905060008a6020015183815181106128ac576128ac61502c565b6020026020010151905060006128ca8a836000015160600151610e0e565b905060008160038111156128e0576128e0614b99565b14806128fd575060038160038111156128fb576128fb614b99565b145b612955578151606001516040805167ffffffffffffffff808e16825290921660208301527f3b575419319662b2a6f5e2467d84521517a3382b908eb3d557bb3fdb0c50e23c91015b60405180910390a1505050612d95565b8815612a2557600454600090600160a01b900463ffffffff1661297887426156fd565b11905080806129985750600382600381111561299657612996614b99565b145b6129da576040517fa9cfc86200000000000000000000000000000000000000000000000000000000815267ffffffffffffffff8c1660048201526024016106f8565b8b85815181106129ec576129ec61502c565b6020026020010151600014612a1f578b8581518110612a0d57612a0d61502c565b60200260200101518360800181815250505b50612a86565b6000816003811115612a3957612a39614b99565b14612a86578151606001516040805167ffffffffffffffff808e16825290921660208301527f3ef2a99c550a751d4b0b261268f05a803dfb049ab43616a1ffb388f61fe651209101612945565b81516080015167ffffffffffffffff1615612b75576000816003811115612aaf57612aaf614b99565b03612b755781516080015160208301516040517fe0e03cae0000000000000000000000000000000000000000000000000000000081526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169263e0e03cae92612b26928f929190600401615c69565b6020604051808303816000875af1158015612b45573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b6991906155b6565b612b7557505050612d95565b60008c604001518581518110612b8d57612b8d61502c565b6020026020010151905080518360a001515114612bf1578251606001516040517f1cfe6d8b00000000000000000000000000000000000000000000000000000000815267ffffffffffffffff808e16600483015290911660248201526044016106f8565b612c058b84600001516060015160016137f3565b600080612c12858461389b565b91509150612c298d866000015160600151846137f3565b8b15612c99576003826003811115612c4357612c43614b99565b03612c99576000846003811115612c5c57612c5c614b99565b14612c99578451516040517f2b11b8d90000000000000000000000000000000000000000000000000000000081526106f891908390600401615c96565b6002826003811115612cad57612cad614b99565b14612d07576003826003811115612cc657612cc6614b99565b14612d07578451606001516040517f926c5a3e0000000000000000000000000000000000000000000000000000000081526106f8918f918590600401615caf565b84600001516000015185600001516060015167ffffffffffffffff168e67ffffffffffffffff167f05665fe9ad095383d018353f4cbcba77e84db27dd215081bbf7cdf9ae6fbe48b8c8b81518110612d6157612d6161502c565b602002602001015186865a612d76908e6156fd565b604051612d869493929190615cd5565b60405180910390a45050505050505b600101612887565b8251600090815b8181101561129c576000600188868460208110612dc357612dc361502c565b612dd091901a601b615adc565b898581518110612de257612de261502c565b6020026020010151898681518110612dfc57612dfc61502c565b602002602001015160405160008152602001604052604051612e3a949392919093845260ff9290921660208401526040830152606082015260800190565b6020604051602081039080840390855afa158015612e5c573d6000803e3d6000fd5b505060408051601f1981015160ff808e166000908152600360209081528582206001600160a01b03851683528152858220858701909652855480841686529397509095509293928401916101009004166002811115612ebd57612ebd614b99565b6002811115612ece57612ece614b99565b9052509050600181602001516002811115612eeb57612eeb614b99565b14612f22576040517fca31867a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8051600160ff9091161b851615612f65576040517ff67bc7c400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b806000015160ff166001901b851794505050806001019050612da4565b60408051808201909152600080825260208201526000612fa58760200151613965565b6040517fbbe4f6db0000000000000000000000000000000000000000000000000000000081526001600160a01b0380831660048301529192506000917f0000000000000000000000000000000000000000000000000000000000000000169063bbe4f6db90602401602060405180830381865afa15801561302a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061304e9190615d0c565b90506001600160a01b038116158061309657506130946001600160a01b0382167faff2afbf00000000000000000000000000000000000000000000000000000000612037565b155b156130d8576040517fae9b4ce90000000000000000000000000000000000000000000000000000000081526001600160a01b03821660048201526024016106f8565b60045460009081906130fa9089908690600160e01b900463ffffffff16613a0b565b9150915060008060006131c76040518061010001604052808e81526020018c67ffffffffffffffff1681526020018d6001600160a01b031681526020018f606001518152602001896001600160a01b031681526020018f6000015181526020018f6040015181526020018b8152506040516024016131789190615d29565b60408051601f198184030181529190526020810180516001600160e01b03167f390775370000000000000000000000000000000000000000000000000000000017905287866113886084613b39565b9250925092508261320657816040517fe1cd55090000000000000000000000000000000000000000000000000000000081526004016106f891906149b4565b815160201461324e5781516040517f78ef80240000000000000000000000000000000000000000000000000000000081526020600482015260248101919091526044016106f8565b6000828060200190518101906132649190615df6565b9050866001600160a01b03168c6001600160a01b0316146132f95760006132958d8a613290868a6156fd565b613a0b565b509050868110806132af5750816132ac88836156fd565b14155b156132f7576040517fa966e21f0000000000000000000000000000000000000000000000000000000081526004810183905260248101889052604481018290526064016106f8565b505b604080518082019091526001600160a01b039098168852602088015250949550505050505095945050505050565b6000613353827f01ffc9a70000000000000000000000000000000000000000000000000000000061338b565b8015610e5e5750613384827fffffffff0000000000000000000000000000000000000000000000000000000061338b565b1592915050565b6040517fffffffff0000000000000000000000000000000000000000000000000000000082166024820152600090819060440160408051601f19818403018152919052602080820180516001600160e01b03167f01ffc9a700000000000000000000000000000000000000000000000000000000178152825192935060009283928392909183918a617530fa92503d9150600051905082801561342f575060208210155b801561343b5750600081115b979650505050505050565b60005b81518110156107245760ff83166000908152600360205260408120835190919084908490811061347b5761347b61502c565b6020908102919091018101516001600160a01b03168252810191909152604001600020805461ffff19169055600101613449565b60005b8251811015610e085760008382815181106134cf576134cf61502c565b60200260200101519050600060028111156134ec576134ec614b99565b60ff80871660009081526003602090815260408083206001600160a01b0387168452909152902054610100900416600281111561352b5761352b614b99565b1461354c576004604051631b3fab5160e11b81526004016106f89190615b87565b6001600160a01b03811661358c576040517fd6c62c9b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60405180604001604052808360ff1681526020018460028111156135b2576135b2614b99565b905260ff80871660009081526003602090815260408083206001600160a01b0387168452825290912083518154931660ff198416811782559184015190929091839161ffff19161761010083600281111561360f5761360f614b99565b0217905550905050508060010190506134b2565b60ff81166105815760ff8082166000908152600260205260409020600101546201000090041661367f576040517f7a3b4c9400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6009805467ffffffffffffffff1916905550565b8151602080820151604092830151925160009384936136d9937f2425b0b9f9054c76ff151b0a175b18f37a4a4e82013a72e9f15c9caa095ed21f93909291889101615e0f565b60408051601f1981840301815290829052805160209182012086518051888401516060808b0151908401516080808d015195015195976137229794969395929491939101615e42565b604051602081830303815290604052805190602001208560400151805190602001208660a001516040516020016137599190615f47565b60408051601f198184030181528282528051602091820120908301969096528101939093526060830191909152608082015260a081019190915260c0015b60405160208183030381529060405280519060200120905092915050565b6000806137c3858585613c5f565b67ffffffffffffffff8716600090815260086020908152604080832093835292905220549150505b949350505050565b60006002613802608085615726565b67ffffffffffffffff16613816919061574d565b905060006138248585611d6b565b905081613833600160046156fd565b901b19168183600381111561384a5761384a614b99565b67ffffffffffffffff871660009081526007602052604081209190921b92909217918291613879608088615b19565b67ffffffffffffffff1681526020810191909152604001600020555050505050565b6040517fa80036b4000000000000000000000000000000000000000000000000000000008152600090606090309063a80036b4906138df9087908790600401615fa7565b600060405180830381600087803b1580156138f957600080fd5b505af192505050801561390a575060015b613949573d808015613938576040519150601f19603f3d011682016040523d82523d6000602084013e61393d565b606091505b5060039250905061395e565b50506040805160208101909152600081526002905b9250929050565b600081516020146139a457816040517f8d666f600000000000000000000000000000000000000000000000000000000081526004016106f891906149b4565b6000828060200190518101906139ba9190615df6565b90506001600160a01b038111806139d2575061040081105b15610e5e57826040517f8d666f600000000000000000000000000000000000000000000000000000000081526004016106f891906149b4565b6000806000806000613a8588604051602401613a3691906001600160a01b0391909116815260200190565b60408051601f198184030181529190526020810180516001600160e01b03167f70a082310000000000000000000000000000000000000000000000000000000017905288886113886084613b39565b92509250925082613ac457816040517fe1cd55090000000000000000000000000000000000000000000000000000000081526004016106f891906149b4565b6020825114613b0c5781516040517f78ef80240000000000000000000000000000000000000000000000000000000081526020600482015260248101919091526044016106f8565b81806020019051810190613b209190615df6565b613b2a82886156fd565b94509450505050935093915050565b6000606060008361ffff1667ffffffffffffffff811115613b5c57613b5c613fc6565b6040519080825280601f01601f191660200182016040528015613b86576020820181803683370190505b509150863b613bb9577f0c3b563c0000000000000000000000000000000000000000000000000000000060005260046000fd5b5a85811015613bec577fafa32a2c0000000000000000000000000000000000000000000000000000000060005260046000fd5b8590036040810481038710613c25577f37c3be290000000000000000000000000000000000000000000000000000000060005260046000fd5b505a6000808a5160208c0160008c8cf193505a900390503d84811115613c485750835b808352806000602085013e50955095509592505050565b8251825160009190818303613ca0576040517f11a6b26400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6101018211801590613cb457506101018111155b613cd1576040516309bde33960e01b815260040160405180910390fd5b60001982820101610100811115613cfb576040516309bde33960e01b815260040160405180910390fd5b80600003613d285786600081518110613d1657613d1661502c565b60200260200101519350505050613ef7565b60008167ffffffffffffffff811115613d4357613d43613fc6565b604051908082528060200260200182016040528015613d6c578160200160208202803683370190505b50905060008080805b85811015613e965760006001821b8b811603613dd05788851015613db9578c5160018601958e918110613daa57613daa61502c565b60200260200101519050613df2565b8551600185019487918110613daa57613daa61502c565b8b5160018401938d918110613de757613de761502c565b602002602001015190505b600089861015613e22578d5160018701968f918110613e1357613e1361502c565b60200260200101519050613e44565b8651600186019588918110613e3957613e3961502c565b602002602001015190505b82851115613e65576040516309bde33960e01b815260040160405180910390fd5b613e6f8282613efe565b878481518110613e8157613e8161502c565b60209081029190910101525050600101613d75565b506001850382148015613ea857508683145b8015613eb357508581145b613ed0576040516309bde33960e01b815260040160405180910390fd5b836001860381518110613ee557613ee561502c565b60200260200101519750505050505050505b9392505050565b6000818310613f1657613f118284613f1c565b610e5b565b610e5b83835b604080516001602082015290810183905260608101829052600090608001613797565b828054828255906000526020600020908101928215613fa1579160200282015b82811115613fa1578251825473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03909116178255602090920191600190910190613f5f565b50613fad929150613fb1565b5090565b5b80821115613fad5760008155600101613fb2565b634e487b7160e01b600052604160045260246000fd5b6040516080810167ffffffffffffffff81118282101715613fff57613fff613fc6565b60405290565b60405160a0810167ffffffffffffffff81118282101715613fff57613fff613fc6565b60405160c0810167ffffffffffffffff81118282101715613fff57613fff613fc6565b6040805190810167ffffffffffffffff81118282101715613fff57613fff613fc6565b6040516060810167ffffffffffffffff81118282101715613fff57613fff613fc6565b604051601f8201601f1916810167ffffffffffffffff811182821017156140ba576140ba613fc6565b604052919050565b600067ffffffffffffffff8211156140dc576140dc613fc6565b5060051b60200190565b6001600160a01b038116811461058157600080fd5b803567ffffffffffffffff8116811461411357600080fd5b919050565b801515811461058157600080fd5b803561411381614118565b600067ffffffffffffffff82111561414b5761414b613fc6565b50601f01601f191660200190565b600082601f83011261416a57600080fd5b813561417d61417882614131565b614091565b81815284602083860101111561419257600080fd5b816020850160208301376000918101602001919091529392505050565b600060208083850312156141c257600080fd5b823567ffffffffffffffff808211156141da57600080fd5b818501915085601f8301126141ee57600080fd5b81356141fc614178826140c2565b81815260059190911b8301840190848101908883111561421b57600080fd5b8585015b838110156142c1578035858111156142375760008081fd5b86016080818c03601f190181131561424f5760008081fd5b614257613fdc565b89830135614264816140e6565b815260406142738482016140fb565b8b83015260608085013561428681614118565b8383015292840135928984111561429f57600091508182fd5b6142ad8f8d86880101614159565b90830152508552505091860191860161421f565b5098975050505050505050565b600060a082840312156142e057600080fd5b6142e8614005565b9050813581526142fa602083016140fb565b602082015261430b604083016140fb565b604082015261431c606083016140fb565b606082015261432d608083016140fb565b608082015292915050565b8035614113816140e6565b600082601f83011261435457600080fd5b81356020614364614178836140c2565b82815260059290921b8401810191818101908684111561438357600080fd5b8286015b8481101561202b57803567ffffffffffffffff808211156143a85760008081fd5b9088019060a0828b03601f19018113156143c25760008081fd5b6143ca614005565b87840135838111156143dc5760008081fd5b6143ea8d8a83880101614159565b825250604080850135848111156144015760008081fd5b61440f8e8b83890101614159565b8a84015250606080860135858111156144285760008081fd5b6144368f8c838a0101614159565b8385015250608091508186013581840152508285013592508383111561445c5760008081fd5b61446a8d8a85880101614159565b908201528652505050918301918301614387565b6000610140828403121561449157600080fd5b614499614028565b90506144a583836142ce565b815260a082013567ffffffffffffffff808211156144c257600080fd5b6144ce85838601614159565b602084015260c08401359150808211156144e757600080fd5b6144f385838601614159565b604084015261450460e08501614338565b6060840152610100840135608084015261012084013591508082111561452957600080fd5b5061453684828501614343565b60a08301525092915050565b600082601f83011261455357600080fd5b81356020614563614178836140c2565b82815260059290921b8401810191818101908684111561458257600080fd5b8286015b8481101561202b57803567ffffffffffffffff8111156145a65760008081fd5b6145b48986838b010161447e565b845250918301918301614586565b600082601f8301126145d357600080fd5b813560206145e3614178836140c2565b82815260059290921b8401810191818101908684111561460257600080fd5b8286015b8481101561202b57803567ffffffffffffffff8082111561462657600080fd5b818901915089603f83011261463a57600080fd5b8582013561464a614178826140c2565b81815260059190911b830160400190878101908c83111561466a57600080fd5b604085015b838110156146a35780358581111561468657600080fd5b6146958f6040838a0101614159565b84525091890191890161466f565b50875250505092840192508301614606565b600082601f8301126146c657600080fd5b813560206146d6614178836140c2565b8083825260208201915060208460051b8701019350868411156146f857600080fd5b602086015b8481101561202b57803583529183019183016146fd565b600082601f83011261472557600080fd5b81356020614735614178836140c2565b82815260059290921b8401810191818101908684111561475457600080fd5b8286015b8481101561202b57803567ffffffffffffffff808211156147795760008081fd5b9088019060a0828b03601f19018113156147935760008081fd5b61479b614005565b6147a68885016140fb565b8152604080850135848111156147bc5760008081fd5b6147ca8e8b83890101614542565b8a84015250606080860135858111156147e35760008081fd5b6147f18f8c838a01016145c2565b838501525060809150818601358581111561480c5760008081fd5b61481a8f8c838a01016146b5565b9184019190915250919093013590830152508352918301918301614758565b600080604080848603121561484d57600080fd5b833567ffffffffffffffff8082111561486557600080fd5b61487187838801614714565b945060209150818601358181111561488857600080fd5b8601601f8101881361489957600080fd5b80356148a7614178826140c2565b81815260059190911b8201840190848101908a8311156148c657600080fd5b8584015b83811015614952578035868111156148e25760008081fd5b8501603f81018d136148f45760008081fd5b87810135614904614178826140c2565b81815260059190911b82018a0190898101908f8311156149245760008081fd5b928b01925b828410156149425783358252928a0192908a0190614929565b86525050509186019186016148ca565b50809750505050505050509250929050565b60005b8381101561497f578181015183820152602001614967565b50506000910152565b600081518084526149a0816020860160208601614964565b601f01601f19169290920160200192915050565b602081526000610e5b6020830184614988565b8060608101831015610e5e57600080fd5b60008083601f8401126149ea57600080fd5b50813567ffffffffffffffff811115614a0257600080fd5b60208301915083602082850101111561395e57600080fd5b60008083601f840112614a2c57600080fd5b50813567ffffffffffffffff811115614a4457600080fd5b6020830191508360208260051b850101111561395e57600080fd5b60008060008060008060008060e0898b031215614a7b57600080fd5b614a858a8a6149c7565b9750606089013567ffffffffffffffff80821115614aa257600080fd5b614aae8c838d016149d8565b909950975060808b0135915080821115614ac757600080fd5b614ad38c838d01614a1a565b909750955060a08b0135915080821115614aec57600080fd5b50614af98b828c01614a1a565b999c989b50969995989497949560c00135949350505050565b600080600060808486031215614b2757600080fd5b614b3185856149c7565b9250606084013567ffffffffffffffff811115614b4d57600080fd5b614b59868287016149d8565b9497909650939450505050565b60008060408385031215614b7957600080fd5b614b82836140fb565b9150614b90602084016140fb565b90509250929050565b634e487b7160e01b600052602160045260246000fd5b60048110614bbf57614bbf614b99565b9052565b60208101610e5e8284614baf565b600060208284031215614be357600080fd5b813567ffffffffffffffff811115614bfa57600080fd5b820160a08185031215613ef757600080fd5b803563ffffffff8116811461411357600080fd5b600060a08284031215614c3257600080fd5b614c3a614005565b8235614c45816140e6565b8152614c5360208401614c0c565b6020820152614c6460408401614c0c565b6040820152614c7560608401614c0c565b60608201526080830135614c88816140e6565b60808201529392505050565b600080600060408486031215614ca957600080fd5b833567ffffffffffffffff80821115614cc157600080fd5b614ccd8783880161447e565b94506020860135915080821115614ce357600080fd5b50614b5986828701614a1a565b803560ff8116811461411357600080fd5b600060208284031215614d1357600080fd5b610e5b82614cf0565b60008151808452602080850194506020840160005b83811015614d565781516001600160a01b031687529582019590820190600101614d31565b509495945050505050565b60208152600082518051602084015260ff602082015116604084015260ff604082015116606084015260608101511515608084015250602083015160c060a0840152614db060e0840182614d1c565b90506040840151601f198483030160c0850152614dcd8282614d1c565b95945050505050565b60008060408385031215614de957600080fd5b614df2836140fb565b946020939093013593505050565b600060208284031215614e1257600080fd5b610e5b826140fb565b602081526001600160a01b03825116602082015260208201511515604082015267ffffffffffffffff6040830151166060820152600060608301516080808401526137eb60a0840182614988565b600060208284031215614e7b57600080fd5b8135613ef7816140e6565b600082601f830112614e9757600080fd5b81356020614ea7614178836140c2565b8083825260208201915060208460051b870101935086841115614ec957600080fd5b602086015b8481101561202b578035614ee1816140e6565b8352918301918301614ece565b60006020808385031215614f0157600080fd5b823567ffffffffffffffff80821115614f1957600080fd5b818501915085601f830112614f2d57600080fd5b8135614f3b614178826140c2565b81815260059190911b83018401908481019088831115614f5a57600080fd5b8585015b838110156142c157803585811115614f7557600080fd5b860160c0818c03601f19011215614f8c5760008081fd5b614f94614028565b8882013581526040614fa7818401614cf0565b8a8301526060614fb8818501614cf0565b8284015260809150614fcb828501614126565b9083015260a08381013589811115614fe35760008081fd5b614ff18f8d83880101614e86565b838501525060c084013591508882111561500b5760008081fd5b6150198e8c84870101614e86565b9083015250845250918601918601614f5e565b634e487b7160e01b600052603260045260246000fd5b80356001600160e01b038116811461411357600080fd5b600082601f83011261506a57600080fd5b8135602061507a614178836140c2565b82815260069290921b8401810191818101908684111561509957600080fd5b8286015b8481101561202b57604081890312156150b65760008081fd5b6150be61404b565b6150c7826140fb565b81526150d4858301615042565b8186015283529183019160400161509d565b600082601f8301126150f757600080fd5b81356020615107614178836140c2565b82815260059290921b8401810191818101908684111561512657600080fd5b8286015b8481101561202b57803567ffffffffffffffff8082111561514b5760008081fd5b9088019060a0828b03601f19018113156151655760008081fd5b61516d614005565b6151788885016140fb565b81526040808501358481111561518e5760008081fd5b61519c8e8b83890101614159565b8a84015250606093506151b08486016140fb565b9082015260806151c18582016140fb565b9382019390935292013590820152835291830191830161512a565b600082601f8301126151ed57600080fd5b813560206151fd614178836140c2565b82815260069290921b8401810191818101908684111561521c57600080fd5b8286015b8481101561202b57604081890312156152395760008081fd5b61524161404b565b813581528482013585820152835291830191604001615220565b6000602080838503121561526e57600080fd5b823567ffffffffffffffff8082111561528657600080fd5b908401906060828703121561529a57600080fd5b6152a261406e565b8235828111156152b157600080fd5b830160408189038113156152c457600080fd5b6152cc61404b565b8235858111156152db57600080fd5b8301601f81018b136152ec57600080fd5b80356152fa614178826140c2565b81815260069190911b8201890190898101908d83111561531957600080fd5b928a01925b828410156153695785848f0312156153365760008081fd5b61533e61404b565b8435615349816140e6565b8152615356858d01615042565b818d0152825292850192908a019061531e565b84525050508287013591508482111561538157600080fd5b61538d8a838501615059565b818801528352505082840135828111156153a657600080fd5b6153b2888286016150e6565b858301525060408301359350818411156153cb57600080fd5b6153d7878585016151dc565b60408201529695505050505050565b600082825180855260208086019550808260051b84010181860160005b8481101561547857601f19868403018952815160a067ffffffffffffffff80835116865286830151828888015261543c83880182614988565b60408581015184169089015260608086015190931692880192909252506080928301519290950191909152509783019790830190600101615403565b5090979650505050505050565b60008151808452602080850194506020840160005b83811015614d5657815180518852830151838801526040909601959082019060010161549a565b6040815260006154d460408301856153e6565b8281036020840152614dcd8185615485565b805160408084528151848201819052600092602091908201906060870190855b8181101561553d57835180516001600160a01b031684528501516001600160e01b0316858401529284019291850191600101615506565b50508583015187820388850152805180835290840192506000918401905b80831015615597578351805167ffffffffffffffff1683528501516001600160e01b03168583015292840192600192909201919085019061555b565b50979650505050505050565b602081526000610e5b60208301846154e6565b6000602082840312156155c857600080fd5b8151613ef781614118565b600181811c908216806155e757607f821691505b60208210810361560757634e487b7160e01b600052602260045260246000fd5b50919050565b6040815260006156206040830185614988565b8281036020840152614dcd8185614988565b634e487b7160e01b600052601160045260246000fd5b67ffffffffffffffff81811683821601908082111561566957615669615632565b5092915050565b60208152600082516060602084015261568c60808401826154e6565b90506020840151601f19808584030160408601526156aa83836153e6565b9250604086015191508085840301606086015250614dcd8282615485565b6000602082840312156156da57600080fd5b813567ffffffffffffffff8111156156f157600080fd5b6137eb84828501614714565b81810381811115610e5e57610e5e615632565b634e487b7160e01b600052601260045260246000fd5b600067ffffffffffffffff8084168061574157615741615710565b92169190910692915050565b8082028115828204841417610e5e57610e5e615632565b805182526000602067ffffffffffffffff81840151168185015260408084015160a0604087015261579860a0870182614988565b9050606085015186820360608801526157b18282614988565b608087810151898303918a01919091528051808352908601935060009250908501905b8083101561559757835180516001600160a01b03168352860151868301529285019260019290920191908401906157d4565b602081526000610e5b6020830184615764565b60808152600061582c6080830187615764565b61ffff9590951660208301525060408101929092526001600160a01b0316606090910152919050565b60008060006060848603121561586a57600080fd5b835161587581614118565b602085015190935067ffffffffffffffff81111561589257600080fd5b8401601f810186136158a357600080fd5b80516158b161417882614131565b8181528760208385010111156158c657600080fd5b6158d7826020830160208601614964565b809450505050604084015190509250925092565b601f821115610724576000816000526020600020601f850160051c810160208610156159145750805b601f850160051c820191505b8181101561593357828155600101615920565b505050505050565b815167ffffffffffffffff81111561595557615955613fc6565b6159698161596384546155d3565b846158eb565b602080601f83116001811461599e57600084156159865750858301515b600019600386901b1c1916600185901b178555615933565b600085815260208120601f198616915b828110156159cd578886015182559484019460019091019084016159ae565b50858210156159eb5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6000602080835283546001600160a01b038116602085015260ff8160a01c161515604085015267ffffffffffffffff8160a81c16606085015250600180850160808086015260008154615a4d816155d3565b8060a089015260c06001831660008114615a6e5760018114615a8a57615aba565b60ff19841660c08b015260c083151560051b8b01019450615aba565b85600052602060002060005b84811015615ab15781548c8201850152908801908901615a96565b8b0160c0019550505b50929998505050505050505050565b80820180821115610e5e57610e5e615632565b60ff8181168382160190811115610e5e57610e5e615632565b8183823760009101908152919050565b828152606082602083013760800192915050565b600067ffffffffffffffff80841680615b3457615b34615710565b92169190910492915050565b6000808335601e19843603018112615b5757600080fd5b83018035915067ffffffffffffffff821115615b7257600080fd5b60200191503681900382131561395e57600080fd5b6020810160058310615b9b57615b9b614b99565b91905290565b60ff818116838216029081169081811461566957615669615632565b600060a0820160ff881683526020878185015260a0604085015281875480845260c0860191508860005282600020935060005b81811015615c155784546001600160a01b031683526001948501949284019201615bf0565b50508481036060860152865180825290820192508187019060005b81811015615c555782516001600160a01b031685529383019391830191600101615c30565b50505060ff8516608085015250905061202d565b600067ffffffffffffffff808616835280851660208401525060606040830152614dcd6060830184614988565b8281526040602082015260006137eb6040830184614988565b67ffffffffffffffff848116825283166020820152606081016137eb6040830184614baf565b848152615ce56020820185614baf565b608060408201526000615cfb6080830185614988565b905082606083015295945050505050565b600060208284031215615d1e57600080fd5b8151613ef7816140e6565b6020815260008251610100806020850152615d48610120850183614988565b91506020850151615d65604086018267ffffffffffffffff169052565b5060408501516001600160a01b038116606086015250606085015160808501526080850151615d9f60a08601826001600160a01b03169052565b5060a0850151601f19808685030160c0870152615dbc8483614988565b935060c08701519150808685030160e0870152615dd98483614988565b935060e087015191508086850301838701525061202d8382614988565b600060208284031215615e0857600080fd5b5051919050565b848152600067ffffffffffffffff80861660208401528085166040840152506080606083015261202d6080830184614988565b86815260c060208201526000615e5b60c0830188614988565b6001600160a01b039690961660408301525067ffffffffffffffff9384166060820152608081019290925290911660a09091015292915050565b600082825180855260208086019550808260051b84010181860160005b8481101561547857601f19868403018952815160a08151818652615ed882870182614988565b9150508582015185820387870152615ef08282614988565b91505060408083015186830382880152615f0a8382614988565b92505050606080830151818701525060808083015192508582038187015250615f338183614988565b9a86019a9450505090830190600101615eb2565b602081526000610e5b6020830184615e95565b60008282518085526020808601955060208260051b8401016020860160005b8481101561547857601f19868403018952615f95838351614988565b98840198925090830190600101615f79565b604081526000835180516040840152602081015167ffffffffffffffff80821660608601528060408401511660808601528060608401511660a08601528060808401511660c086015250505060208401516101408060e085015261600f610180850183614988565b91506040860151603f19808685030161010087015261602e8483614988565b93506060880151915061604d6101208701836001600160a01b03169052565b60808801518387015260a08801519250808685030161016087015250506160748282615e95565b9150508281036020840152614dcd8185615f5a56fea164736f6c6343000818000a", } var OffRampABI = OffRampMetaData.ABI diff --git a/core/gethwrappers/ccip/generation/generated-wrapper-dependency-versions-do-not-edit.txt b/core/gethwrappers/ccip/generation/generated-wrapper-dependency-versions-do-not-edit.txt index f8c68c9d41..a986a10336 100644 --- a/core/gethwrappers/ccip/generation/generated-wrapper-dependency-versions-do-not-edit.txt +++ b/core/gethwrappers/ccip/generation/generated-wrapper-dependency-versions-do-not-edit.txt @@ -23,7 +23,7 @@ multi_aggregate_rate_limiter: ../../../contracts/solc/v0.8.24/MultiAggregateRate multi_ocr3_helper: ../../../contracts/solc/v0.8.24/MultiOCR3Helper/MultiOCR3Helper.abi ../../../contracts/solc/v0.8.24/MultiOCR3Helper/MultiOCR3Helper.bin 6b56e0114a4d50797d30a34aecc2641ef340451d0c3fcb9d729bba4df2435122 nonce_manager: ../../../contracts/solc/v0.8.24/NonceManager/NonceManager.abi ../../../contracts/solc/v0.8.24/NonceManager/NonceManager.bin 6f64e1083b356c06ee66b9138e398b9c97a4cd3e8c9ec38cf3010cebc79af536 ocr3_config_encoder: ../../../contracts/solc/v0.8.24/IOCR3ConfigEncoder/IOCR3ConfigEncoder.abi ../../../contracts/solc/v0.8.24/IOCR3ConfigEncoder/IOCR3ConfigEncoder.bin 9254b35a86f00fde7b7193a033ca58f6521a66e87b9cf9da6ce5660082e79f5d -offramp: ../../../contracts/solc/v0.8.24/OffRamp/OffRamp.abi ../../../contracts/solc/v0.8.24/OffRamp/OffRamp.bin 114ffc506a8b5dbe7b1b7b3bcd9e0bd8fee321d48e5ba74fa503168b7777b502 +offramp: ../../../contracts/solc/v0.8.24/OffRamp/OffRamp.abi ../../../contracts/solc/v0.8.24/OffRamp/OffRamp.bin a8682c5301801ceca819e6e11d7f6094109d11c92df8300a859b2775ece5eb19 onramp: ../../../contracts/solc/v0.8.24/OnRamp/OnRamp.abi ../../../contracts/solc/v0.8.24/OnRamp/OnRamp.bin c37096aaa0369ad988e94c300ba62917e17fcc71a3c1aa3e9b8420f21c0591d2 ping_pong_demo: ../../../contracts/solc/v0.8.24/PingPongDemo/PingPongDemo.abi ../../../contracts/solc/v0.8.24/PingPongDemo/PingPongDemo.bin c1c2f8a65c7ffd971899cae7fe62f2da57d09e936151e2b92163c4bebe699d6b price_registry: ../../../contracts/solc/v0.8.24/PriceRegistry/PriceRegistry.abi ../../../contracts/solc/v0.8.24/PriceRegistry/PriceRegistry.bin e7781d600c1bb7aa4620106af7f6e146a109b97f4cb6a7d06c9e15773340ecb2 From 5fde62edb656c77f603a02c72e4f6fae8bfb8724 Mon Sep 17 00:00:00 2001 From: Ryan <80392855+RayXpub@users.noreply.github.com> Date: Wed, 11 Sep 2024 12:27:17 +0400 Subject: [PATCH 05/19] chore: update gas snapshot and geth wrappers --- contracts/gas-snapshots/ccip.gas-snapshot | 680 +++++++++--------- ...rapper-dependency-versions-do-not-edit.txt | 2 +- 2 files changed, 341 insertions(+), 341 deletions(-) diff --git a/contracts/gas-snapshots/ccip.gas-snapshot b/contracts/gas-snapshots/ccip.gas-snapshot index 7a3587415c..c003ff1ffa 100644 --- a/contracts/gas-snapshots/ccip.gas-snapshot +++ b/contracts/gas-snapshots/ccip.gas-snapshot @@ -1,10 +1,10 @@ -ARMProxyStandaloneTest:test_ARMCallEmptyContractRevert() (gas: 19675) -ARMProxyStandaloneTest:test_Constructor() (gas: 315049) -ARMProxyStandaloneTest:test_SetARM() (gas: 16581) -ARMProxyStandaloneTest:test_SetARMzero() (gas: 11267) -ARMProxyTest:test_ARMCallRevertReasonForwarded() (gas: 47868) -ARMProxyTest:test_ARMIsBlessed_Success() (gas: 36334) -ARMProxyTest:test_ARMIsCursed_Success() (gas: 49833) +ARMProxyStandaloneTest:test_ARMCallEmptyContractRevert() (gas: 20673) +ARMProxyStandaloneTest:test_Constructor() (gas: 543485) +ARMProxyStandaloneTest:test_SetARM() (gas: 18216) +ARMProxyStandaloneTest:test_SetARMzero() (gas: 12144) +ARMProxyTest:test_ARMCallRevertReasonForwarded() (gas: 49764) +ARMProxyTest:test_ARMIsBlessed_Success() (gas: 39781) +ARMProxyTest:test_ARMIsCursed_Success() (gas: 51846) AggregateTokenLimiter_constructor:test_Constructor_Success() (gas: 26992) AggregateTokenLimiter_getTokenBucket:test_GetTokenBucket_Success() (gas: 19835) AggregateTokenLimiter_getTokenBucket:test_Refill_Success() (gas: 41499) @@ -19,21 +19,21 @@ AggregateTokenLimiter_setAdmin:test_Owner_Success() (gas: 18998) AggregateTokenLimiter_setRateLimiterConfig:test_OnlyOnlyCallableByAdminOrOwner_Revert() (gas: 17510) AggregateTokenLimiter_setRateLimiterConfig:test_Owner_Success() (gas: 30230) AggregateTokenLimiter_setRateLimiterConfig:test_TokenLimitAdmin_Success() (gas: 32244) -BurnFromMintTokenPool_lockOrBurn:test_ChainNotAllowed_Revert() (gas: 28779) -BurnFromMintTokenPool_lockOrBurn:test_PoolBurnRevertNotHealthy_Revert() (gas: 55124) -BurnFromMintTokenPool_lockOrBurn:test_PoolBurn_Success() (gas: 243680) -BurnFromMintTokenPool_lockOrBurn:test_Setup_Success() (gas: 23947) -BurnMintTokenPool_lockOrBurn:test_ChainNotAllowed_Revert() (gas: 27546) -BurnMintTokenPool_lockOrBurn:test_PoolBurnRevertNotHealthy_Revert() (gas: 55130) -BurnMintTokenPool_lockOrBurn:test_PoolBurn_Success() (gas: 241573) -BurnMintTokenPool_lockOrBurn:test_Setup_Success() (gas: 17677) -BurnMintTokenPool_releaseOrMint:test_ChainNotAllowed_Revert() (gas: 28775) -BurnMintTokenPool_releaseOrMint:test_PoolMintNotHealthy_Revert() (gas: 56211) -BurnMintTokenPool_releaseOrMint:test_PoolMint_Success() (gas: 112343) -BurnWithFromMintTokenPool_lockOrBurn:test_ChainNotAllowed_Revert() (gas: 28779) -BurnWithFromMintTokenPool_lockOrBurn:test_PoolBurnRevertNotHealthy_Revert() (gas: 55124) -BurnWithFromMintTokenPool_lockOrBurn:test_PoolBurn_Success() (gas: 243707) -BurnWithFromMintTokenPool_lockOrBurn:test_Setup_Success() (gas: 23951) +BurnFromMintTokenPool_lockOrBurn:test_ChainNotAllowed_Revert() (gas: 34256) +BurnFromMintTokenPool_lockOrBurn:test_PoolBurnRevertNotHealthy_Revert() (gas: 60604) +BurnFromMintTokenPool_lockOrBurn:test_PoolBurn_Success() (gas: 293700) +BurnFromMintTokenPool_lockOrBurn:test_Setup_Success() (gas: 28203) +BurnMintTokenPool_lockOrBurn:test_ChainNotAllowed_Revert() (gas: 31296) +BurnMintTokenPool_lockOrBurn:test_PoolBurnRevertNotHealthy_Revert() (gas: 60604) +BurnMintTokenPool_lockOrBurn:test_PoolBurn_Success() (gas: 291204) +BurnMintTokenPool_lockOrBurn:test_Setup_Success() (gas: 20610) +BurnMintTokenPool_releaseOrMint:test_ChainNotAllowed_Revert() (gas: 34256) +BurnMintTokenPool_releaseOrMint:test_PoolMintNotHealthy_Revert() (gas: 63377) +BurnMintTokenPool_releaseOrMint:test_PoolMint_Success() (gas: 122166) +BurnWithFromMintTokenPool_lockOrBurn:test_ChainNotAllowed_Revert() (gas: 34256) +BurnWithFromMintTokenPool_lockOrBurn:test_PoolBurnRevertNotHealthy_Revert() (gas: 60604) +BurnWithFromMintTokenPool_lockOrBurn:test_PoolBurn_Success() (gas: 293726) +BurnWithFromMintTokenPool_lockOrBurn:test_Setup_Success() (gas: 28207) CCIPClientExample_sanity:test_ImmutableExamples_Success() (gas: 2096747) CCIPConfigSetup:test_getCapabilityConfiguration_Success() (gas: 9539) CCIPConfig_ConfigStateMachine:test__computeConfigDigest_Success() (gas: 66000) @@ -301,27 +301,27 @@ EVM2EVMOnRamp_withdrawNonLinkFees:test_NonOwnerOrAdmin_Revert() (gas: 15275) EVM2EVMOnRamp_withdrawNonLinkFees:test_SettlingBalance_Success() (gas: 272083) EVM2EVMOnRamp_withdrawNonLinkFees:test_WithdrawNonLinkFees_Success() (gas: 53458) EVM2EVMOnRamp_withdrawNonLinkFees:test_WithdrawToZeroAddress_Revert() (gas: 12830) -EtherSenderReceiverTest_ccipReceive:test_ccipReceive_fallbackToWethTransfer() (gas: 96892) -EtherSenderReceiverTest_ccipReceive:test_ccipReceive_happyPath() (gas: 49770) -EtherSenderReceiverTest_ccipReceive:test_ccipReceive_wrongToken() (gas: 17423) -EtherSenderReceiverTest_ccipReceive:test_ccipReceive_wrongTokenAmount() (gas: 15716) -EtherSenderReceiverTest_ccipSend:test_ccipSend_reverts_insufficientFee_feeToken() (gas: 99831) -EtherSenderReceiverTest_ccipSend:test_ccipSend_reverts_insufficientFee_native() (gas: 76099) -EtherSenderReceiverTest_ccipSend:test_ccipSend_reverts_insufficientFee_weth() (gas: 99853) -EtherSenderReceiverTest_ccipSend:test_ccipSend_success_feeToken() (gas: 144833) -EtherSenderReceiverTest_ccipSend:test_ccipSend_success_native() (gas: 80262) -EtherSenderReceiverTest_ccipSend:test_ccipSend_success_nativeExcess() (gas: 80449) -EtherSenderReceiverTest_ccipSend:test_ccipSend_success_weth() (gas: 95902) -EtherSenderReceiverTest_constructor:test_constructor() (gas: 17535) -EtherSenderReceiverTest_getFee:test_getFee() (gas: 27316) -EtherSenderReceiverTest_validateFeeToken:test_validateFeeToken_reverts_feeToken_tokenAmountNotEqualToMsgValue() (gas: 20363) -EtherSenderReceiverTest_validateFeeToken:test_validateFeeToken_valid_feeToken() (gas: 16718) -EtherSenderReceiverTest_validateFeeToken:test_validateFeeToken_valid_native() (gas: 16657) -EtherSenderReceiverTest_validatedMessage:test_validatedMessage_dataOverwrittenToMsgSender() (gas: 25415) -EtherSenderReceiverTest_validatedMessage:test_validatedMessage_emptyDataOverwrittenToMsgSender() (gas: 25265) -EtherSenderReceiverTest_validatedMessage:test_validatedMessage_invalidTokenAmounts() (gas: 17907) -EtherSenderReceiverTest_validatedMessage:test_validatedMessage_tokenOverwrittenToWeth() (gas: 25287) -EtherSenderReceiverTest_validatedMessage:test_validatedMessage_validMessage_extraArgs() (gas: 26316) +EtherSenderReceiverTest_ccipReceive:test_ccipReceive_fallbackToWethTransfer() (gas: 103814) +EtherSenderReceiverTest_ccipReceive:test_ccipReceive_happyPath() (gas: 54732) +EtherSenderReceiverTest_ccipReceive:test_ccipReceive_wrongToken() (gas: 21881) +EtherSenderReceiverTest_ccipReceive:test_ccipReceive_wrongTokenAmount() (gas: 20674) +EtherSenderReceiverTest_ccipSend:test_ccipSend_reverts_insufficientFee_feeToken() (gas: 116467) +EtherSenderReceiverTest_ccipSend:test_ccipSend_reverts_insufficientFee_native() (gas: 91360) +EtherSenderReceiverTest_ccipSend:test_ccipSend_reverts_insufficientFee_weth() (gas: 116371) +EtherSenderReceiverTest_ccipSend:test_ccipSend_success_feeToken() (gas: 167929) +EtherSenderReceiverTest_ccipSend:test_ccipSend_success_native() (gas: 98200) +EtherSenderReceiverTest_ccipSend:test_ccipSend_success_nativeExcess() (gas: 98574) +EtherSenderReceiverTest_ccipSend:test_ccipSend_success_weth() (gas: 117880) +EtherSenderReceiverTest_constructor:test_constructor() (gas: 19659) +EtherSenderReceiverTest_getFee:test_getFee() (gas: 41207) +EtherSenderReceiverTest_validateFeeToken:test_validateFeeToken_reverts_feeToken_tokenAmountNotEqualToMsgValue() (gas: 22872) +EtherSenderReceiverTest_validateFeeToken:test_validateFeeToken_valid_feeToken() (gas: 18390) +EtherSenderReceiverTest_validateFeeToken:test_validateFeeToken_valid_native() (gas: 18420) +EtherSenderReceiverTest_validatedMessage:test_validatedMessage_dataOverwrittenToMsgSender() (gas: 34950) +EtherSenderReceiverTest_validatedMessage:test_validatedMessage_emptyDataOverwrittenToMsgSender() (gas: 34697) +EtherSenderReceiverTest_validatedMessage:test_validatedMessage_invalidTokenAmounts() (gas: 23796) +EtherSenderReceiverTest_validatedMessage:test_validatedMessage_tokenOverwrittenToWeth() (gas: 34674) +EtherSenderReceiverTest_validatedMessage:test_validatedMessage_validMessage_extraArgs() (gas: 36305) FeeQuoter_applyDestChainConfigUpdates:test_InvalidChainFamilySelector_Revert() (gas: 16509) FeeQuoter_applyDestChainConfigUpdates:test_InvalidDestChainConfigDestChainSelectorEqZero_Revert() (gas: 16423) FeeQuoter_applyDestChainConfigUpdates:test_applyDestChainConfigUpdatesDefaultTxGasLimitEqZero_Revert() (gas: 16465) @@ -426,28 +426,28 @@ FeeQuoter_validatePoolReturnData:test_InvalidEVMAddressDestToken_Revert() (gas: FeeQuoter_validatePoolReturnData:test_ProcessPoolReturnData_Success() (gas: 73306) FeeQuoter_validatePoolReturnData:test_SourceTokenDataTooLarge_Revert() (gas: 107855) FeeQuoter_validatePoolReturnData:test_TokenAmountArraysMismatching_Revert() (gas: 40106) -HybridUSDCTokenPoolMigrationTests:test_LockOrBurn_LocKReleaseMechanism_then_switchToPrimary_Success() (gas: 208384) -HybridUSDCTokenPoolMigrationTests:test_LockOrBurn_PrimaryMechanism_Success() (gas: 135502) -HybridUSDCTokenPoolMigrationTests:test_LockOrBurn_WhileMigrationPause_Revert() (gas: 106651) -HybridUSDCTokenPoolMigrationTests:test_LockOrBurn_onLockReleaseMechanism_Success() (gas: 143944) -HybridUSDCTokenPoolMigrationTests:test_MintOrRelease_OnLockReleaseMechanism_Success() (gas: 230450) -HybridUSDCTokenPoolMigrationTests:test_MintOrRelease_OnLockReleaseMechanism_then_switchToPrimary_Success() (gas: 438517) -HybridUSDCTokenPoolMigrationTests:test_MintOrRelease_incomingMessageWithPrimaryMechanism() (gas: 270081) -HybridUSDCTokenPoolMigrationTests:test_burnLockedUSDC_invalidPermissions_Revert() (gas: 39130) -HybridUSDCTokenPoolMigrationTests:test_cancelExistingCCTPMigrationProposal() (gas: 31181) -HybridUSDCTokenPoolMigrationTests:test_cannotCancelANonExistentMigrationProposal() (gas: 12628) -HybridUSDCTokenPoolMigrationTests:test_cannotModifyLiquidityWithoutPermissions_Revert() (gas: 17158) -HybridUSDCTokenPoolMigrationTests:test_lockOrBurn_then_BurnInCCTPMigration_Success() (gas: 252682) -HybridUSDCTokenPoolMigrationTests:test_transferLiquidity_Success() (gas: 157130) -HybridUSDCTokenPoolMigrationTests:test_withdrawLiquidity_Success() (gas: 140828) -HybridUSDCTokenPoolTests:test_LockOrBurn_LocKReleaseMechanism_then_switchToPrimary_Success() (gas: 208164) -HybridUSDCTokenPoolTests:test_LockOrBurn_PrimaryMechanism_Success() (gas: 135396) -HybridUSDCTokenPoolTests:test_LockOrBurn_WhileMigrationPause_Revert() (gas: 106628) -HybridUSDCTokenPoolTests:test_LockOrBurn_onLockReleaseMechanism_Success() (gas: 143865) -HybridUSDCTokenPoolTests:test_MintOrRelease_OnLockReleaseMechanism_Success() (gas: 230383) -HybridUSDCTokenPoolTests:test_MintOrRelease_OnLockReleaseMechanism_then_switchToPrimary_Success() (gas: 438318) -HybridUSDCTokenPoolTests:test_MintOrRelease_incomingMessageWithPrimaryMechanism() (gas: 270011) -HybridUSDCTokenPoolTests:test_withdrawLiquidity_Success() (gas: 140783) +HybridUSDCTokenPoolMigrationTests:test_LockOrBurn_LocKReleaseMechanism_then_switchToPrimary_Success() (gas: 234573) +HybridUSDCTokenPoolMigrationTests:test_LockOrBurn_PrimaryMechanism_Success() (gas: 150728) +HybridUSDCTokenPoolMigrationTests:test_LockOrBurn_WhileMigrationPause_Revert() (gas: 113462) +HybridUSDCTokenPoolMigrationTests:test_LockOrBurn_onLockReleaseMechanism_Success() (gas: 154301) +HybridUSDCTokenPoolMigrationTests:test_MintOrRelease_OnLockReleaseMechanism_Success() (gas: 249477) +HybridUSDCTokenPoolMigrationTests:test_MintOrRelease_OnLockReleaseMechanism_then_switchToPrimary_Success() (gas: 525148) +HybridUSDCTokenPoolMigrationTests:test_MintOrRelease_incomingMessageWithPrimaryMechanism() (gas: 329165) +HybridUSDCTokenPoolMigrationTests:test_burnLockedUSDC_invalidPermissions_Revert() (gas: 41384) +HybridUSDCTokenPoolMigrationTests:test_cancelExistingCCTPMigrationProposal() (gas: 33588) +HybridUSDCTokenPoolMigrationTests:test_cannotCancelANonExistentMigrationProposal() (gas: 12955) +HybridUSDCTokenPoolMigrationTests:test_cannotModifyLiquidityWithoutPermissions_Revert() (gas: 20700) +HybridUSDCTokenPoolMigrationTests:test_lockOrBurn_then_BurnInCCTPMigration_Success() (gas: 281234) +HybridUSDCTokenPoolMigrationTests:test_transferLiquidity_Success() (gas: 168651) +HybridUSDCTokenPoolMigrationTests:test_withdrawLiquidity_Success() (gas: 152516) +HybridUSDCTokenPoolTests:test_LockOrBurn_LocKReleaseMechanism_then_switchToPrimary_Success() (gas: 234556) +HybridUSDCTokenPoolTests:test_LockOrBurn_PrimaryMechanism_Success() (gas: 150684) +HybridUSDCTokenPoolTests:test_LockOrBurn_WhileMigrationPause_Revert() (gas: 113484) +HybridUSDCTokenPoolTests:test_LockOrBurn_onLockReleaseMechanism_Success() (gas: 154301) +HybridUSDCTokenPoolTests:test_MintOrRelease_OnLockReleaseMechanism_Success() (gas: 249477) +HybridUSDCTokenPoolTests:test_MintOrRelease_OnLockReleaseMechanism_then_switchToPrimary_Success() (gas: 525148) +HybridUSDCTokenPoolTests:test_MintOrRelease_incomingMessageWithPrimaryMechanism() (gas: 329120) +HybridUSDCTokenPoolTests:test_withdrawLiquidity_Success() (gas: 152516) LockReleaseTokenPoolAndProxy_setRebalancer:test_SetRebalancer_Revert() (gas: 10977) LockReleaseTokenPoolAndProxy_setRebalancer:test_SetRebalancer_Success() (gas: 17998) LockReleaseTokenPoolPoolAndProxy_canAcceptLiquidity:test_CanAcceptLiquidity_Success() (gas: 3315195) @@ -456,34 +456,34 @@ LockReleaseTokenPoolPoolAndProxy_provideLiquidity:test_Unauthorized_Revert() (ga LockReleaseTokenPoolPoolAndProxy_supportsInterface:test_SupportsInterface_Success() (gas: 9977) LockReleaseTokenPoolPoolAndProxy_withdrawalLiquidity:test_InsufficientLiquidity_Revert() (gas: 60060) LockReleaseTokenPoolPoolAndProxy_withdrawalLiquidity:test_Unauthorized_Revert() (gas: 11386) -LockReleaseTokenPool_canAcceptLiquidity:test_CanAcceptLiquidity_Success() (gas: 3071906) -LockReleaseTokenPool_lockOrBurn:test_LockOrBurnWithAllowList_Revert() (gas: 29960) -LockReleaseTokenPool_lockOrBurn:test_LockOrBurnWithAllowList_Success() (gas: 79868) -LockReleaseTokenPool_lockOrBurn:test_PoolBurnRevertNotHealthy_Revert() (gas: 59479) -LockReleaseTokenPool_provideLiquidity:test_LiquidityNotAccepted_Revert() (gas: 3068356) -LockReleaseTokenPool_provideLiquidity:test_Unauthorized_Revert() (gas: 11405) -LockReleaseTokenPool_releaseOrMint:test_ChainNotAllowed_Revert() (gas: 72666) -LockReleaseTokenPool_releaseOrMint:test_PoolMintNotHealthy_Revert() (gas: 56211) -LockReleaseTokenPool_releaseOrMint:test_ReleaseOrMint_Success() (gas: 225296) -LockReleaseTokenPool_setRebalancer:test_SetRebalancer_Revert() (gas: 10999) -LockReleaseTokenPool_setRebalancer:test_SetRebalancer_Success() (gas: 18064) -LockReleaseTokenPool_supportsInterface:test_SupportsInterface_Success() (gas: 9977) -LockReleaseTokenPool_transferLiquidity:test_transferLiquidity_Success() (gas: 83177) -LockReleaseTokenPool_transferLiquidity:test_transferLiquidity_transferTooMuch_Revert() (gas: 55899) -LockReleaseTokenPool_withdrawalLiquidity:test_InsufficientLiquidity_Revert() (gas: 60060) -LockReleaseTokenPool_withdrawalLiquidity:test_Unauthorized_Revert() (gas: 11386) -LockRelease_setRateLimitAdmin:test_SetRateLimitAdmin_Revert() (gas: 11036) -LockRelease_setRateLimitAdmin:test_SetRateLimitAdmin_Success() (gas: 35030) -MerkleMultiProofTest:test_CVE_2023_34459() (gas: 5454) -MerkleMultiProofTest:test_EmptyLeaf_Revert() (gas: 3555) -MerkleMultiProofTest:test_MerkleRoot256() (gas: 394879) -MerkleMultiProofTest:test_MerkleRootSingleLeaf_Success() (gas: 3649) -MerkleMultiProofTest:test_SpecSync_gas() (gas: 34123) -MockRouterTest:test_ccipSendWithInsufficientNativeTokens_Revert() (gas: 34019) -MockRouterTest:test_ccipSendWithInvalidMsgValue_Revert() (gas: 60812) -MockRouterTest:test_ccipSendWithLinkFeeTokenAndValidMsgValue_Success() (gas: 126480) -MockRouterTest:test_ccipSendWithLinkFeeTokenbutInsufficientAllowance_Revert() (gas: 63419) -MockRouterTest:test_ccipSendWithSufficientNativeFeeTokens_Success() (gas: 43952) +LockReleaseTokenPool_canAcceptLiquidity:test_CanAcceptLiquidity_Success() (gas: 4775338) +LockReleaseTokenPool_lockOrBurn:test_LockOrBurnWithAllowList_Revert() (gas: 33986) +LockReleaseTokenPool_lockOrBurn:test_LockOrBurnWithAllowList_Success() (gas: 91128) +LockReleaseTokenPool_lockOrBurn:test_PoolBurnRevertNotHealthy_Revert() (gas: 64965) +LockReleaseTokenPool_provideLiquidity:test_LiquidityNotAccepted_Revert() (gas: 4771254) +LockReleaseTokenPool_provideLiquidity:test_Unauthorized_Revert() (gas: 12661) +LockReleaseTokenPool_releaseOrMint:test_ChainNotAllowed_Revert() (gas: 81914) +LockReleaseTokenPool_releaseOrMint:test_PoolMintNotHealthy_Revert() (gas: 63333) +LockReleaseTokenPool_releaseOrMint:test_ReleaseOrMint_Success() (gas: 274666) +LockReleaseTokenPool_setRebalancer:test_SetRebalancer_Revert() (gas: 11990) +LockReleaseTokenPool_setRebalancer:test_SetRebalancer_Success() (gas: 19783) +LockReleaseTokenPool_supportsInterface:test_SupportsInterface_Success() (gas: 11613) +LockReleaseTokenPool_transferLiquidity:test_transferLiquidity_Success() (gas: 88490) +LockReleaseTokenPool_transferLiquidity:test_transferLiquidity_transferTooMuch_Revert() (gas: 59808) +LockReleaseTokenPool_withdrawalLiquidity:test_InsufficientLiquidity_Revert() (gas: 64803) +LockReleaseTokenPool_withdrawalLiquidity:test_Unauthorized_Revert() (gas: 12647) +LockRelease_setRateLimitAdmin:test_SetRateLimitAdmin_Revert() (gas: 12033) +LockRelease_setRateLimitAdmin:test_SetRateLimitAdmin_Success() (gas: 36728) +MerkleMultiProofTest:test_CVE_2023_34459() (gas: 6372) +MerkleMultiProofTest:test_EmptyLeaf_Revert() (gas: 4019) +MerkleMultiProofTest:test_MerkleRoot256() (gas: 668330) +MerkleMultiProofTest:test_MerkleRootSingleLeaf_Success() (gas: 4074) +MerkleMultiProofTest:test_SpecSync_gas() (gas: 49338) +MockRouterTest:test_ccipSendWithInsufficientNativeTokens_Revert() (gas: 37132) +MockRouterTest:test_ccipSendWithInvalidMsgValue_Revert() (gas: 64034) +MockRouterTest:test_ccipSendWithLinkFeeTokenAndValidMsgValue_Success() (gas: 135207) +MockRouterTest:test_ccipSendWithLinkFeeTokenbutInsufficientAllowance_Revert() (gas: 68119) +MockRouterTest:test_ccipSendWithSufficientNativeFeeTokens_Success() (gas: 48343) MultiAggregateRateLimiter_applyRateLimiterConfigUpdates:test_MultipleConfigsBothLanes_Success() (gas: 132457) MultiAggregateRateLimiter_applyRateLimiterConfigUpdates:test_MultipleConfigs_Success() (gas: 313023) MultiAggregateRateLimiter_applyRateLimiterConfigUpdates:test_OnlyCallableByOwner_Revert() (gas: 17750) @@ -529,38 +529,38 @@ MultiAggregateRateLimiter_updateRateLimitTokens:test_UpdateRateLimitTokens_AddsA MultiAggregateRateLimiter_updateRateLimitTokens:test_UpdateRateLimitTokens_RemoveNonExistentToken_Success() (gas: 28703) MultiAggregateRateLimiter_updateRateLimitTokens:test_ZeroDestToken_Revert() (gas: 18279) MultiAggregateRateLimiter_updateRateLimitTokens:test_ZeroSourceToken_Revert() (gas: 18208) -MultiOCR3Base_setOCR3Configs:test_FMustBePositive_Revert() (gas: 59255) -MultiOCR3Base_setOCR3Configs:test_FTooHigh_Revert() (gas: 43629) -MultiOCR3Base_setOCR3Configs:test_RepeatSignerAddress_Revert() (gas: 283636) -MultiOCR3Base_setOCR3Configs:test_RepeatTransmitterAddress_Revert() (gas: 422261) -MultiOCR3Base_setOCR3Configs:test_SetConfigIgnoreSigners_Success() (gas: 511281) -MultiOCR3Base_setOCR3Configs:test_SetConfigWithSigners_Success() (gas: 828440) -MultiOCR3Base_setOCR3Configs:test_SetConfigWithoutSigners_Success() (gas: 456886) -MultiOCR3Base_setOCR3Configs:test_SetConfigsZeroInput_Success() (gas: 12382) -MultiOCR3Base_setOCR3Configs:test_SetMultipleConfigs_Success() (gas: 2140159) -MultiOCR3Base_setOCR3Configs:test_SignerCannotBeZeroAddress_Revert() (gas: 141717) -MultiOCR3Base_setOCR3Configs:test_StaticConfigChange_Revert() (gas: 807340) -MultiOCR3Base_setOCR3Configs:test_TooManySigners_Revert() (gas: 158799) -MultiOCR3Base_setOCR3Configs:test_TooManyTransmitters_Revert() (gas: 112293) -MultiOCR3Base_setOCR3Configs:test_TransmitterCannotBeZeroAddress_Revert() (gas: 254083) -MultiOCR3Base_setOCR3Configs:test_UpdateConfigSigners_Success() (gas: 860224) -MultiOCR3Base_setOCR3Configs:test_UpdateConfigTransmittersWithoutSigners_Success() (gas: 475193) -MultiOCR3Base_transmit:test_ConfigDigestMismatch_Revert() (gas: 42845) -MultiOCR3Base_transmit:test_ForkedChain_Revert() (gas: 48450) -MultiOCR3Base_transmit:test_InsufficientSignatures_Revert() (gas: 76928) -MultiOCR3Base_transmit:test_NonUniqueSignature_Revert() (gas: 65768) -MultiOCR3Base_transmit:test_SignatureOutOfRegistration_Revert() (gas: 33417) -MultiOCR3Base_transmit:test_TooManySignatures_Revert() (gas: 79519) -MultiOCR3Base_transmit:test_TransmitSigners_gas_Success() (gas: 33631) -MultiOCR3Base_transmit:test_TransmitWithExtraCalldataArgs_Revert() (gas: 47122) -MultiOCR3Base_transmit:test_TransmitWithLessCalldataArgs_Revert() (gas: 25690) -MultiOCR3Base_transmit:test_TransmitWithoutSignatureVerification_gas_Success() (gas: 18712) -MultiOCR3Base_transmit:test_UnAuthorizedTransmitter_Revert() (gas: 24189) -MultiOCR3Base_transmit:test_UnauthorizedSigner_Revert() (gas: 61131) -MultiOCR3Base_transmit:test_UnconfiguredPlugin_Revert() (gas: 39888) -MultiOCR3Base_transmit:test_ZeroSignatures_Revert() (gas: 32971) +MultiOCR3Base_setOCR3Configs:test_FMustBePositive_Revert() (gas: 72005) +MultiOCR3Base_setOCR3Configs:test_FTooHigh_Revert() (gas: 48162) +MultiOCR3Base_setOCR3Configs:test_RepeatSignerAddress_Revert() (gas: 296773) +MultiOCR3Base_setOCR3Configs:test_RepeatTransmitterAddress_Revert() (gas: 437288) +MultiOCR3Base_setOCR3Configs:test_SetConfigIgnoreSigners_Success() (gas: 556997) +MultiOCR3Base_setOCR3Configs:test_SetConfigWithSigners_Success() (gas: 874789) +MultiOCR3Base_setOCR3Configs:test_SetConfigWithoutSigners_Success() (gas: 486308) +MultiOCR3Base_setOCR3Configs:test_SetConfigsZeroInput_Success() (gas: 13373) +MultiOCR3Base_setOCR3Configs:test_SetMultipleConfigs_Success() (gas: 2266658) +MultiOCR3Base_setOCR3Configs:test_SignerCannotBeZeroAddress_Revert() (gas: 152886) +MultiOCR3Base_setOCR3Configs:test_StaticConfigChange_Revert() (gas: 841118) +MultiOCR3Base_setOCR3Configs:test_TooManySigners_Revert() (gas: 312015) +MultiOCR3Base_setOCR3Configs:test_TooManyTransmitters_Revert() (gas: 261347) +MultiOCR3Base_setOCR3Configs:test_TransmitterCannotBeZeroAddress_Revert() (gas: 266523) +MultiOCR3Base_setOCR3Configs:test_UpdateConfigSigners_Success() (gas: 930500) +MultiOCR3Base_setOCR3Configs:test_UpdateConfigTransmittersWithoutSigners_Success() (gas: 516788) +MultiOCR3Base_transmit:test_ConfigDigestMismatch_Revert() (gas: 49771) +MultiOCR3Base_transmit:test_ForkedChain_Revert() (gas: 56488) +MultiOCR3Base_transmit:test_InsufficientSignatures_Revert() (gas: 87043) +MultiOCR3Base_transmit:test_NonUniqueSignature_Revert() (gas: 75511) +MultiOCR3Base_transmit:test_SignatureOutOfRegistration_Revert() (gas: 38453) +MultiOCR3Base_transmit:test_TooManySignatures_Revert() (gas: 92076) +MultiOCR3Base_transmit:test_TransmitSigners_gas_Success() (gas: 39865) +MultiOCR3Base_transmit:test_TransmitWithExtraCalldataArgs_Revert() (gas: 52756) +MultiOCR3Base_transmit:test_TransmitWithLessCalldataArgs_Revert() (gas: 30083) +MultiOCR3Base_transmit:test_TransmitWithoutSignatureVerification_gas_Success() (gas: 21035) +MultiOCR3Base_transmit:test_UnAuthorizedTransmitter_Revert() (gas: 29105) +MultiOCR3Base_transmit:test_UnauthorizedSigner_Revert() (gas: 69917) +MultiOCR3Base_transmit:test_UnconfiguredPlugin_Revert() (gas: 42537) +MultiOCR3Base_transmit:test_ZeroSignatures_Revert() (gas: 37478) MultiOnRampTokenPoolReentrancy:test_OnRampTokenPoolReentrancy_Success() (gas: 411709) -MultiRampsE2E:test_E2E_3MessagesMMultiOffRampSuccess_gas() (gas: 1527960) +MultiRampsE2E:test_E2E_3MessagesMMultiOffRampSuccess_gas() (gas: 1529863) NonceManager_NonceIncrementation:test_getIncrementedOutboundNonce_Success() (gas: 37916) NonceManager_NonceIncrementation:test_incrementInboundNonce_Skip() (gas: 23709) NonceManager_NonceIncrementation:test_incrementInboundNonce_Success() (gas: 38799) @@ -583,40 +583,40 @@ NonceManager_applyPreviousRampsUpdates:test_PreviousRampAlreadySetOnRamp_Revert( NonceManager_applyPreviousRampsUpdates:test_SingleRampUpdate() (gas: 66576) NonceManager_applyPreviousRampsUpdates:test_ZeroInput() (gas: 12025) NonceManager_typeAndVersion:test_typeAndVersion() (gas: 9699) -OCR2BaseNoChecks_setOCR2Config:test_FMustBePositive_Revert() (gas: 12183) -OCR2BaseNoChecks_setOCR2Config:test_RepeatAddress_Revert() (gas: 42404) -OCR2BaseNoChecks_setOCR2Config:test_SetConfigSuccess_gas() (gas: 84585) -OCR2BaseNoChecks_setOCR2Config:test_TooManyTransmitter_Revert() (gas: 38150) -OCR2BaseNoChecks_setOCR2Config:test_TransmitterCannotBeZeroAddress_Revert() (gas: 24290) -OCR2BaseNoChecks_transmit:test_ConfigDigestMismatch_Revert() (gas: 17469) -OCR2BaseNoChecks_transmit:test_ForkedChain_Revert() (gas: 26762) -OCR2BaseNoChecks_transmit:test_TransmitSuccess_gas() (gas: 27499) -OCR2BaseNoChecks_transmit:test_UnAuthorizedTransmitter_Revert() (gas: 21317) -OCR2Base_setOCR2Config:test_FMustBePositive_Revert() (gas: 12201) -OCR2Base_setOCR2Config:test_FTooHigh_Revert() (gas: 12357) -OCR2Base_setOCR2Config:test_OracleOutOfRegister_Revert() (gas: 14904) -OCR2Base_setOCR2Config:test_RepeatAddress_Revert() (gas: 45454) -OCR2Base_setOCR2Config:test_SetConfigSuccess_gas() (gas: 155211) -OCR2Base_setOCR2Config:test_SingerCannotBeZeroAddress_Revert() (gas: 24407) -OCR2Base_setOCR2Config:test_TooManySigners_Revert() (gas: 20520) -OCR2Base_setOCR2Config:test_TransmitterCannotBeZeroAddress_Revert() (gas: 47298) -OCR2Base_transmit:test_ConfigDigestMismatch_Revert() (gas: 19638) -OCR2Base_transmit:test_ForkedChain_Revert() (gas: 37713) -OCR2Base_transmit:test_NonUniqueSignature_Revert() (gas: 55324) -OCR2Base_transmit:test_SignatureOutOfRegistration_Revert() (gas: 20977) -OCR2Base_transmit:test_Transmit2SignersSuccess_gas() (gas: 51689) -OCR2Base_transmit:test_UnAuthorizedTransmitter_Revert() (gas: 23499) -OCR2Base_transmit:test_UnauthorizedSigner_Revert() (gas: 39695) -OCR2Base_transmit:test_WrongNumberOfSignatures_Revert() (gas: 20572) -OffRamp_afterOC3ConfigSet:test_afterOCR3ConfigSet_SignatureVerificationDisabled_Revert() (gas: 5849491) -OffRamp_applySourceChainConfigUpdates:test_AddMultipleChains_Success() (gas: 468052) -OffRamp_applySourceChainConfigUpdates:test_AddNewChain_Success() (gas: 99216) +OCR2BaseNoChecks_setOCR2Config:test_FMustBePositive_Revert() (gas: 15443) +OCR2BaseNoChecks_setOCR2Config:test_RepeatAddress_Revert() (gas: 48841) +OCR2BaseNoChecks_setOCR2Config:test_SetConfigSuccess_gas() (gas: 97138) +OCR2BaseNoChecks_setOCR2Config:test_TooManyTransmitter_Revert() (gas: 75615) +OCR2BaseNoChecks_setOCR2Config:test_TransmitterCannotBeZeroAddress_Revert() (gas: 32515) +OCR2BaseNoChecks_transmit:test_ConfigDigestMismatch_Revert() (gas: 20081) +OCR2BaseNoChecks_transmit:test_ForkedChain_Revert() (gas: 29888) +OCR2BaseNoChecks_transmit:test_TransmitSuccess_gas() (gas: 30530) +OCR2BaseNoChecks_transmit:test_UnAuthorizedTransmitter_Revert() (gas: 25249) +OCR2Base_setOCR2Config:test_FMustBePositive_Revert() (gas: 15449) +OCR2Base_setOCR2Config:test_FTooHigh_Revert() (gas: 15725) +OCR2Base_setOCR2Config:test_OracleOutOfRegister_Revert() (gas: 21647) +OCR2Base_setOCR2Config:test_RepeatAddress_Revert() (gas: 56234) +OCR2Base_setOCR2Config:test_SetConfigSuccess_gas() (gas: 169648) +OCR2Base_setOCR2Config:test_SingerCannotBeZeroAddress_Revert() (gas: 32751) +OCR2Base_setOCR2Config:test_TooManySigners_Revert() (gas: 34759) +OCR2Base_setOCR2Config:test_TransmitterCannotBeZeroAddress_Revert() (gas: 55992) +OCR2Base_transmit:test_ConfigDigestMismatch_Revert() (gas: 22520) +OCR2Base_transmit:test_ForkedChain_Revert() (gas: 42561) +OCR2Base_transmit:test_NonUniqueSignature_Revert() (gas: 62252) +OCR2Base_transmit:test_SignatureOutOfRegistration_Revert() (gas: 24538) +OCR2Base_transmit:test_Transmit2SignersSuccess_gas() (gas: 58490) +OCR2Base_transmit:test_UnAuthorizedTransmitter_Revert() (gas: 27448) +OCR2Base_transmit:test_UnauthorizedSigner_Revert() (gas: 45597) +OCR2Base_transmit:test_WrongNumberOfSignatures_Revert() (gas: 23593) +OffRamp_afterOC3ConfigSet:test_afterOCR3ConfigSet_SignatureVerificationDisabled_Revert() (gas: 5883366) +OffRamp_applySourceChainConfigUpdates:test_AddMultipleChains_Success() (gas: 468008) +OffRamp_applySourceChainConfigUpdates:test_AddNewChain_Success() (gas: 99183) OffRamp_applySourceChainConfigUpdates:test_ApplyZeroUpdates_Success() (gas: 12392) -OffRamp_applySourceChainConfigUpdates:test_ReplaceExistingChainOnRamp_Revert() (gas: 93196) -OffRamp_applySourceChainConfigUpdates:test_ReplaceExistingChain_Success() (gas: 109927) -OffRamp_applySourceChainConfigUpdates:test_RouterAddress_Revert() (gas: 13266) -OffRamp_applySourceChainConfigUpdates:test_ZeroOnRampAddress_Revert() (gas: 18000) -OffRamp_applySourceChainConfigUpdates:test_ZeroSourceChainSelector_Revert() (gas: 15349) +OffRamp_applySourceChainConfigUpdates:test_ReplaceExistingChainOnRamp_Success() (gas: 101102) +OffRamp_applySourceChainConfigUpdates:test_ReplaceExistingChain_Success() (gas: 110477) +OffRamp_applySourceChainConfigUpdates:test_RouterAddress_Revert() (gas: 13278) +OffRamp_applySourceChainConfigUpdates:test_ZeroOnRampAddress_Revert() (gas: 72310) +OffRamp_applySourceChainConfigUpdates:test_ZeroSourceChainSelector_Revert() (gas: 15344) OffRamp_batchExecute:test_MultipleReportsDifferentChainsSkipCursedChain_Success() (gas: 176901) OffRamp_batchExecute:test_MultipleReportsDifferentChains_Success() (gas: 332739) OffRamp_batchExecute:test_MultipleReportsSameChain_Success() (gas: 276107) @@ -626,42 +626,43 @@ OffRamp_batchExecute:test_SingleReport_Success() (gas: 155963) OffRamp_batchExecute:test_Unhealthy_Success() (gas: 573311) OffRamp_batchExecute:test_ZeroReports_Revert() (gas: 10440) OffRamp_ccipReceive:test_Reverts() (gas: 15705) -OffRamp_commit:test_FailedRMNVerification_Reverts() (gas: 64462) -OffRamp_commit:test_InvalidIntervalMinLargerThanMax_Revert() (gas: 67674) -OffRamp_commit:test_InvalidInterval_Revert() (gas: 59928) -OffRamp_commit:test_InvalidRootRevert() (gas: 58963) -OffRamp_commit:test_NoConfigWithOtherConfigPresent_Revert() (gas: 6454659) -OffRamp_commit:test_NoConfig_Revert() (gas: 6038472) -OffRamp_commit:test_OnlyGasPriceUpdates_Success() (gas: 113541) -OffRamp_commit:test_OnlyPriceUpdateStaleReport_Revert() (gas: 121576) -OffRamp_commit:test_OnlyTokenPriceUpdates_Success() (gas: 113562) -OffRamp_commit:test_PriceSequenceNumberCleared_Success() (gas: 355724) -OffRamp_commit:test_ReportAndPriceUpdate_Success() (gas: 166923) -OffRamp_commit:test_ReportOnlyRootSuccess_gas() (gas: 141978) -OffRamp_commit:test_RootAlreadyCommitted_Revert() (gas: 142982) -OffRamp_commit:test_SourceChainNotEnabled_Revert() (gas: 59250) -OffRamp_commit:test_StaleReportWithRoot_Success() (gas: 240065) -OffRamp_commit:test_UnauthorizedTransmitter_Revert() (gas: 122475) -OffRamp_commit:test_Unhealthy_Revert() (gas: 57991) -OffRamp_commit:test_ValidPriceUpdateThenStaleReportWithRoot_Success() (gas: 212393) -OffRamp_commit:test_ZeroEpochAndRound_Revert() (gas: 51324) -OffRamp_constructor:test_Constructor_Success() (gas: 6038780) -OffRamp_constructor:test_SourceChainSelector_Revert() (gas: 136917) -OffRamp_constructor:test_ZeroChainSelector_Revert() (gas: 103646) -OffRamp_constructor:test_ZeroNonceManager_Revert() (gas: 101523) -OffRamp_constructor:test_ZeroOnRampAddress_Revert() (gas: 139565) -OffRamp_constructor:test_ZeroRMNRemote_Revert() (gas: 101452) -OffRamp_constructor:test_ZeroTokenAdminRegistry_Revert() (gas: 101467) +OffRamp_commit:test_FailedRMNVerification_Reverts() (gas: 63388) +OffRamp_commit:test_InvalidIntervalMinLargerThanMax_Revert() (gas: 67501) +OffRamp_commit:test_InvalidInterval_Revert() (gas: 63782) +OffRamp_commit:test_InvalidOnRamp_Revert() (gas: 91933) +OffRamp_commit:test_InvalidRootRevert() (gas: 62855) +OffRamp_commit:test_NoConfigWithOtherConfigPresent_Revert() (gas: 6487509) +OffRamp_commit:test_NoConfig_Revert() (gas: 6071300) +OffRamp_commit:test_OnlyGasPriceUpdates_Success() (gas: 113421) +OffRamp_commit:test_OnlyPriceUpdateStaleReport_Revert() (gas: 121466) +OffRamp_commit:test_OnlyTokenPriceUpdates_Success() (gas: 113398) +OffRamp_commit:test_PriceSequenceNumberCleared_Success() (gas: 355496) +OffRamp_commit:test_ReportAndPriceUpdate_Success() (gas: 165270) +OffRamp_commit:test_ReportOnlyRootSuccess_gas() (gas: 140426) +OffRamp_commit:test_RootAlreadyCommitted_Revert() (gas: 146378) +OffRamp_commit:test_SourceChainNotEnabled_Revert() (gas: 59142) +OffRamp_commit:test_StaleReportWithRoot_Success() (gas: 237268) +OffRamp_commit:test_UnauthorizedTransmitter_Revert() (gas: 125741) +OffRamp_commit:test_Unhealthy_Revert() (gas: 57871) +OffRamp_commit:test_ValidPriceUpdateThenStaleReportWithRoot_Success() (gas: 210618) +OffRamp_commit:test_ZeroEpochAndRound_Revert() (gas: 51264) +OffRamp_constructor:test_Constructor_Success() (gas: 6072607) +OffRamp_constructor:test_SourceChainSelector_Revert() (gas: 136937) +OffRamp_constructor:test_ZeroChainSelector_Revert() (gas: 103665) +OffRamp_constructor:test_ZeroNonceManager_Revert() (gas: 101542) +OffRamp_constructor:test_ZeroOnRampAddress_Revert() (gas: 162457) +OffRamp_constructor:test_ZeroRMNRemote_Revert() (gas: 101471) +OffRamp_constructor:test_ZeroTokenAdminRegistry_Revert() (gas: 101486) OffRamp_execute:test_IncorrectArrayType_Revert() (gas: 17281) OffRamp_execute:test_LargeBatch_Success() (gas: 3378308) OffRamp_execute:test_MultipleReportsWithPartialValidationFailures_Success() (gas: 372457) OffRamp_execute:test_MultipleReports_Success() (gas: 298416) -OffRamp_execute:test_NoConfigWithOtherConfigPresent_Revert() (gas: 6861122) -OffRamp_execute:test_NoConfig_Revert() (gas: 6085920) +OffRamp_execute:test_NoConfigWithOtherConfigPresent_Revert() (gas: 6894898) +OffRamp_execute:test_NoConfig_Revert() (gas: 6119696) OffRamp_execute:test_NonArray_Revert() (gas: 27721) OffRamp_execute:test_SingleReport_Success() (gas: 175215) OffRamp_execute:test_UnauthorizedTransmitter_Revert() (gas: 147455) -OffRamp_execute:test_WrongConfigWithSigners_Revert() (gas: 6863865) +OffRamp_execute:test_WrongConfigWithSigners_Revert() (gas: 6897641) OffRamp_execute:test_ZeroReports_Revert() (gas: 17162) OffRamp_executeSingleMessage:test_MessageSender_Revert() (gas: 18212) OffRamp_executeSingleMessage:test_NonContractWithTokens_Success() (gas: 249178) @@ -673,33 +674,32 @@ OffRamp_executeSingleMessage:test_executeSingleMessage_WithFailingValidationNoRo OffRamp_executeSingleMessage:test_executeSingleMessage_WithFailingValidation_Revert() (gas: 86208) OffRamp_executeSingleMessage:test_executeSingleMessage_WithTokens_Success() (gas: 281045) OffRamp_executeSingleMessage:test_executeSingleMessage_WithValidation_Success() (gas: 92487) -OffRamp_executeSingleReport:test_DisabledSourceChain_Revert() (gas: 28238) +OffRamp_executeSingleReport:test_DisabledSourceChain_Revert() (gas: 28232) OffRamp_executeSingleReport:test_EmptyReport_Revert() (gas: 21860) -OffRamp_executeSingleReport:test_InvalidSourcePoolAddress_Success() (gas: 502029) +OffRamp_executeSingleReport:test_InvalidSourcePoolAddress_Success() (gas: 502009) OffRamp_executeSingleReport:test_ManualExecutionNotYetEnabled_Revert() (gas: 47635) OffRamp_executeSingleReport:test_MismatchingDestChainSelector_Revert() (gas: 33895) -OffRamp_executeSingleReport:test_MismatchingOnRampRoot_Revert() (gas: 155054) -OffRamp_executeSingleReport:test_NonExistingSourceChain_Revert() (gas: 28472) -OffRamp_executeSingleReport:test_ReceiverError_Success() (gas: 187688) -OffRamp_executeSingleReport:test_RetryFailedMessageWithoutManualExecution_Revert() (gas: 198173) +OffRamp_executeSingleReport:test_NonExistingSourceChain_Revert() (gas: 28436) +OffRamp_executeSingleReport:test_ReceiverError_Success() (gas: 187632) +OffRamp_executeSingleReport:test_RetryFailedMessageWithoutManualExecution_Revert() (gas: 198117) OffRamp_executeSingleReport:test_RootNotCommitted_Revert() (gas: 40136) -OffRamp_executeSingleReport:test_RouterYULCall_Revert() (gas: 447500) -OffRamp_executeSingleReport:test_SingleMessageNoTokensOtherChain_Success() (gas: 247946) -OffRamp_executeSingleReport:test_SingleMessageNoTokensUnordered_Success() (gas: 192339) -OffRamp_executeSingleReport:test_SingleMessageNoTokens_Success() (gas: 211938) -OffRamp_executeSingleReport:test_SingleMessageToNonCCIPReceiver_Success() (gas: 259763) -OffRamp_executeSingleReport:test_SingleMessagesNoTokensSuccess_gas() (gas: 140974) -OffRamp_executeSingleReport:test_SkippedIncorrectNonceStillExecutes_Success() (gas: 424565) +OffRamp_executeSingleReport:test_RouterYULCall_Revert() (gas: 447468) +OffRamp_executeSingleReport:test_SingleMessageNoTokensOtherChain_Success() (gas: 247969) +OffRamp_executeSingleReport:test_SingleMessageNoTokensUnordered_Success() (gas: 192275) +OffRamp_executeSingleReport:test_SingleMessageNoTokens_Success() (gas: 211874) +OffRamp_executeSingleReport:test_SingleMessageToNonCCIPReceiver_Success() (gas: 259731) +OffRamp_executeSingleReport:test_SingleMessagesNoTokensSuccess_gas() (gas: 140942) +OffRamp_executeSingleReport:test_SkippedIncorrectNonceStillExecutes_Success() (gas: 424578) OffRamp_executeSingleReport:test_SkippedIncorrectNonce_Success() (gas: 59052) OffRamp_executeSingleReport:test_TokenDataMismatch_Revert() (gas: 74143) -OffRamp_executeSingleReport:test_TwoMessagesWithTokensAndGE_Success() (gas: 596466) -OffRamp_executeSingleReport:test_TwoMessagesWithTokensSuccess_gas() (gas: 544340) -OffRamp_executeSingleReport:test_UnexpectedTokenData_Revert() (gas: 33678) +OffRamp_executeSingleReport:test_TwoMessagesWithTokensAndGE_Success() (gas: 596338) +OffRamp_executeSingleReport:test_TwoMessagesWithTokensSuccess_gas() (gas: 544190) +OffRamp_executeSingleReport:test_UnexpectedTokenData_Revert() (gas: 33656) OffRamp_executeSingleReport:test_UnhealthySingleChainCurse_Revert() (gas: 569320) OffRamp_executeSingleReport:test_Unhealthy_Success() (gas: 569334) OffRamp_executeSingleReport:test_WithCurseOnAnotherSourceChain_Success() (gas: 474664) -OffRamp_executeSingleReport:test__execute_SkippedAlreadyExecutedMessageUnordered_Success() (gas: 135508) -OffRamp_executeSingleReport:test__execute_SkippedAlreadyExecutedMessage_Success() (gas: 164757) +OffRamp_executeSingleReport:test__execute_SkippedAlreadyExecutedMessageUnordered_Success() (gas: 135476) +OffRamp_executeSingleReport:test__execute_SkippedAlreadyExecutedMessage_Success() (gas: 164703) OffRamp_getExecutionState:test_FillExecutionState_Success() (gas: 3635486) OffRamp_getExecutionState:test_GetDifferentChainExecutionState_Success() (gas: 118398) OffRamp_getExecutionState:test_GetExecutionState_Success() (gas: 87417) @@ -792,82 +792,82 @@ PingPong_plumbing:test_OutOfOrderExecution_Success() (gas: 20280) PingPong_plumbing:test_Pausing_Success() (gas: 17780) PingPong_startPingPong:test_StartPingPong_With_OOO_Success() (gas: 163361) PingPong_startPingPong:test_StartPingPong_With_Sequenced_Ordered_Success() (gas: 182770) -RMNHome:test() (gas: 186) -RMN_constructor:test_Constructor_Success() (gas: 48874) -RMN_getRecordedCurseRelatedOps:test_OpsPostDeployment() (gas: 19690) -RMN_lazyVoteToCurseUpdate_Benchmark:test_VoteToCurseLazilyRetain3VotersUponConfigChange_gas() (gas: 152263) -RMN_ownerUnbless:test_Unbless_Success() (gas: 74882) -RMN_ownerUnvoteToCurse:test_CanBlessAndCurseAfterGlobalCurseIsLifted() (gas: 471457) -RMN_ownerUnvoteToCurse:test_IsIdempotent() (gas: 398096) -RMN_ownerUnvoteToCurse:test_NonOwner_Revert() (gas: 18669) -RMN_ownerUnvoteToCurse:test_OwnerUnvoteToCurseSuccess_gas() (gas: 357751) -RMN_ownerUnvoteToCurse:test_UnknownVoter_Revert() (gas: 33034) -RMN_ownerUnvoteToCurse_Benchmark:test_OwnerUnvoteToCurse_1Voter_LiftsCurse_gas() (gas: 262211) -RMN_permaBlessing:test_PermaBlessing() (gas: 202691) -RMN_setConfig:test_BlessVoterIsZeroAddress_Revert() (gas: 15494) -RMN_setConfig:test_EitherThresholdIsZero_Revert() (gas: 21095) -RMN_setConfig:test_NonOwner_Revert() (gas: 14719) -RMN_setConfig:test_RepeatedAddress_Revert() (gas: 18213) -RMN_setConfig:test_SetConfigSuccess_gas() (gas: 104080) -RMN_setConfig:test_TotalWeightsSmallerThanEachThreshold_Revert() (gas: 30173) -RMN_setConfig:test_VoteToBlessByEjectedVoter_Revert() (gas: 130363) -RMN_setConfig:test_VotersLengthIsZero_Revert() (gas: 12128) -RMN_setConfig:test_WeightIsZeroAddress_Revert() (gas: 15734) -RMN_setConfig_Benchmark_1:test_SetConfig_7Voters_gas() (gas: 659462) -RMN_setConfig_Benchmark_2:test_ResetConfig_7Voters_gas() (gas: 212484) -RMN_unvoteToCurse:test_InvalidCursesHash() (gas: 26412) -RMN_unvoteToCurse:test_OwnerSkips() (gas: 33813) -RMN_unvoteToCurse:test_OwnerSucceeds() (gas: 63981) -RMN_unvoteToCurse:test_UnauthorizedVoter() (gas: 47598) -RMN_unvoteToCurse:test_ValidCursesHash() (gas: 61127) -RMN_unvoteToCurse:test_VotersCantLiftCurseButOwnerCan() (gas: 628641) -RMN_voteToBless:test_Curse_Revert() (gas: 473252) -RMN_voteToBless:test_IsAlreadyBlessed_Revert() (gas: 115312) -RMN_voteToBless:test_RootSuccess() (gas: 558319) -RMN_voteToBless:test_SenderAlreadyVoted_Revert() (gas: 97177) -RMN_voteToBless:test_UnauthorizedVoter_Revert() (gas: 17096) -RMN_voteToBless_Benchmark:test_1RootSuccess_gas() (gas: 44703) -RMN_voteToBless_Benchmark:test_3RootSuccess_gas() (gas: 98673) -RMN_voteToBless_Benchmark:test_5RootSuccess_gas() (gas: 152581) -RMN_voteToBless_Blessed_Benchmark:test_1RootSuccessBecameBlessed_gas() (gas: 29673) -RMN_voteToBless_Blessed_Benchmark:test_1RootSuccess_gas() (gas: 27619) -RMN_voteToBless_Blessed_Benchmark:test_3RootSuccess_gas() (gas: 81611) -RMN_voteToBless_Blessed_Benchmark:test_5RootSuccess_gas() (gas: 135497) -RMN_voteToCurse:test_CurseOnlyWhenThresholdReached_Success() (gas: 1650405) -RMN_voteToCurse:test_EmptySubjects_Revert() (gas: 14031) -RMN_voteToCurse:test_EvenIfAlreadyCursed_Success() (gas: 534854) -RMN_voteToCurse:test_OwnerCanCurseAndUncurse() (gas: 399532) -RMN_voteToCurse:test_RepeatedSubject_Revert() (gas: 144336) -RMN_voteToCurse:test_ReusedCurseId_Revert() (gas: 146885) -RMN_voteToCurse:test_UnauthorizedVoter_Revert() (gas: 12630) -RMN_voteToCurse:test_VoteToCurse_NoCurse_Success() (gas: 187388) -RMN_voteToCurse:test_VoteToCurse_YesCurse_Success() (gas: 472854) -RMN_voteToCurse_2:test_VotesAreDroppedIfSubjectIsNotCursedDuringConfigChange() (gas: 370837) -RMN_voteToCurse_2:test_VotesAreRetainedIfSubjectIsCursedDuringConfigChange() (gas: 1153282) -RMN_voteToCurse_Benchmark_1:test_VoteToCurse_NewSubject_NewVoter_NoCurse_gas() (gas: 141079) -RMN_voteToCurse_Benchmark_1:test_VoteToCurse_NewSubject_NewVoter_YesCurse_gas() (gas: 165213) -RMN_voteToCurse_Benchmark_2:test_VoteToCurse_OldSubject_NewVoter_NoCurse_gas() (gas: 121413) -RMN_voteToCurse_Benchmark_2:test_VoteToCurse_OldSubject_OldVoter_NoCurse_gas() (gas: 98355) -RMN_voteToCurse_Benchmark_3:test_VoteToCurse_OldSubject_NewVoter_YesCurse_gas() (gas: 145748) -RateLimiter_constructor:test_Constructor_Success() (gas: 19704) -RateLimiter_consume:test_AggregateValueMaxCapacityExceeded_Revert() (gas: 16006) -RateLimiter_consume:test_AggregateValueRateLimitReached_Revert() (gas: 22345) -RateLimiter_consume:test_ConsumeAggregateValue_Success() (gas: 31443) -RateLimiter_consume:test_ConsumeTokens_Success() (gas: 20366) -RateLimiter_consume:test_ConsumeUnlimited_Success() (gas: 40573) -RateLimiter_consume:test_ConsumingMoreThanUint128_Revert() (gas: 15786) -RateLimiter_consume:test_RateLimitReachedOverConsecutiveBlocks_Revert() (gas: 25747) -RateLimiter_consume:test_Refill_Success() (gas: 37354) -RateLimiter_consume:test_TokenMaxCapacityExceeded_Revert() (gas: 18340) -RateLimiter_consume:test_TokenRateLimitReached_Revert() (gas: 24823) -RateLimiter_currentTokenBucketState:test_CurrentTokenBucketState_Success() (gas: 38875) -RateLimiter_currentTokenBucketState:test_Refill_Success() (gas: 46768) -RateLimiter_setTokenBucketConfig:test_SetRateLimiterConfig_Success() (gas: 38446) -RegistryModuleOwnerCustom_constructor:test_constructor_Revert() (gas: 36037) -RegistryModuleOwnerCustom_registerAdminViaGetCCIPAdmin:test_registerAdminViaGetCCIPAdmin_Revert() (gas: 19643) -RegistryModuleOwnerCustom_registerAdminViaGetCCIPAdmin:test_registerAdminViaGetCCIPAdmin_Success() (gas: 129930) -RegistryModuleOwnerCustom_registerAdminViaOwner:test_registerAdminViaOwner_Revert() (gas: 19457) -RegistryModuleOwnerCustom_registerAdminViaOwner:test_registerAdminViaOwner_Success() (gas: 129743) +RMNHome:test() (gas: 254) +RMN_constructor:test_Constructor_Success() (gas: 63037) +RMN_getRecordedCurseRelatedOps:test_OpsPostDeployment() (gas: 24609) +RMN_lazyVoteToCurseUpdate_Benchmark:test_VoteToCurseLazilyRetain3VotersUponConfigChange_gas() (gas: 159340) +RMN_ownerUnbless:test_Unbless_Success() (gas: 103665) +RMN_ownerUnvoteToCurse:test_CanBlessAndCurseAfterGlobalCurseIsLifted() (gas: 527240) +RMN_ownerUnvoteToCurse:test_IsIdempotent() (gas: 461028) +RMN_ownerUnvoteToCurse:test_NonOwner_Revert() (gas: 25696) +RMN_ownerUnvoteToCurse:test_OwnerUnvoteToCurseSuccess_gas() (gas: 402269) +RMN_ownerUnvoteToCurse:test_UnknownVoter_Revert() (gas: 37341) +RMN_ownerUnvoteToCurse_Benchmark:test_OwnerUnvoteToCurse_1Voter_LiftsCurse_gas() (gas: 310729) +RMN_permaBlessing:test_PermaBlessing() (gas: 234032) +RMN_setConfig:test_BlessVoterIsZeroAddress_Revert() (gas: 19944) +RMN_setConfig:test_EitherThresholdIsZero_Revert() (gas: 29093) +RMN_setConfig:test_NonOwner_Revert() (gas: 19180) +RMN_setConfig:test_RepeatedAddress_Revert() (gas: 24182) +RMN_setConfig:test_SetConfigSuccess_gas() (gas: 121383) +RMN_setConfig:test_TotalWeightsSmallerThanEachThreshold_Revert() (gas: 42230) +RMN_setConfig:test_VoteToBlessByEjectedVoter_Revert() (gas: 150092) +RMN_setConfig:test_VotersLengthIsZero_Revert() (gas: 13777) +RMN_setConfig:test_WeightIsZeroAddress_Revert() (gas: 20193) +RMN_setConfig_Benchmark_1:test_SetConfig_7Voters_gas() (gas: 699447) +RMN_setConfig_Benchmark_2:test_ResetConfig_7Voters_gas() (gas: 262912) +RMN_unvoteToCurse:test_InvalidCursesHash() (gas: 29467) +RMN_unvoteToCurse:test_OwnerSkips() (gas: 38039) +RMN_unvoteToCurse:test_OwnerSucceeds() (gas: 69773) +RMN_unvoteToCurse:test_UnauthorizedVoter() (gas: 59241) +RMN_unvoteToCurse:test_ValidCursesHash() (gas: 66142) +RMN_unvoteToCurse:test_VotersCantLiftCurseButOwnerCan() (gas: 729679) +RMN_voteToBless:test_Curse_Revert() (gas: 496801) +RMN_voteToBless:test_IsAlreadyBlessed_Revert() (gas: 147850) +RMN_voteToBless:test_RootSuccess() (gas: 745652) +RMN_voteToBless:test_SenderAlreadyVoted_Revert() (gas: 123496) +RMN_voteToBless:test_UnauthorizedVoter_Revert() (gas: 19508) +RMN_voteToBless_Benchmark:test_1RootSuccess_gas() (gas: 49435) +RMN_voteToBless_Benchmark:test_3RootSuccess_gas() (gas: 110271) +RMN_voteToBless_Benchmark:test_5RootSuccess_gas() (gas: 171045) +RMN_voteToBless_Blessed_Benchmark:test_1RootSuccessBecameBlessed_gas() (gas: 34790) +RMN_voteToBless_Blessed_Benchmark:test_1RootSuccess_gas() (gas: 32338) +RMN_voteToBless_Blessed_Benchmark:test_3RootSuccess_gas() (gas: 93196) +RMN_voteToBless_Blessed_Benchmark:test_5RootSuccess_gas() (gas: 153948) +RMN_voteToCurse:test_CurseOnlyWhenThresholdReached_Success() (gas: 1748779) +RMN_voteToCurse:test_EmptySubjects_Revert() (gas: 15996) +RMN_voteToCurse:test_EvenIfAlreadyCursed_Success() (gas: 564086) +RMN_voteToCurse:test_OwnerCanCurseAndUncurse() (gas: 471086) +RMN_voteToCurse:test_RepeatedSubject_Revert() (gas: 151480) +RMN_voteToCurse:test_ReusedCurseId_Revert() (gas: 155411) +RMN_voteToCurse:test_UnauthorizedVoter_Revert() (gas: 14537) +RMN_voteToCurse:test_VoteToCurse_NoCurse_Success() (gas: 203894) +RMN_voteToCurse:test_VoteToCurse_YesCurse_Success() (gas: 495649) +RMN_voteToCurse_2:test_VotesAreDroppedIfSubjectIsNotCursedDuringConfigChange() (gas: 417003) +RMN_voteToCurse_2:test_VotesAreRetainedIfSubjectIsCursedDuringConfigChange() (gas: 1339323) +RMN_voteToCurse_Benchmark_1:test_VoteToCurse_NewSubject_NewVoter_NoCurse_gas() (gas: 146898) +RMN_voteToCurse_Benchmark_1:test_VoteToCurse_NewSubject_NewVoter_YesCurse_gas() (gas: 171152) +RMN_voteToCurse_Benchmark_2:test_VoteToCurse_OldSubject_NewVoter_NoCurse_gas() (gas: 126446) +RMN_voteToCurse_Benchmark_2:test_VoteToCurse_OldSubject_OldVoter_NoCurse_gas() (gas: 102691) +RMN_voteToCurse_Benchmark_3:test_VoteToCurse_OldSubject_NewVoter_YesCurse_gas() (gas: 151187) +RateLimiter_constructor:test_Constructor_Success() (gas: 22964) +RateLimiter_consume:test_AggregateValueMaxCapacityExceeded_Revert() (gas: 19839) +RateLimiter_consume:test_AggregateValueRateLimitReached_Revert() (gas: 28311) +RateLimiter_consume:test_ConsumeAggregateValue_Success() (gas: 39405) +RateLimiter_consume:test_ConsumeTokens_Success() (gas: 21919) +RateLimiter_consume:test_ConsumeUnlimited_Success() (gas: 57402) +RateLimiter_consume:test_ConsumingMoreThanUint128_Revert() (gas: 19531) +RateLimiter_consume:test_RateLimitReachedOverConsecutiveBlocks_Revert() (gas: 33020) +RateLimiter_consume:test_Refill_Success() (gas: 48170) +RateLimiter_consume:test_TokenMaxCapacityExceeded_Revert() (gas: 22450) +RateLimiter_consume:test_TokenRateLimitReached_Revert() (gas: 31057) +RateLimiter_currentTokenBucketState:test_CurrentTokenBucketState_Success() (gas: 49681) +RateLimiter_currentTokenBucketState:test_Refill_Success() (gas: 63750) +RateLimiter_setTokenBucketConfig:test_SetRateLimiterConfig_Success() (gas: 48188) +RegistryModuleOwnerCustom_constructor:test_constructor_Revert() (gas: 36711) +RegistryModuleOwnerCustom_registerAdminViaGetCCIPAdmin:test_registerAdminViaGetCCIPAdmin_Revert() (gas: 22517) +RegistryModuleOwnerCustom_registerAdminViaGetCCIPAdmin:test_registerAdminViaGetCCIPAdmin_Success() (gas: 137341) +RegistryModuleOwnerCustom_registerAdminViaOwner:test_registerAdminViaOwner_Revert() (gas: 22359) +RegistryModuleOwnerCustom_registerAdminViaOwner:test_registerAdminViaOwner_Success() (gas: 137182) Router_applyRampUpdates:test_OffRampMismatch_Revert() (gas: 89306) Router_applyRampUpdates:test_OffRampUpdatesWithRouting() (gas: 10648972) Router_applyRampUpdates:test_OnRampDisable() (gas: 55971) @@ -906,61 +906,61 @@ Router_setWrappedNative:test_OnlyOwner_Revert() (gas: 10986) SelfFundedPingPong_ccipReceive:test_FundingIfNotANop_Revert() (gas: 55572) SelfFundedPingPong_ccipReceive:test_Funding_Success() (gas: 420162) SelfFundedPingPong_setCountIncrBeforeFunding:test_setCountIncrBeforeFunding() (gas: 20169) -TokenAdminRegistry_acceptAdminRole:test_acceptAdminRole_OnlyPendingAdministrator_Revert() (gas: 51109) -TokenAdminRegistry_acceptAdminRole:test_acceptAdminRole_Success() (gas: 43956) -TokenAdminRegistry_addRegistryModule:test_addRegistryModule_OnlyOwner_Revert() (gas: 12641) -TokenAdminRegistry_addRegistryModule:test_addRegistryModule_Success() (gas: 67038) -TokenAdminRegistry_getAllConfiguredTokens:test_getAllConfiguredTokens_outOfBounds_Success() (gas: 11350) -TokenAdminRegistry_getPool:test_getPool_Success() (gas: 17596) -TokenAdminRegistry_getPools:test_getPools_Success() (gas: 39920) -TokenAdminRegistry_isAdministrator:test_isAdministrator_Success() (gas: 105946) -TokenAdminRegistry_proposeAdministrator:test_proposeAdministrator_AlreadyRegistered_Revert() (gas: 104067) -TokenAdminRegistry_proposeAdministrator:test_proposeAdministrator_OnlyRegistryModule_Revert() (gas: 15499) -TokenAdminRegistry_proposeAdministrator:test_proposeAdministrator_ZeroAddress_Revert() (gas: 15044) -TokenAdminRegistry_proposeAdministrator:test_proposeAdministrator_module_Success() (gas: 112572) -TokenAdminRegistry_proposeAdministrator:test_proposeAdministrator_owner_Success() (gas: 107686) -TokenAdminRegistry_proposeAdministrator:test_proposeAdministrator_reRegisterWhileUnclaimed_Success() (gas: 115710) -TokenAdminRegistry_removeRegistryModule:test_removeRegistryModule_OnlyOwner_Revert() (gas: 12597) -TokenAdminRegistry_removeRegistryModule:test_removeRegistryModule_Success() (gas: 54495) -TokenAdminRegistry_setPool:test_setPool_InvalidTokenPoolToken_Revert() (gas: 19166) -TokenAdminRegistry_setPool:test_setPool_OnlyAdministrator_Revert() (gas: 18026) -TokenAdminRegistry_setPool:test_setPool_Success() (gas: 35961) -TokenAdminRegistry_setPool:test_setPool_ZeroAddressRemovesPool_Success() (gas: 30635) -TokenAdminRegistry_transferAdminRole:test_transferAdminRole_OnlyAdministrator_Revert() (gas: 18085) -TokenAdminRegistry_transferAdminRole:test_transferAdminRole_Success() (gas: 49390) +TokenAdminRegistry_acceptAdminRole:test_acceptAdminRole_OnlyPendingAdministrator_Revert() (gas: 58611) +TokenAdminRegistry_acceptAdminRole:test_acceptAdminRole_Success() (gas: 50532) +TokenAdminRegistry_addRegistryModule:test_addRegistryModule_OnlyOwner_Revert() (gas: 14159) +TokenAdminRegistry_addRegistryModule:test_addRegistryModule_Success() (gas: 70293) +TokenAdminRegistry_getAllConfiguredTokens:test_getAllConfiguredTokens_outOfBounds_Success() (gas: 12680) +TokenAdminRegistry_getPool:test_getPool_Success() (gas: 18649) +TokenAdminRegistry_getPools:test_getPools_Success() (gas: 48161) +TokenAdminRegistry_isAdministrator:test_isAdministrator_Success() (gas: 113861) +TokenAdminRegistry_proposeAdministrator:test_proposeAdministrator_AlreadyRegistered_Revert() (gas: 109470) +TokenAdminRegistry_proposeAdministrator:test_proposeAdministrator_OnlyRegistryModule_Revert() (gas: 17535) +TokenAdminRegistry_proposeAdministrator:test_proposeAdministrator_ZeroAddress_Revert() (gas: 16768) +TokenAdminRegistry_proposeAdministrator:test_proposeAdministrator_module_Success() (gas: 123148) +TokenAdminRegistry_proposeAdministrator:test_proposeAdministrator_owner_Success() (gas: 114227) +TokenAdminRegistry_proposeAdministrator:test_proposeAdministrator_reRegisterWhileUnclaimed_Success() (gas: 123889) +TokenAdminRegistry_removeRegistryModule:test_removeRegistryModule_OnlyOwner_Revert() (gas: 14115) +TokenAdminRegistry_removeRegistryModule:test_removeRegistryModule_Success() (gas: 58226) +TokenAdminRegistry_setPool:test_setPool_InvalidTokenPoolToken_Revert() (gas: 21992) +TokenAdminRegistry_setPool:test_setPool_OnlyAdministrator_Revert() (gas: 20133) +TokenAdminRegistry_setPool:test_setPool_Success() (gas: 41047) +TokenAdminRegistry_setPool:test_setPool_ZeroAddressRemovesPool_Success() (gas: 35795) +TokenAdminRegistry_transferAdminRole:test_transferAdminRole_OnlyAdministrator_Revert() (gas: 20198) +TokenAdminRegistry_transferAdminRole:test_transferAdminRole_Success() (gas: 54721) TokenPoolAndProxy:test_lockOrBurn_burnMint_Success() (gas: 5945631) TokenPoolAndProxy:test_lockOrBurn_burnWithFromMint_Success() (gas: 5977107) TokenPoolAndProxy:test_lockOrBurn_lockRelease_Success() (gas: 6179838) TokenPoolAndProxy:test_setPreviousPool_Success() (gas: 3334200) TokenPoolAndProxyMigration:test_tokenPoolMigration_Success_1_2() (gas: 6792268) TokenPoolAndProxyMigration:test_tokenPoolMigration_Success_1_4() (gas: 7024950) -TokenPoolWithAllowList_applyAllowListUpdates:test_AllowListNotEnabled_Revert() (gas: 2100002) -TokenPoolWithAllowList_applyAllowListUpdates:test_OnlyOwner_Revert() (gas: 12101) -TokenPoolWithAllowList_applyAllowListUpdates:test_SetAllowListSkipsZero_Success() (gas: 23464) -TokenPoolWithAllowList_applyAllowListUpdates:test_SetAllowList_Success() (gas: 177802) -TokenPoolWithAllowList_getAllowList:test_GetAllowList_Success() (gas: 23740) -TokenPoolWithAllowList_getAllowListEnabled:test_GetAllowListEnabled_Success() (gas: 8363) -TokenPoolWithAllowList_setRouter:test_SetRouter_Success() (gas: 24843) -TokenPool_applyChainUpdates:test_applyChainUpdates_DisabledNonZeroRateLimit_Revert() (gas: 271551) -TokenPool_applyChainUpdates:test_applyChainUpdates_InvalidRateLimitRate_Revert() (gas: 542134) -TokenPool_applyChainUpdates:test_applyChainUpdates_NonExistentChain_Revert() (gas: 18449) -TokenPool_applyChainUpdates:test_applyChainUpdates_OnlyCallableByOwner_Revert() (gas: 11391) -TokenPool_applyChainUpdates:test_applyChainUpdates_Success() (gas: 477675) -TokenPool_applyChainUpdates:test_applyChainUpdates_ZeroAddressNotAllowed_Revert() (gas: 157320) -TokenPool_constructor:test_ZeroAddressNotAllowed_Revert() (gas: 70594) -TokenPool_constructor:test_immutableFields_Success() (gas: 20544) -TokenPool_getRemotePool:test_getRemotePool_Success() (gas: 274133) -TokenPool_onlyOffRamp:test_CallerIsNotARampOnRouter_Revert() (gas: 277110) -TokenPool_onlyOffRamp:test_ChainNotAllowed_Revert() (gas: 289682) -TokenPool_onlyOffRamp:test_onlyOffRamp_Success() (gas: 349912) -TokenPool_onlyOnRamp:test_CallerIsNotARampOnRouter_Revert() (gas: 276850) -TokenPool_onlyOnRamp:test_ChainNotAllowed_Revert() (gas: 253710) -TokenPool_onlyOnRamp:test_onlyOnRamp_Success() (gas: 304962) -TokenPool_setChainRateLimiterConfig:test_NonExistentChain_Revert() (gas: 17142) -TokenPool_setChainRateLimiterConfig:test_OnlyOwnerOrRateLimitAdmin_Revert() (gas: 15137) -TokenPool_setRemotePool:test_setRemotePool_NonExistentChain_Reverts() (gas: 15653) -TokenPool_setRemotePool:test_setRemotePool_OnlyOwner_Reverts() (gas: 13201) -TokenPool_setRemotePool:test_setRemotePool_Success() (gas: 282083) +TokenPoolWithAllowList_applyAllowListUpdates:test_AllowListNotEnabled_Revert() (gas: 3418174) +TokenPoolWithAllowList_applyAllowListUpdates:test_OnlyOwner_Revert() (gas: 13392) +TokenPoolWithAllowList_applyAllowListUpdates:test_SetAllowListSkipsZero_Success() (gas: 26742) +TokenPoolWithAllowList_applyAllowListUpdates:test_SetAllowList_Success() (gas: 189536) +TokenPoolWithAllowList_getAllowList:test_GetAllowList_Success() (gas: 25742) +TokenPoolWithAllowList_getAllowListEnabled:test_GetAllowListEnabled_Success() (gas: 8788) +TokenPoolWithAllowList_setRouter:test_SetRouter_Success() (gas: 28100) +TokenPool_applyChainUpdates:test_applyChainUpdates_DisabledNonZeroRateLimit_Revert() (gas: 282666) +TokenPool_applyChainUpdates:test_applyChainUpdates_InvalidRateLimitRate_Revert() (gas: 580050) +TokenPool_applyChainUpdates:test_applyChainUpdates_NonExistentChain_Revert() (gas: 22750) +TokenPool_applyChainUpdates:test_applyChainUpdates_OnlyCallableByOwner_Revert() (gas: 12333) +TokenPool_applyChainUpdates:test_applyChainUpdates_Success() (gas: 534354) +TokenPool_applyChainUpdates:test_applyChainUpdates_ZeroAddressNotAllowed_Revert() (gas: 165350) +TokenPool_constructor:test_ZeroAddressNotAllowed_Revert() (gas: 74247) +TokenPool_constructor:test_immutableFields_Success() (gas: 23251) +TokenPool_getRemotePool:test_getRemotePool_Success() (gas: 285082) +TokenPool_onlyOffRamp:test_CallerIsNotARampOnRouter_Revert() (gas: 287212) +TokenPool_onlyOffRamp:test_ChainNotAllowed_Revert() (gas: 305616) +TokenPool_onlyOffRamp:test_onlyOffRamp_Success() (gas: 361142) +TokenPool_onlyOnRamp:test_CallerIsNotARampOnRouter_Revert() (gas: 286591) +TokenPool_onlyOnRamp:test_ChainNotAllowed_Revert() (gas: 269389) +TokenPool_onlyOnRamp:test_onlyOnRamp_Success() (gas: 315814) +TokenPool_setChainRateLimiterConfig:test_NonExistentChain_Revert() (gas: 19578) +TokenPool_setChainRateLimiterConfig:test_OnlyOwnerOrRateLimitAdmin_Revert() (gas: 17926) +TokenPool_setRemotePool:test_setRemotePool_NonExistentChain_Reverts() (gas: 17612) +TokenPool_setRemotePool:test_setRemotePool_OnlyOwner_Reverts() (gas: 15337) +TokenPool_setRemotePool:test_setRemotePool_Success() (gas: 293732) TokenProxy_ccipSend:test_CcipSendGasShouldBeZero_Revert() (gas: 17121) TokenProxy_ccipSend:test_CcipSendInsufficientAllowance_Revert() (gas: 136330) TokenProxy_ccipSend:test_CcipSendInvalidToken_Revert() (gas: 15931) @@ -972,14 +972,14 @@ TokenProxy_getFee:test_GetFeeGasShouldBeZero_Revert() (gas: 16839) TokenProxy_getFee:test_GetFeeInvalidToken_Revert() (gas: 12670) TokenProxy_getFee:test_GetFeeNoDataAllowed_Revert() (gas: 15864) TokenProxy_getFee:test_GetFee_Success() (gas: 86882) -USDCTokenPool__validateMessage:test_ValidateInvalidMessage_Revert() (gas: 25407) -USDCTokenPool_lockOrBurn:test_CallerIsNotARampOnRouter_Revert() (gas: 35364) -USDCTokenPool_lockOrBurn:test_LockOrBurnWithAllowList_Revert() (gas: 30106) -USDCTokenPool_lockOrBurn:test_LockOrBurn_Success() (gas: 133143) -USDCTokenPool_lockOrBurn:test_UnknownDomain_Revert() (gas: 477468) -USDCTokenPool_releaseOrMint:test_ReleaseOrMintRealTx_Success() (gas: 268219) -USDCTokenPool_releaseOrMint:test_TokenMaxCapacityExceeded_Revert() (gas: 50718) -USDCTokenPool_releaseOrMint:test_UnlockingUSDCFailed_Revert() (gas: 98636) -USDCTokenPool_setDomains:test_InvalidDomain_Revert() (gas: 66174) -USDCTokenPool_setDomains:test_OnlyOwner_Revert() (gas: 11339) -USDCTokenPool_supportsInterface:test_SupportsInterface_Success() (gas: 9876) \ No newline at end of file +USDCTokenPool__validateMessage:test_ValidateInvalidMessage_Revert() (gas: 37856) +USDCTokenPool_lockOrBurn:test_CallerIsNotARampOnRouter_Revert() (gas: 40114) +USDCTokenPool_lockOrBurn:test_LockOrBurnWithAllowList_Revert() (gas: 34440) +USDCTokenPool_lockOrBurn:test_LockOrBurn_Success() (gas: 147394) +USDCTokenPool_lockOrBurn:test_UnknownDomain_Revert() (gas: 546719) +USDCTokenPool_releaseOrMint:test_ReleaseOrMintRealTx_Success() (gas: 326433) +USDCTokenPool_releaseOrMint:test_TokenMaxCapacityExceeded_Revert() (gas: 59047) +USDCTokenPool_releaseOrMint:test_UnlockingUSDCFailed_Revert() (gas: 112325) +USDCTokenPool_setDomains:test_InvalidDomain_Revert() (gas: 74539) +USDCTokenPool_setDomains:test_OnlyOwner_Revert() (gas: 12298) +USDCTokenPool_supportsInterface:test_SupportsInterface_Success() (gas: 11479) \ No newline at end of file diff --git a/core/gethwrappers/ccip/generation/generated-wrapper-dependency-versions-do-not-edit.txt b/core/gethwrappers/ccip/generation/generated-wrapper-dependency-versions-do-not-edit.txt index d327839ed5..d1b513c8ae 100644 --- a/core/gethwrappers/ccip/generation/generated-wrapper-dependency-versions-do-not-edit.txt +++ b/core/gethwrappers/ccip/generation/generated-wrapper-dependency-versions-do-not-edit.txt @@ -23,7 +23,7 @@ multi_aggregate_rate_limiter: ../../../contracts/solc/v0.8.24/MultiAggregateRate multi_ocr3_helper: ../../../contracts/solc/v0.8.24/MultiOCR3Helper/MultiOCR3Helper.abi ../../../contracts/solc/v0.8.24/MultiOCR3Helper/MultiOCR3Helper.bin 6b56e0114a4d50797d30a34aecc2641ef340451d0c3fcb9d729bba4df2435122 nonce_manager: ../../../contracts/solc/v0.8.24/NonceManager/NonceManager.abi ../../../contracts/solc/v0.8.24/NonceManager/NonceManager.bin 6f64e1083b356c06ee66b9138e398b9c97a4cd3e8c9ec38cf3010cebc79af536 ocr3_config_encoder: ../../../contracts/solc/v0.8.24/IOCR3ConfigEncoder/IOCR3ConfigEncoder.abi ../../../contracts/solc/v0.8.24/IOCR3ConfigEncoder/IOCR3ConfigEncoder.bin 9254b35a86f00fde7b7193a033ca58f6521a66e87b9cf9da6ce5660082e79f5d -offramp: ../../../contracts/solc/v0.8.24/OffRamp/OffRamp.abi ../../../contracts/solc/v0.8.24/OffRamp/OffRamp.bin 741b4b66670c06c1b09408ec6706656c46e4c98b227111d99f80940cc5faad42 +offramp: ../../../contracts/solc/v0.8.24/OffRamp/OffRamp.abi ../../../contracts/solc/v0.8.24/OffRamp/OffRamp.bin a8682c5301801ceca819e6e11d7f6094109d11c92df8300a859b2775ece5eb19 onramp: ../../../contracts/solc/v0.8.24/OnRamp/OnRamp.abi ../../../contracts/solc/v0.8.24/OnRamp/OnRamp.bin 594439983f963f4158f9c5009dee7cba4ee56be61900bb1d5b9108eaeac3d6a6 ping_pong_demo: ../../../contracts/solc/v0.8.24/PingPongDemo/PingPongDemo.abi ../../../contracts/solc/v0.8.24/PingPongDemo/PingPongDemo.bin c1c2f8a65c7ffd971899cae7fe62f2da57d09e936151e2b92163c4bebe699d6b price_registry: ../../../contracts/solc/v0.8.24/PriceRegistry/PriceRegistry.abi ../../../contracts/solc/v0.8.24/PriceRegistry/PriceRegistry.bin e7781d600c1bb7aa4620106af7f6e146a109b97f4cb6a7d06c9e15773340ecb2 From 9977ca4cae45a8a3eabfa74d7dc2dbce8d75470c Mon Sep 17 00:00:00 2001 From: Ryan <80392855+RayXpub@users.noreply.github.com> Date: Wed, 11 Sep 2024 12:27:58 +0400 Subject: [PATCH 06/19] chore: fmt --- contracts/src/v0.8/ccip/offRamp/OffRamp.sol | 4 ++-- contracts/src/v0.8/ccip/test/e2e/MultiRampsEnd2End.sol | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/contracts/src/v0.8/ccip/offRamp/OffRamp.sol b/contracts/src/v0.8/ccip/offRamp/OffRamp.sol index fb6e96d41c..e4f47f4cd2 100644 --- a/contracts/src/v0.8/ccip/offRamp/OffRamp.sol +++ b/contracts/src/v0.8/ccip/offRamp/OffRamp.sol @@ -611,7 +611,7 @@ contract OffRamp is ITypeAndVersion, MultiOCR3Base { if (commitReport.merkleRoots.length == 0) revert StaleCommitReport(); } } - + for (uint256 i = 0; i < commitReport.merkleRoots.length; ++i) { Internal.MerkleRoot memory root = commitReport.merkleRoots[i]; uint64 sourceChainSelector = root.sourceChainSelector; @@ -621,7 +621,7 @@ contract OffRamp is ITypeAndVersion, MultiOCR3Base { } SourceChainConfig storage sourceChainConfig = _getEnabledSourceChainConfig(sourceChainSelector); - bytes memory onRamp = sourceChainConfig.onRamp; + bytes memory onRamp = sourceChainConfig.onRamp; if (keccak256(root.onRampAddress) != keccak256(onRamp)) { revert InvalidOnRamp(root.onRampAddress, onRamp); diff --git a/contracts/src/v0.8/ccip/test/e2e/MultiRampsEnd2End.sol b/contracts/src/v0.8/ccip/test/e2e/MultiRampsEnd2End.sol index 2ae10b9293..4220c05b59 100644 --- a/contracts/src/v0.8/ccip/test/e2e/MultiRampsEnd2End.sol +++ b/contracts/src/v0.8/ccip/test/e2e/MultiRampsEnd2End.sol @@ -156,7 +156,7 @@ contract MultiRampsE2E is OnRampSetup, OffRampSetup { roots[0] = Internal.MerkleRoot({ sourceChainSelector: SOURCE_CHAIN_SELECTOR, onRampAddress: abi.encode(address(s_onRamp)), - minSeqNr: messages1[0].header.sequenceNumber, + minSeqNr: messages1[0].header.sequenceNumber, maxSeqNr: messages1[1].header.sequenceNumber, merkleRoot: merkleRoots[0] }); From da09dc45afab8e581a0b7ad038ea9d87423b895e Mon Sep 17 00:00:00 2001 From: Ryan <80392855+RayXpub@users.noreply.github.com> Date: Wed, 11 Sep 2024 12:52:49 +0400 Subject: [PATCH 07/19] chore: update gas snapshot --- contracts/gas-snapshots/ccip.gas-snapshot | 568 +++++++++++----------- 1 file changed, 284 insertions(+), 284 deletions(-) diff --git a/contracts/gas-snapshots/ccip.gas-snapshot b/contracts/gas-snapshots/ccip.gas-snapshot index c003ff1ffa..c91cd5d9f3 100644 --- a/contracts/gas-snapshots/ccip.gas-snapshot +++ b/contracts/gas-snapshots/ccip.gas-snapshot @@ -1,10 +1,10 @@ -ARMProxyStandaloneTest:test_ARMCallEmptyContractRevert() (gas: 20673) -ARMProxyStandaloneTest:test_Constructor() (gas: 543485) -ARMProxyStandaloneTest:test_SetARM() (gas: 18216) -ARMProxyStandaloneTest:test_SetARMzero() (gas: 12144) -ARMProxyTest:test_ARMCallRevertReasonForwarded() (gas: 49764) -ARMProxyTest:test_ARMIsBlessed_Success() (gas: 39781) -ARMProxyTest:test_ARMIsCursed_Success() (gas: 51846) +ARMProxyStandaloneTest:test_ARMCallEmptyContractRevert() (gas: 19675) +ARMProxyStandaloneTest:test_Constructor() (gas: 315049) +ARMProxyStandaloneTest:test_SetARM() (gas: 16581) +ARMProxyStandaloneTest:test_SetARMzero() (gas: 11267) +ARMProxyTest:test_ARMCallRevertReasonForwarded() (gas: 47868) +ARMProxyTest:test_ARMIsBlessed_Success() (gas: 36334) +ARMProxyTest:test_ARMIsCursed_Success() (gas: 49833) AggregateTokenLimiter_constructor:test_Constructor_Success() (gas: 26992) AggregateTokenLimiter_getTokenBucket:test_GetTokenBucket_Success() (gas: 19835) AggregateTokenLimiter_getTokenBucket:test_Refill_Success() (gas: 41499) @@ -19,21 +19,21 @@ AggregateTokenLimiter_setAdmin:test_Owner_Success() (gas: 18998) AggregateTokenLimiter_setRateLimiterConfig:test_OnlyOnlyCallableByAdminOrOwner_Revert() (gas: 17510) AggregateTokenLimiter_setRateLimiterConfig:test_Owner_Success() (gas: 30230) AggregateTokenLimiter_setRateLimiterConfig:test_TokenLimitAdmin_Success() (gas: 32244) -BurnFromMintTokenPool_lockOrBurn:test_ChainNotAllowed_Revert() (gas: 34256) -BurnFromMintTokenPool_lockOrBurn:test_PoolBurnRevertNotHealthy_Revert() (gas: 60604) -BurnFromMintTokenPool_lockOrBurn:test_PoolBurn_Success() (gas: 293700) -BurnFromMintTokenPool_lockOrBurn:test_Setup_Success() (gas: 28203) -BurnMintTokenPool_lockOrBurn:test_ChainNotAllowed_Revert() (gas: 31296) -BurnMintTokenPool_lockOrBurn:test_PoolBurnRevertNotHealthy_Revert() (gas: 60604) -BurnMintTokenPool_lockOrBurn:test_PoolBurn_Success() (gas: 291204) -BurnMintTokenPool_lockOrBurn:test_Setup_Success() (gas: 20610) -BurnMintTokenPool_releaseOrMint:test_ChainNotAllowed_Revert() (gas: 34256) -BurnMintTokenPool_releaseOrMint:test_PoolMintNotHealthy_Revert() (gas: 63377) -BurnMintTokenPool_releaseOrMint:test_PoolMint_Success() (gas: 122166) -BurnWithFromMintTokenPool_lockOrBurn:test_ChainNotAllowed_Revert() (gas: 34256) -BurnWithFromMintTokenPool_lockOrBurn:test_PoolBurnRevertNotHealthy_Revert() (gas: 60604) -BurnWithFromMintTokenPool_lockOrBurn:test_PoolBurn_Success() (gas: 293726) -BurnWithFromMintTokenPool_lockOrBurn:test_Setup_Success() (gas: 28207) +BurnFromMintTokenPool_lockOrBurn:test_ChainNotAllowed_Revert() (gas: 28779) +BurnFromMintTokenPool_lockOrBurn:test_PoolBurnRevertNotHealthy_Revert() (gas: 55124) +BurnFromMintTokenPool_lockOrBurn:test_PoolBurn_Success() (gas: 243680) +BurnFromMintTokenPool_lockOrBurn:test_Setup_Success() (gas: 23947) +BurnMintTokenPool_lockOrBurn:test_ChainNotAllowed_Revert() (gas: 27546) +BurnMintTokenPool_lockOrBurn:test_PoolBurnRevertNotHealthy_Revert() (gas: 55130) +BurnMintTokenPool_lockOrBurn:test_PoolBurn_Success() (gas: 241573) +BurnMintTokenPool_lockOrBurn:test_Setup_Success() (gas: 17677) +BurnMintTokenPool_releaseOrMint:test_ChainNotAllowed_Revert() (gas: 28775) +BurnMintTokenPool_releaseOrMint:test_PoolMintNotHealthy_Revert() (gas: 56211) +BurnMintTokenPool_releaseOrMint:test_PoolMint_Success() (gas: 112343) +BurnWithFromMintTokenPool_lockOrBurn:test_ChainNotAllowed_Revert() (gas: 28779) +BurnWithFromMintTokenPool_lockOrBurn:test_PoolBurnRevertNotHealthy_Revert() (gas: 55124) +BurnWithFromMintTokenPool_lockOrBurn:test_PoolBurn_Success() (gas: 243707) +BurnWithFromMintTokenPool_lockOrBurn:test_Setup_Success() (gas: 23951) CCIPClientExample_sanity:test_ImmutableExamples_Success() (gas: 2096747) CCIPConfigSetup:test_getCapabilityConfiguration_Success() (gas: 9539) CCIPConfig_ConfigStateMachine:test__computeConfigDigest_Success() (gas: 66000) @@ -301,27 +301,27 @@ EVM2EVMOnRamp_withdrawNonLinkFees:test_NonOwnerOrAdmin_Revert() (gas: 15275) EVM2EVMOnRamp_withdrawNonLinkFees:test_SettlingBalance_Success() (gas: 272083) EVM2EVMOnRamp_withdrawNonLinkFees:test_WithdrawNonLinkFees_Success() (gas: 53458) EVM2EVMOnRamp_withdrawNonLinkFees:test_WithdrawToZeroAddress_Revert() (gas: 12830) -EtherSenderReceiverTest_ccipReceive:test_ccipReceive_fallbackToWethTransfer() (gas: 103814) -EtherSenderReceiverTest_ccipReceive:test_ccipReceive_happyPath() (gas: 54732) -EtherSenderReceiverTest_ccipReceive:test_ccipReceive_wrongToken() (gas: 21881) -EtherSenderReceiverTest_ccipReceive:test_ccipReceive_wrongTokenAmount() (gas: 20674) -EtherSenderReceiverTest_ccipSend:test_ccipSend_reverts_insufficientFee_feeToken() (gas: 116467) -EtherSenderReceiverTest_ccipSend:test_ccipSend_reverts_insufficientFee_native() (gas: 91360) -EtherSenderReceiverTest_ccipSend:test_ccipSend_reverts_insufficientFee_weth() (gas: 116371) -EtherSenderReceiverTest_ccipSend:test_ccipSend_success_feeToken() (gas: 167929) -EtherSenderReceiverTest_ccipSend:test_ccipSend_success_native() (gas: 98200) -EtherSenderReceiverTest_ccipSend:test_ccipSend_success_nativeExcess() (gas: 98574) -EtherSenderReceiverTest_ccipSend:test_ccipSend_success_weth() (gas: 117880) -EtherSenderReceiverTest_constructor:test_constructor() (gas: 19659) -EtherSenderReceiverTest_getFee:test_getFee() (gas: 41207) -EtherSenderReceiverTest_validateFeeToken:test_validateFeeToken_reverts_feeToken_tokenAmountNotEqualToMsgValue() (gas: 22872) -EtherSenderReceiverTest_validateFeeToken:test_validateFeeToken_valid_feeToken() (gas: 18390) -EtherSenderReceiverTest_validateFeeToken:test_validateFeeToken_valid_native() (gas: 18420) -EtherSenderReceiverTest_validatedMessage:test_validatedMessage_dataOverwrittenToMsgSender() (gas: 34950) -EtherSenderReceiverTest_validatedMessage:test_validatedMessage_emptyDataOverwrittenToMsgSender() (gas: 34697) -EtherSenderReceiverTest_validatedMessage:test_validatedMessage_invalidTokenAmounts() (gas: 23796) -EtherSenderReceiverTest_validatedMessage:test_validatedMessage_tokenOverwrittenToWeth() (gas: 34674) -EtherSenderReceiverTest_validatedMessage:test_validatedMessage_validMessage_extraArgs() (gas: 36305) +EtherSenderReceiverTest_ccipReceive:test_ccipReceive_fallbackToWethTransfer() (gas: 96892) +EtherSenderReceiverTest_ccipReceive:test_ccipReceive_happyPath() (gas: 49770) +EtherSenderReceiverTest_ccipReceive:test_ccipReceive_wrongToken() (gas: 17423) +EtherSenderReceiverTest_ccipReceive:test_ccipReceive_wrongTokenAmount() (gas: 15716) +EtherSenderReceiverTest_ccipSend:test_ccipSend_reverts_insufficientFee_feeToken() (gas: 99831) +EtherSenderReceiverTest_ccipSend:test_ccipSend_reverts_insufficientFee_native() (gas: 76099) +EtherSenderReceiverTest_ccipSend:test_ccipSend_reverts_insufficientFee_weth() (gas: 99853) +EtherSenderReceiverTest_ccipSend:test_ccipSend_success_feeToken() (gas: 144833) +EtherSenderReceiverTest_ccipSend:test_ccipSend_success_native() (gas: 80262) +EtherSenderReceiverTest_ccipSend:test_ccipSend_success_nativeExcess() (gas: 80449) +EtherSenderReceiverTest_ccipSend:test_ccipSend_success_weth() (gas: 95902) +EtherSenderReceiverTest_constructor:test_constructor() (gas: 17535) +EtherSenderReceiverTest_getFee:test_getFee() (gas: 27316) +EtherSenderReceiverTest_validateFeeToken:test_validateFeeToken_reverts_feeToken_tokenAmountNotEqualToMsgValue() (gas: 20363) +EtherSenderReceiverTest_validateFeeToken:test_validateFeeToken_valid_feeToken() (gas: 16718) +EtherSenderReceiverTest_validateFeeToken:test_validateFeeToken_valid_native() (gas: 16657) +EtherSenderReceiverTest_validatedMessage:test_validatedMessage_dataOverwrittenToMsgSender() (gas: 25415) +EtherSenderReceiverTest_validatedMessage:test_validatedMessage_emptyDataOverwrittenToMsgSender() (gas: 25265) +EtherSenderReceiverTest_validatedMessage:test_validatedMessage_invalidTokenAmounts() (gas: 17907) +EtherSenderReceiverTest_validatedMessage:test_validatedMessage_tokenOverwrittenToWeth() (gas: 25287) +EtherSenderReceiverTest_validatedMessage:test_validatedMessage_validMessage_extraArgs() (gas: 26316) FeeQuoter_applyDestChainConfigUpdates:test_InvalidChainFamilySelector_Revert() (gas: 16509) FeeQuoter_applyDestChainConfigUpdates:test_InvalidDestChainConfigDestChainSelectorEqZero_Revert() (gas: 16423) FeeQuoter_applyDestChainConfigUpdates:test_applyDestChainConfigUpdatesDefaultTxGasLimitEqZero_Revert() (gas: 16465) @@ -426,28 +426,28 @@ FeeQuoter_validatePoolReturnData:test_InvalidEVMAddressDestToken_Revert() (gas: FeeQuoter_validatePoolReturnData:test_ProcessPoolReturnData_Success() (gas: 73306) FeeQuoter_validatePoolReturnData:test_SourceTokenDataTooLarge_Revert() (gas: 107855) FeeQuoter_validatePoolReturnData:test_TokenAmountArraysMismatching_Revert() (gas: 40106) -HybridUSDCTokenPoolMigrationTests:test_LockOrBurn_LocKReleaseMechanism_then_switchToPrimary_Success() (gas: 234573) -HybridUSDCTokenPoolMigrationTests:test_LockOrBurn_PrimaryMechanism_Success() (gas: 150728) -HybridUSDCTokenPoolMigrationTests:test_LockOrBurn_WhileMigrationPause_Revert() (gas: 113462) -HybridUSDCTokenPoolMigrationTests:test_LockOrBurn_onLockReleaseMechanism_Success() (gas: 154301) -HybridUSDCTokenPoolMigrationTests:test_MintOrRelease_OnLockReleaseMechanism_Success() (gas: 249477) -HybridUSDCTokenPoolMigrationTests:test_MintOrRelease_OnLockReleaseMechanism_then_switchToPrimary_Success() (gas: 525148) -HybridUSDCTokenPoolMigrationTests:test_MintOrRelease_incomingMessageWithPrimaryMechanism() (gas: 329165) -HybridUSDCTokenPoolMigrationTests:test_burnLockedUSDC_invalidPermissions_Revert() (gas: 41384) -HybridUSDCTokenPoolMigrationTests:test_cancelExistingCCTPMigrationProposal() (gas: 33588) -HybridUSDCTokenPoolMigrationTests:test_cannotCancelANonExistentMigrationProposal() (gas: 12955) -HybridUSDCTokenPoolMigrationTests:test_cannotModifyLiquidityWithoutPermissions_Revert() (gas: 20700) -HybridUSDCTokenPoolMigrationTests:test_lockOrBurn_then_BurnInCCTPMigration_Success() (gas: 281234) -HybridUSDCTokenPoolMigrationTests:test_transferLiquidity_Success() (gas: 168651) -HybridUSDCTokenPoolMigrationTests:test_withdrawLiquidity_Success() (gas: 152516) -HybridUSDCTokenPoolTests:test_LockOrBurn_LocKReleaseMechanism_then_switchToPrimary_Success() (gas: 234556) -HybridUSDCTokenPoolTests:test_LockOrBurn_PrimaryMechanism_Success() (gas: 150684) -HybridUSDCTokenPoolTests:test_LockOrBurn_WhileMigrationPause_Revert() (gas: 113484) -HybridUSDCTokenPoolTests:test_LockOrBurn_onLockReleaseMechanism_Success() (gas: 154301) -HybridUSDCTokenPoolTests:test_MintOrRelease_OnLockReleaseMechanism_Success() (gas: 249477) -HybridUSDCTokenPoolTests:test_MintOrRelease_OnLockReleaseMechanism_then_switchToPrimary_Success() (gas: 525148) -HybridUSDCTokenPoolTests:test_MintOrRelease_incomingMessageWithPrimaryMechanism() (gas: 329120) -HybridUSDCTokenPoolTests:test_withdrawLiquidity_Success() (gas: 152516) +HybridUSDCTokenPoolMigrationTests:test_LockOrBurn_LocKReleaseMechanism_then_switchToPrimary_Success() (gas: 208384) +HybridUSDCTokenPoolMigrationTests:test_LockOrBurn_PrimaryMechanism_Success() (gas: 135502) +HybridUSDCTokenPoolMigrationTests:test_LockOrBurn_WhileMigrationPause_Revert() (gas: 106651) +HybridUSDCTokenPoolMigrationTests:test_LockOrBurn_onLockReleaseMechanism_Success() (gas: 143944) +HybridUSDCTokenPoolMigrationTests:test_MintOrRelease_OnLockReleaseMechanism_Success() (gas: 230450) +HybridUSDCTokenPoolMigrationTests:test_MintOrRelease_OnLockReleaseMechanism_then_switchToPrimary_Success() (gas: 438517) +HybridUSDCTokenPoolMigrationTests:test_MintOrRelease_incomingMessageWithPrimaryMechanism() (gas: 270081) +HybridUSDCTokenPoolMigrationTests:test_burnLockedUSDC_invalidPermissions_Revert() (gas: 39130) +HybridUSDCTokenPoolMigrationTests:test_cancelExistingCCTPMigrationProposal() (gas: 31181) +HybridUSDCTokenPoolMigrationTests:test_cannotCancelANonExistentMigrationProposal() (gas: 12628) +HybridUSDCTokenPoolMigrationTests:test_cannotModifyLiquidityWithoutPermissions_Revert() (gas: 17158) +HybridUSDCTokenPoolMigrationTests:test_lockOrBurn_then_BurnInCCTPMigration_Success() (gas: 252682) +HybridUSDCTokenPoolMigrationTests:test_transferLiquidity_Success() (gas: 157130) +HybridUSDCTokenPoolMigrationTests:test_withdrawLiquidity_Success() (gas: 140828) +HybridUSDCTokenPoolTests:test_LockOrBurn_LocKReleaseMechanism_then_switchToPrimary_Success() (gas: 208164) +HybridUSDCTokenPoolTests:test_LockOrBurn_PrimaryMechanism_Success() (gas: 135396) +HybridUSDCTokenPoolTests:test_LockOrBurn_WhileMigrationPause_Revert() (gas: 106628) +HybridUSDCTokenPoolTests:test_LockOrBurn_onLockReleaseMechanism_Success() (gas: 143865) +HybridUSDCTokenPoolTests:test_MintOrRelease_OnLockReleaseMechanism_Success() (gas: 230383) +HybridUSDCTokenPoolTests:test_MintOrRelease_OnLockReleaseMechanism_then_switchToPrimary_Success() (gas: 438318) +HybridUSDCTokenPoolTests:test_MintOrRelease_incomingMessageWithPrimaryMechanism() (gas: 270011) +HybridUSDCTokenPoolTests:test_withdrawLiquidity_Success() (gas: 140783) LockReleaseTokenPoolAndProxy_setRebalancer:test_SetRebalancer_Revert() (gas: 10977) LockReleaseTokenPoolAndProxy_setRebalancer:test_SetRebalancer_Success() (gas: 17998) LockReleaseTokenPoolPoolAndProxy_canAcceptLiquidity:test_CanAcceptLiquidity_Success() (gas: 3315195) @@ -456,34 +456,34 @@ LockReleaseTokenPoolPoolAndProxy_provideLiquidity:test_Unauthorized_Revert() (ga LockReleaseTokenPoolPoolAndProxy_supportsInterface:test_SupportsInterface_Success() (gas: 9977) LockReleaseTokenPoolPoolAndProxy_withdrawalLiquidity:test_InsufficientLiquidity_Revert() (gas: 60060) LockReleaseTokenPoolPoolAndProxy_withdrawalLiquidity:test_Unauthorized_Revert() (gas: 11386) -LockReleaseTokenPool_canAcceptLiquidity:test_CanAcceptLiquidity_Success() (gas: 4775338) -LockReleaseTokenPool_lockOrBurn:test_LockOrBurnWithAllowList_Revert() (gas: 33986) -LockReleaseTokenPool_lockOrBurn:test_LockOrBurnWithAllowList_Success() (gas: 91128) -LockReleaseTokenPool_lockOrBurn:test_PoolBurnRevertNotHealthy_Revert() (gas: 64965) -LockReleaseTokenPool_provideLiquidity:test_LiquidityNotAccepted_Revert() (gas: 4771254) -LockReleaseTokenPool_provideLiquidity:test_Unauthorized_Revert() (gas: 12661) -LockReleaseTokenPool_releaseOrMint:test_ChainNotAllowed_Revert() (gas: 81914) -LockReleaseTokenPool_releaseOrMint:test_PoolMintNotHealthy_Revert() (gas: 63333) -LockReleaseTokenPool_releaseOrMint:test_ReleaseOrMint_Success() (gas: 274666) -LockReleaseTokenPool_setRebalancer:test_SetRebalancer_Revert() (gas: 11990) -LockReleaseTokenPool_setRebalancer:test_SetRebalancer_Success() (gas: 19783) -LockReleaseTokenPool_supportsInterface:test_SupportsInterface_Success() (gas: 11613) -LockReleaseTokenPool_transferLiquidity:test_transferLiquidity_Success() (gas: 88490) -LockReleaseTokenPool_transferLiquidity:test_transferLiquidity_transferTooMuch_Revert() (gas: 59808) -LockReleaseTokenPool_withdrawalLiquidity:test_InsufficientLiquidity_Revert() (gas: 64803) -LockReleaseTokenPool_withdrawalLiquidity:test_Unauthorized_Revert() (gas: 12647) -LockRelease_setRateLimitAdmin:test_SetRateLimitAdmin_Revert() (gas: 12033) -LockRelease_setRateLimitAdmin:test_SetRateLimitAdmin_Success() (gas: 36728) -MerkleMultiProofTest:test_CVE_2023_34459() (gas: 6372) -MerkleMultiProofTest:test_EmptyLeaf_Revert() (gas: 4019) -MerkleMultiProofTest:test_MerkleRoot256() (gas: 668330) -MerkleMultiProofTest:test_MerkleRootSingleLeaf_Success() (gas: 4074) -MerkleMultiProofTest:test_SpecSync_gas() (gas: 49338) -MockRouterTest:test_ccipSendWithInsufficientNativeTokens_Revert() (gas: 37132) -MockRouterTest:test_ccipSendWithInvalidMsgValue_Revert() (gas: 64034) -MockRouterTest:test_ccipSendWithLinkFeeTokenAndValidMsgValue_Success() (gas: 135207) -MockRouterTest:test_ccipSendWithLinkFeeTokenbutInsufficientAllowance_Revert() (gas: 68119) -MockRouterTest:test_ccipSendWithSufficientNativeFeeTokens_Success() (gas: 48343) +LockReleaseTokenPool_canAcceptLiquidity:test_CanAcceptLiquidity_Success() (gas: 3071906) +LockReleaseTokenPool_lockOrBurn:test_LockOrBurnWithAllowList_Revert() (gas: 29960) +LockReleaseTokenPool_lockOrBurn:test_LockOrBurnWithAllowList_Success() (gas: 79868) +LockReleaseTokenPool_lockOrBurn:test_PoolBurnRevertNotHealthy_Revert() (gas: 59479) +LockReleaseTokenPool_provideLiquidity:test_LiquidityNotAccepted_Revert() (gas: 3068356) +LockReleaseTokenPool_provideLiquidity:test_Unauthorized_Revert() (gas: 11405) +LockReleaseTokenPool_releaseOrMint:test_ChainNotAllowed_Revert() (gas: 72666) +LockReleaseTokenPool_releaseOrMint:test_PoolMintNotHealthy_Revert() (gas: 56211) +LockReleaseTokenPool_releaseOrMint:test_ReleaseOrMint_Success() (gas: 225296) +LockReleaseTokenPool_setRebalancer:test_SetRebalancer_Revert() (gas: 10999) +LockReleaseTokenPool_setRebalancer:test_SetRebalancer_Success() (gas: 18064) +LockReleaseTokenPool_supportsInterface:test_SupportsInterface_Success() (gas: 9977) +LockReleaseTokenPool_transferLiquidity:test_transferLiquidity_Success() (gas: 83177) +LockReleaseTokenPool_transferLiquidity:test_transferLiquidity_transferTooMuch_Revert() (gas: 55899) +LockReleaseTokenPool_withdrawalLiquidity:test_InsufficientLiquidity_Revert() (gas: 60060) +LockReleaseTokenPool_withdrawalLiquidity:test_Unauthorized_Revert() (gas: 11386) +LockRelease_setRateLimitAdmin:test_SetRateLimitAdmin_Revert() (gas: 11036) +LockRelease_setRateLimitAdmin:test_SetRateLimitAdmin_Success() (gas: 35030) +MerkleMultiProofTest:test_CVE_2023_34459() (gas: 5454) +MerkleMultiProofTest:test_EmptyLeaf_Revert() (gas: 3555) +MerkleMultiProofTest:test_MerkleRoot256() (gas: 394879) +MerkleMultiProofTest:test_MerkleRootSingleLeaf_Success() (gas: 3649) +MerkleMultiProofTest:test_SpecSync_gas() (gas: 34123) +MockRouterTest:test_ccipSendWithInsufficientNativeTokens_Revert() (gas: 34019) +MockRouterTest:test_ccipSendWithInvalidMsgValue_Revert() (gas: 60812) +MockRouterTest:test_ccipSendWithLinkFeeTokenAndValidMsgValue_Success() (gas: 126480) +MockRouterTest:test_ccipSendWithLinkFeeTokenbutInsufficientAllowance_Revert() (gas: 63419) +MockRouterTest:test_ccipSendWithSufficientNativeFeeTokens_Success() (gas: 43952) MultiAggregateRateLimiter_applyRateLimiterConfigUpdates:test_MultipleConfigsBothLanes_Success() (gas: 132457) MultiAggregateRateLimiter_applyRateLimiterConfigUpdates:test_MultipleConfigs_Success() (gas: 313023) MultiAggregateRateLimiter_applyRateLimiterConfigUpdates:test_OnlyCallableByOwner_Revert() (gas: 17750) @@ -529,36 +529,36 @@ MultiAggregateRateLimiter_updateRateLimitTokens:test_UpdateRateLimitTokens_AddsA MultiAggregateRateLimiter_updateRateLimitTokens:test_UpdateRateLimitTokens_RemoveNonExistentToken_Success() (gas: 28703) MultiAggregateRateLimiter_updateRateLimitTokens:test_ZeroDestToken_Revert() (gas: 18279) MultiAggregateRateLimiter_updateRateLimitTokens:test_ZeroSourceToken_Revert() (gas: 18208) -MultiOCR3Base_setOCR3Configs:test_FMustBePositive_Revert() (gas: 72005) -MultiOCR3Base_setOCR3Configs:test_FTooHigh_Revert() (gas: 48162) -MultiOCR3Base_setOCR3Configs:test_RepeatSignerAddress_Revert() (gas: 296773) -MultiOCR3Base_setOCR3Configs:test_RepeatTransmitterAddress_Revert() (gas: 437288) -MultiOCR3Base_setOCR3Configs:test_SetConfigIgnoreSigners_Success() (gas: 556997) -MultiOCR3Base_setOCR3Configs:test_SetConfigWithSigners_Success() (gas: 874789) -MultiOCR3Base_setOCR3Configs:test_SetConfigWithoutSigners_Success() (gas: 486308) -MultiOCR3Base_setOCR3Configs:test_SetConfigsZeroInput_Success() (gas: 13373) -MultiOCR3Base_setOCR3Configs:test_SetMultipleConfigs_Success() (gas: 2266658) -MultiOCR3Base_setOCR3Configs:test_SignerCannotBeZeroAddress_Revert() (gas: 152886) -MultiOCR3Base_setOCR3Configs:test_StaticConfigChange_Revert() (gas: 841118) -MultiOCR3Base_setOCR3Configs:test_TooManySigners_Revert() (gas: 312015) -MultiOCR3Base_setOCR3Configs:test_TooManyTransmitters_Revert() (gas: 261347) -MultiOCR3Base_setOCR3Configs:test_TransmitterCannotBeZeroAddress_Revert() (gas: 266523) -MultiOCR3Base_setOCR3Configs:test_UpdateConfigSigners_Success() (gas: 930500) -MultiOCR3Base_setOCR3Configs:test_UpdateConfigTransmittersWithoutSigners_Success() (gas: 516788) -MultiOCR3Base_transmit:test_ConfigDigestMismatch_Revert() (gas: 49771) -MultiOCR3Base_transmit:test_ForkedChain_Revert() (gas: 56488) -MultiOCR3Base_transmit:test_InsufficientSignatures_Revert() (gas: 87043) -MultiOCR3Base_transmit:test_NonUniqueSignature_Revert() (gas: 75511) -MultiOCR3Base_transmit:test_SignatureOutOfRegistration_Revert() (gas: 38453) -MultiOCR3Base_transmit:test_TooManySignatures_Revert() (gas: 92076) -MultiOCR3Base_transmit:test_TransmitSigners_gas_Success() (gas: 39865) -MultiOCR3Base_transmit:test_TransmitWithExtraCalldataArgs_Revert() (gas: 52756) -MultiOCR3Base_transmit:test_TransmitWithLessCalldataArgs_Revert() (gas: 30083) -MultiOCR3Base_transmit:test_TransmitWithoutSignatureVerification_gas_Success() (gas: 21035) -MultiOCR3Base_transmit:test_UnAuthorizedTransmitter_Revert() (gas: 29105) -MultiOCR3Base_transmit:test_UnauthorizedSigner_Revert() (gas: 69917) -MultiOCR3Base_transmit:test_UnconfiguredPlugin_Revert() (gas: 42537) -MultiOCR3Base_transmit:test_ZeroSignatures_Revert() (gas: 37478) +MultiOCR3Base_setOCR3Configs:test_FMustBePositive_Revert() (gas: 59255) +MultiOCR3Base_setOCR3Configs:test_FTooHigh_Revert() (gas: 43629) +MultiOCR3Base_setOCR3Configs:test_RepeatSignerAddress_Revert() (gas: 283636) +MultiOCR3Base_setOCR3Configs:test_RepeatTransmitterAddress_Revert() (gas: 422261) +MultiOCR3Base_setOCR3Configs:test_SetConfigIgnoreSigners_Success() (gas: 511281) +MultiOCR3Base_setOCR3Configs:test_SetConfigWithSigners_Success() (gas: 828440) +MultiOCR3Base_setOCR3Configs:test_SetConfigWithoutSigners_Success() (gas: 456886) +MultiOCR3Base_setOCR3Configs:test_SetConfigsZeroInput_Success() (gas: 12382) +MultiOCR3Base_setOCR3Configs:test_SetMultipleConfigs_Success() (gas: 2140159) +MultiOCR3Base_setOCR3Configs:test_SignerCannotBeZeroAddress_Revert() (gas: 141717) +MultiOCR3Base_setOCR3Configs:test_StaticConfigChange_Revert() (gas: 807340) +MultiOCR3Base_setOCR3Configs:test_TooManySigners_Revert() (gas: 158799) +MultiOCR3Base_setOCR3Configs:test_TooManyTransmitters_Revert() (gas: 112293) +MultiOCR3Base_setOCR3Configs:test_TransmitterCannotBeZeroAddress_Revert() (gas: 254083) +MultiOCR3Base_setOCR3Configs:test_UpdateConfigSigners_Success() (gas: 860224) +MultiOCR3Base_setOCR3Configs:test_UpdateConfigTransmittersWithoutSigners_Success() (gas: 475193) +MultiOCR3Base_transmit:test_ConfigDigestMismatch_Revert() (gas: 42845) +MultiOCR3Base_transmit:test_ForkedChain_Revert() (gas: 48450) +MultiOCR3Base_transmit:test_InsufficientSignatures_Revert() (gas: 76928) +MultiOCR3Base_transmit:test_NonUniqueSignature_Revert() (gas: 65768) +MultiOCR3Base_transmit:test_SignatureOutOfRegistration_Revert() (gas: 33417) +MultiOCR3Base_transmit:test_TooManySignatures_Revert() (gas: 79519) +MultiOCR3Base_transmit:test_TransmitSigners_gas_Success() (gas: 33631) +MultiOCR3Base_transmit:test_TransmitWithExtraCalldataArgs_Revert() (gas: 47122) +MultiOCR3Base_transmit:test_TransmitWithLessCalldataArgs_Revert() (gas: 25690) +MultiOCR3Base_transmit:test_TransmitWithoutSignatureVerification_gas_Success() (gas: 18712) +MultiOCR3Base_transmit:test_UnAuthorizedTransmitter_Revert() (gas: 24189) +MultiOCR3Base_transmit:test_UnauthorizedSigner_Revert() (gas: 61131) +MultiOCR3Base_transmit:test_UnconfiguredPlugin_Revert() (gas: 39888) +MultiOCR3Base_transmit:test_ZeroSignatures_Revert() (gas: 32971) MultiOnRampTokenPoolReentrancy:test_OnRampTokenPoolReentrancy_Success() (gas: 411709) MultiRampsE2E:test_E2E_3MessagesMMultiOffRampSuccess_gas() (gas: 1529863) NonceManager_NonceIncrementation:test_getIncrementedOutboundNonce_Success() (gas: 37916) @@ -583,31 +583,31 @@ NonceManager_applyPreviousRampsUpdates:test_PreviousRampAlreadySetOnRamp_Revert( NonceManager_applyPreviousRampsUpdates:test_SingleRampUpdate() (gas: 66576) NonceManager_applyPreviousRampsUpdates:test_ZeroInput() (gas: 12025) NonceManager_typeAndVersion:test_typeAndVersion() (gas: 9699) -OCR2BaseNoChecks_setOCR2Config:test_FMustBePositive_Revert() (gas: 15443) -OCR2BaseNoChecks_setOCR2Config:test_RepeatAddress_Revert() (gas: 48841) -OCR2BaseNoChecks_setOCR2Config:test_SetConfigSuccess_gas() (gas: 97138) -OCR2BaseNoChecks_setOCR2Config:test_TooManyTransmitter_Revert() (gas: 75615) -OCR2BaseNoChecks_setOCR2Config:test_TransmitterCannotBeZeroAddress_Revert() (gas: 32515) -OCR2BaseNoChecks_transmit:test_ConfigDigestMismatch_Revert() (gas: 20081) -OCR2BaseNoChecks_transmit:test_ForkedChain_Revert() (gas: 29888) -OCR2BaseNoChecks_transmit:test_TransmitSuccess_gas() (gas: 30530) -OCR2BaseNoChecks_transmit:test_UnAuthorizedTransmitter_Revert() (gas: 25249) -OCR2Base_setOCR2Config:test_FMustBePositive_Revert() (gas: 15449) -OCR2Base_setOCR2Config:test_FTooHigh_Revert() (gas: 15725) -OCR2Base_setOCR2Config:test_OracleOutOfRegister_Revert() (gas: 21647) -OCR2Base_setOCR2Config:test_RepeatAddress_Revert() (gas: 56234) -OCR2Base_setOCR2Config:test_SetConfigSuccess_gas() (gas: 169648) -OCR2Base_setOCR2Config:test_SingerCannotBeZeroAddress_Revert() (gas: 32751) -OCR2Base_setOCR2Config:test_TooManySigners_Revert() (gas: 34759) -OCR2Base_setOCR2Config:test_TransmitterCannotBeZeroAddress_Revert() (gas: 55992) -OCR2Base_transmit:test_ConfigDigestMismatch_Revert() (gas: 22520) -OCR2Base_transmit:test_ForkedChain_Revert() (gas: 42561) -OCR2Base_transmit:test_NonUniqueSignature_Revert() (gas: 62252) -OCR2Base_transmit:test_SignatureOutOfRegistration_Revert() (gas: 24538) -OCR2Base_transmit:test_Transmit2SignersSuccess_gas() (gas: 58490) -OCR2Base_transmit:test_UnAuthorizedTransmitter_Revert() (gas: 27448) -OCR2Base_transmit:test_UnauthorizedSigner_Revert() (gas: 45597) -OCR2Base_transmit:test_WrongNumberOfSignatures_Revert() (gas: 23593) +OCR2BaseNoChecks_setOCR2Config:test_FMustBePositive_Revert() (gas: 12183) +OCR2BaseNoChecks_setOCR2Config:test_RepeatAddress_Revert() (gas: 42404) +OCR2BaseNoChecks_setOCR2Config:test_SetConfigSuccess_gas() (gas: 84585) +OCR2BaseNoChecks_setOCR2Config:test_TooManyTransmitter_Revert() (gas: 38150) +OCR2BaseNoChecks_setOCR2Config:test_TransmitterCannotBeZeroAddress_Revert() (gas: 24290) +OCR2BaseNoChecks_transmit:test_ConfigDigestMismatch_Revert() (gas: 17469) +OCR2BaseNoChecks_transmit:test_ForkedChain_Revert() (gas: 26762) +OCR2BaseNoChecks_transmit:test_TransmitSuccess_gas() (gas: 27499) +OCR2BaseNoChecks_transmit:test_UnAuthorizedTransmitter_Revert() (gas: 21317) +OCR2Base_setOCR2Config:test_FMustBePositive_Revert() (gas: 12201) +OCR2Base_setOCR2Config:test_FTooHigh_Revert() (gas: 12357) +OCR2Base_setOCR2Config:test_OracleOutOfRegister_Revert() (gas: 14904) +OCR2Base_setOCR2Config:test_RepeatAddress_Revert() (gas: 45454) +OCR2Base_setOCR2Config:test_SetConfigSuccess_gas() (gas: 155211) +OCR2Base_setOCR2Config:test_SingerCannotBeZeroAddress_Revert() (gas: 24407) +OCR2Base_setOCR2Config:test_TooManySigners_Revert() (gas: 20520) +OCR2Base_setOCR2Config:test_TransmitterCannotBeZeroAddress_Revert() (gas: 47298) +OCR2Base_transmit:test_ConfigDigestMismatch_Revert() (gas: 19638) +OCR2Base_transmit:test_ForkedChain_Revert() (gas: 37713) +OCR2Base_transmit:test_NonUniqueSignature_Revert() (gas: 55324) +OCR2Base_transmit:test_SignatureOutOfRegistration_Revert() (gas: 20977) +OCR2Base_transmit:test_Transmit2SignersSuccess_gas() (gas: 51689) +OCR2Base_transmit:test_UnAuthorizedTransmitter_Revert() (gas: 23499) +OCR2Base_transmit:test_UnauthorizedSigner_Revert() (gas: 39695) +OCR2Base_transmit:test_WrongNumberOfSignatures_Revert() (gas: 20572) OffRamp_afterOC3ConfigSet:test_afterOCR3ConfigSet_SignatureVerificationDisabled_Revert() (gas: 5883366) OffRamp_applySourceChainConfigUpdates:test_AddMultipleChains_Success() (gas: 468008) OffRamp_applySourceChainConfigUpdates:test_AddNewChain_Success() (gas: 99183) @@ -792,82 +792,82 @@ PingPong_plumbing:test_OutOfOrderExecution_Success() (gas: 20280) PingPong_plumbing:test_Pausing_Success() (gas: 17780) PingPong_startPingPong:test_StartPingPong_With_OOO_Success() (gas: 163361) PingPong_startPingPong:test_StartPingPong_With_Sequenced_Ordered_Success() (gas: 182770) -RMNHome:test() (gas: 254) -RMN_constructor:test_Constructor_Success() (gas: 63037) -RMN_getRecordedCurseRelatedOps:test_OpsPostDeployment() (gas: 24609) -RMN_lazyVoteToCurseUpdate_Benchmark:test_VoteToCurseLazilyRetain3VotersUponConfigChange_gas() (gas: 159340) -RMN_ownerUnbless:test_Unbless_Success() (gas: 103665) -RMN_ownerUnvoteToCurse:test_CanBlessAndCurseAfterGlobalCurseIsLifted() (gas: 527240) -RMN_ownerUnvoteToCurse:test_IsIdempotent() (gas: 461028) -RMN_ownerUnvoteToCurse:test_NonOwner_Revert() (gas: 25696) -RMN_ownerUnvoteToCurse:test_OwnerUnvoteToCurseSuccess_gas() (gas: 402269) -RMN_ownerUnvoteToCurse:test_UnknownVoter_Revert() (gas: 37341) -RMN_ownerUnvoteToCurse_Benchmark:test_OwnerUnvoteToCurse_1Voter_LiftsCurse_gas() (gas: 310729) -RMN_permaBlessing:test_PermaBlessing() (gas: 234032) -RMN_setConfig:test_BlessVoterIsZeroAddress_Revert() (gas: 19944) -RMN_setConfig:test_EitherThresholdIsZero_Revert() (gas: 29093) -RMN_setConfig:test_NonOwner_Revert() (gas: 19180) -RMN_setConfig:test_RepeatedAddress_Revert() (gas: 24182) -RMN_setConfig:test_SetConfigSuccess_gas() (gas: 121383) -RMN_setConfig:test_TotalWeightsSmallerThanEachThreshold_Revert() (gas: 42230) -RMN_setConfig:test_VoteToBlessByEjectedVoter_Revert() (gas: 150092) -RMN_setConfig:test_VotersLengthIsZero_Revert() (gas: 13777) -RMN_setConfig:test_WeightIsZeroAddress_Revert() (gas: 20193) -RMN_setConfig_Benchmark_1:test_SetConfig_7Voters_gas() (gas: 699447) -RMN_setConfig_Benchmark_2:test_ResetConfig_7Voters_gas() (gas: 262912) -RMN_unvoteToCurse:test_InvalidCursesHash() (gas: 29467) -RMN_unvoteToCurse:test_OwnerSkips() (gas: 38039) -RMN_unvoteToCurse:test_OwnerSucceeds() (gas: 69773) -RMN_unvoteToCurse:test_UnauthorizedVoter() (gas: 59241) -RMN_unvoteToCurse:test_ValidCursesHash() (gas: 66142) -RMN_unvoteToCurse:test_VotersCantLiftCurseButOwnerCan() (gas: 729679) -RMN_voteToBless:test_Curse_Revert() (gas: 496801) -RMN_voteToBless:test_IsAlreadyBlessed_Revert() (gas: 147850) -RMN_voteToBless:test_RootSuccess() (gas: 745652) -RMN_voteToBless:test_SenderAlreadyVoted_Revert() (gas: 123496) -RMN_voteToBless:test_UnauthorizedVoter_Revert() (gas: 19508) -RMN_voteToBless_Benchmark:test_1RootSuccess_gas() (gas: 49435) -RMN_voteToBless_Benchmark:test_3RootSuccess_gas() (gas: 110271) -RMN_voteToBless_Benchmark:test_5RootSuccess_gas() (gas: 171045) -RMN_voteToBless_Blessed_Benchmark:test_1RootSuccessBecameBlessed_gas() (gas: 34790) -RMN_voteToBless_Blessed_Benchmark:test_1RootSuccess_gas() (gas: 32338) -RMN_voteToBless_Blessed_Benchmark:test_3RootSuccess_gas() (gas: 93196) -RMN_voteToBless_Blessed_Benchmark:test_5RootSuccess_gas() (gas: 153948) -RMN_voteToCurse:test_CurseOnlyWhenThresholdReached_Success() (gas: 1748779) -RMN_voteToCurse:test_EmptySubjects_Revert() (gas: 15996) -RMN_voteToCurse:test_EvenIfAlreadyCursed_Success() (gas: 564086) -RMN_voteToCurse:test_OwnerCanCurseAndUncurse() (gas: 471086) -RMN_voteToCurse:test_RepeatedSubject_Revert() (gas: 151480) -RMN_voteToCurse:test_ReusedCurseId_Revert() (gas: 155411) -RMN_voteToCurse:test_UnauthorizedVoter_Revert() (gas: 14537) -RMN_voteToCurse:test_VoteToCurse_NoCurse_Success() (gas: 203894) -RMN_voteToCurse:test_VoteToCurse_YesCurse_Success() (gas: 495649) -RMN_voteToCurse_2:test_VotesAreDroppedIfSubjectIsNotCursedDuringConfigChange() (gas: 417003) -RMN_voteToCurse_2:test_VotesAreRetainedIfSubjectIsCursedDuringConfigChange() (gas: 1339323) -RMN_voteToCurse_Benchmark_1:test_VoteToCurse_NewSubject_NewVoter_NoCurse_gas() (gas: 146898) -RMN_voteToCurse_Benchmark_1:test_VoteToCurse_NewSubject_NewVoter_YesCurse_gas() (gas: 171152) -RMN_voteToCurse_Benchmark_2:test_VoteToCurse_OldSubject_NewVoter_NoCurse_gas() (gas: 126446) -RMN_voteToCurse_Benchmark_2:test_VoteToCurse_OldSubject_OldVoter_NoCurse_gas() (gas: 102691) -RMN_voteToCurse_Benchmark_3:test_VoteToCurse_OldSubject_NewVoter_YesCurse_gas() (gas: 151187) -RateLimiter_constructor:test_Constructor_Success() (gas: 22964) -RateLimiter_consume:test_AggregateValueMaxCapacityExceeded_Revert() (gas: 19839) -RateLimiter_consume:test_AggregateValueRateLimitReached_Revert() (gas: 28311) -RateLimiter_consume:test_ConsumeAggregateValue_Success() (gas: 39405) -RateLimiter_consume:test_ConsumeTokens_Success() (gas: 21919) -RateLimiter_consume:test_ConsumeUnlimited_Success() (gas: 57402) -RateLimiter_consume:test_ConsumingMoreThanUint128_Revert() (gas: 19531) -RateLimiter_consume:test_RateLimitReachedOverConsecutiveBlocks_Revert() (gas: 33020) -RateLimiter_consume:test_Refill_Success() (gas: 48170) -RateLimiter_consume:test_TokenMaxCapacityExceeded_Revert() (gas: 22450) -RateLimiter_consume:test_TokenRateLimitReached_Revert() (gas: 31057) -RateLimiter_currentTokenBucketState:test_CurrentTokenBucketState_Success() (gas: 49681) -RateLimiter_currentTokenBucketState:test_Refill_Success() (gas: 63750) -RateLimiter_setTokenBucketConfig:test_SetRateLimiterConfig_Success() (gas: 48188) -RegistryModuleOwnerCustom_constructor:test_constructor_Revert() (gas: 36711) -RegistryModuleOwnerCustom_registerAdminViaGetCCIPAdmin:test_registerAdminViaGetCCIPAdmin_Revert() (gas: 22517) -RegistryModuleOwnerCustom_registerAdminViaGetCCIPAdmin:test_registerAdminViaGetCCIPAdmin_Success() (gas: 137341) -RegistryModuleOwnerCustom_registerAdminViaOwner:test_registerAdminViaOwner_Revert() (gas: 22359) -RegistryModuleOwnerCustom_registerAdminViaOwner:test_registerAdminViaOwner_Success() (gas: 137182) +RMNHome:test() (gas: 186) +RMN_constructor:test_Constructor_Success() (gas: 48874) +RMN_getRecordedCurseRelatedOps:test_OpsPostDeployment() (gas: 19690) +RMN_lazyVoteToCurseUpdate_Benchmark:test_VoteToCurseLazilyRetain3VotersUponConfigChange_gas() (gas: 152263) +RMN_ownerUnbless:test_Unbless_Success() (gas: 74882) +RMN_ownerUnvoteToCurse:test_CanBlessAndCurseAfterGlobalCurseIsLifted() (gas: 471457) +RMN_ownerUnvoteToCurse:test_IsIdempotent() (gas: 398096) +RMN_ownerUnvoteToCurse:test_NonOwner_Revert() (gas: 18669) +RMN_ownerUnvoteToCurse:test_OwnerUnvoteToCurseSuccess_gas() (gas: 357751) +RMN_ownerUnvoteToCurse:test_UnknownVoter_Revert() (gas: 33034) +RMN_ownerUnvoteToCurse_Benchmark:test_OwnerUnvoteToCurse_1Voter_LiftsCurse_gas() (gas: 262211) +RMN_permaBlessing:test_PermaBlessing() (gas: 202691) +RMN_setConfig:test_BlessVoterIsZeroAddress_Revert() (gas: 15494) +RMN_setConfig:test_EitherThresholdIsZero_Revert() (gas: 21095) +RMN_setConfig:test_NonOwner_Revert() (gas: 14719) +RMN_setConfig:test_RepeatedAddress_Revert() (gas: 18213) +RMN_setConfig:test_SetConfigSuccess_gas() (gas: 104080) +RMN_setConfig:test_TotalWeightsSmallerThanEachThreshold_Revert() (gas: 30173) +RMN_setConfig:test_VoteToBlessByEjectedVoter_Revert() (gas: 130363) +RMN_setConfig:test_VotersLengthIsZero_Revert() (gas: 12128) +RMN_setConfig:test_WeightIsZeroAddress_Revert() (gas: 15734) +RMN_setConfig_Benchmark_1:test_SetConfig_7Voters_gas() (gas: 659462) +RMN_setConfig_Benchmark_2:test_ResetConfig_7Voters_gas() (gas: 212484) +RMN_unvoteToCurse:test_InvalidCursesHash() (gas: 26412) +RMN_unvoteToCurse:test_OwnerSkips() (gas: 33813) +RMN_unvoteToCurse:test_OwnerSucceeds() (gas: 63981) +RMN_unvoteToCurse:test_UnauthorizedVoter() (gas: 47598) +RMN_unvoteToCurse:test_ValidCursesHash() (gas: 61127) +RMN_unvoteToCurse:test_VotersCantLiftCurseButOwnerCan() (gas: 628641) +RMN_voteToBless:test_Curse_Revert() (gas: 473252) +RMN_voteToBless:test_IsAlreadyBlessed_Revert() (gas: 115312) +RMN_voteToBless:test_RootSuccess() (gas: 558319) +RMN_voteToBless:test_SenderAlreadyVoted_Revert() (gas: 97177) +RMN_voteToBless:test_UnauthorizedVoter_Revert() (gas: 17096) +RMN_voteToBless_Benchmark:test_1RootSuccess_gas() (gas: 44703) +RMN_voteToBless_Benchmark:test_3RootSuccess_gas() (gas: 98673) +RMN_voteToBless_Benchmark:test_5RootSuccess_gas() (gas: 152581) +RMN_voteToBless_Blessed_Benchmark:test_1RootSuccessBecameBlessed_gas() (gas: 29673) +RMN_voteToBless_Blessed_Benchmark:test_1RootSuccess_gas() (gas: 27619) +RMN_voteToBless_Blessed_Benchmark:test_3RootSuccess_gas() (gas: 81611) +RMN_voteToBless_Blessed_Benchmark:test_5RootSuccess_gas() (gas: 135497) +RMN_voteToCurse:test_CurseOnlyWhenThresholdReached_Success() (gas: 1650405) +RMN_voteToCurse:test_EmptySubjects_Revert() (gas: 14031) +RMN_voteToCurse:test_EvenIfAlreadyCursed_Success() (gas: 534854) +RMN_voteToCurse:test_OwnerCanCurseAndUncurse() (gas: 399532) +RMN_voteToCurse:test_RepeatedSubject_Revert() (gas: 144336) +RMN_voteToCurse:test_ReusedCurseId_Revert() (gas: 146885) +RMN_voteToCurse:test_UnauthorizedVoter_Revert() (gas: 12630) +RMN_voteToCurse:test_VoteToCurse_NoCurse_Success() (gas: 187388) +RMN_voteToCurse:test_VoteToCurse_YesCurse_Success() (gas: 472854) +RMN_voteToCurse_2:test_VotesAreDroppedIfSubjectIsNotCursedDuringConfigChange() (gas: 370837) +RMN_voteToCurse_2:test_VotesAreRetainedIfSubjectIsCursedDuringConfigChange() (gas: 1153282) +RMN_voteToCurse_Benchmark_1:test_VoteToCurse_NewSubject_NewVoter_NoCurse_gas() (gas: 141079) +RMN_voteToCurse_Benchmark_1:test_VoteToCurse_NewSubject_NewVoter_YesCurse_gas() (gas: 165213) +RMN_voteToCurse_Benchmark_2:test_VoteToCurse_OldSubject_NewVoter_NoCurse_gas() (gas: 121413) +RMN_voteToCurse_Benchmark_2:test_VoteToCurse_OldSubject_OldVoter_NoCurse_gas() (gas: 98355) +RMN_voteToCurse_Benchmark_3:test_VoteToCurse_OldSubject_NewVoter_YesCurse_gas() (gas: 145748) +RateLimiter_constructor:test_Constructor_Success() (gas: 19704) +RateLimiter_consume:test_AggregateValueMaxCapacityExceeded_Revert() (gas: 16006) +RateLimiter_consume:test_AggregateValueRateLimitReached_Revert() (gas: 22345) +RateLimiter_consume:test_ConsumeAggregateValue_Success() (gas: 31443) +RateLimiter_consume:test_ConsumeTokens_Success() (gas: 20366) +RateLimiter_consume:test_ConsumeUnlimited_Success() (gas: 40573) +RateLimiter_consume:test_ConsumingMoreThanUint128_Revert() (gas: 15786) +RateLimiter_consume:test_RateLimitReachedOverConsecutiveBlocks_Revert() (gas: 25747) +RateLimiter_consume:test_Refill_Success() (gas: 37354) +RateLimiter_consume:test_TokenMaxCapacityExceeded_Revert() (gas: 18340) +RateLimiter_consume:test_TokenRateLimitReached_Revert() (gas: 24823) +RateLimiter_currentTokenBucketState:test_CurrentTokenBucketState_Success() (gas: 38875) +RateLimiter_currentTokenBucketState:test_Refill_Success() (gas: 46768) +RateLimiter_setTokenBucketConfig:test_SetRateLimiterConfig_Success() (gas: 38446) +RegistryModuleOwnerCustom_constructor:test_constructor_Revert() (gas: 36037) +RegistryModuleOwnerCustom_registerAdminViaGetCCIPAdmin:test_registerAdminViaGetCCIPAdmin_Revert() (gas: 19643) +RegistryModuleOwnerCustom_registerAdminViaGetCCIPAdmin:test_registerAdminViaGetCCIPAdmin_Success() (gas: 129930) +RegistryModuleOwnerCustom_registerAdminViaOwner:test_registerAdminViaOwner_Revert() (gas: 19457) +RegistryModuleOwnerCustom_registerAdminViaOwner:test_registerAdminViaOwner_Success() (gas: 129743) Router_applyRampUpdates:test_OffRampMismatch_Revert() (gas: 89306) Router_applyRampUpdates:test_OffRampUpdatesWithRouting() (gas: 10648972) Router_applyRampUpdates:test_OnRampDisable() (gas: 55971) @@ -906,61 +906,61 @@ Router_setWrappedNative:test_OnlyOwner_Revert() (gas: 10986) SelfFundedPingPong_ccipReceive:test_FundingIfNotANop_Revert() (gas: 55572) SelfFundedPingPong_ccipReceive:test_Funding_Success() (gas: 420162) SelfFundedPingPong_setCountIncrBeforeFunding:test_setCountIncrBeforeFunding() (gas: 20169) -TokenAdminRegistry_acceptAdminRole:test_acceptAdminRole_OnlyPendingAdministrator_Revert() (gas: 58611) -TokenAdminRegistry_acceptAdminRole:test_acceptAdminRole_Success() (gas: 50532) -TokenAdminRegistry_addRegistryModule:test_addRegistryModule_OnlyOwner_Revert() (gas: 14159) -TokenAdminRegistry_addRegistryModule:test_addRegistryModule_Success() (gas: 70293) -TokenAdminRegistry_getAllConfiguredTokens:test_getAllConfiguredTokens_outOfBounds_Success() (gas: 12680) -TokenAdminRegistry_getPool:test_getPool_Success() (gas: 18649) -TokenAdminRegistry_getPools:test_getPools_Success() (gas: 48161) -TokenAdminRegistry_isAdministrator:test_isAdministrator_Success() (gas: 113861) -TokenAdminRegistry_proposeAdministrator:test_proposeAdministrator_AlreadyRegistered_Revert() (gas: 109470) -TokenAdminRegistry_proposeAdministrator:test_proposeAdministrator_OnlyRegistryModule_Revert() (gas: 17535) -TokenAdminRegistry_proposeAdministrator:test_proposeAdministrator_ZeroAddress_Revert() (gas: 16768) -TokenAdminRegistry_proposeAdministrator:test_proposeAdministrator_module_Success() (gas: 123148) -TokenAdminRegistry_proposeAdministrator:test_proposeAdministrator_owner_Success() (gas: 114227) -TokenAdminRegistry_proposeAdministrator:test_proposeAdministrator_reRegisterWhileUnclaimed_Success() (gas: 123889) -TokenAdminRegistry_removeRegistryModule:test_removeRegistryModule_OnlyOwner_Revert() (gas: 14115) -TokenAdminRegistry_removeRegistryModule:test_removeRegistryModule_Success() (gas: 58226) -TokenAdminRegistry_setPool:test_setPool_InvalidTokenPoolToken_Revert() (gas: 21992) -TokenAdminRegistry_setPool:test_setPool_OnlyAdministrator_Revert() (gas: 20133) -TokenAdminRegistry_setPool:test_setPool_Success() (gas: 41047) -TokenAdminRegistry_setPool:test_setPool_ZeroAddressRemovesPool_Success() (gas: 35795) -TokenAdminRegistry_transferAdminRole:test_transferAdminRole_OnlyAdministrator_Revert() (gas: 20198) -TokenAdminRegistry_transferAdminRole:test_transferAdminRole_Success() (gas: 54721) +TokenAdminRegistry_acceptAdminRole:test_acceptAdminRole_OnlyPendingAdministrator_Revert() (gas: 51109) +TokenAdminRegistry_acceptAdminRole:test_acceptAdminRole_Success() (gas: 43956) +TokenAdminRegistry_addRegistryModule:test_addRegistryModule_OnlyOwner_Revert() (gas: 12641) +TokenAdminRegistry_addRegistryModule:test_addRegistryModule_Success() (gas: 67038) +TokenAdminRegistry_getAllConfiguredTokens:test_getAllConfiguredTokens_outOfBounds_Success() (gas: 11350) +TokenAdminRegistry_getPool:test_getPool_Success() (gas: 17596) +TokenAdminRegistry_getPools:test_getPools_Success() (gas: 39920) +TokenAdminRegistry_isAdministrator:test_isAdministrator_Success() (gas: 105946) +TokenAdminRegistry_proposeAdministrator:test_proposeAdministrator_AlreadyRegistered_Revert() (gas: 104067) +TokenAdminRegistry_proposeAdministrator:test_proposeAdministrator_OnlyRegistryModule_Revert() (gas: 15499) +TokenAdminRegistry_proposeAdministrator:test_proposeAdministrator_ZeroAddress_Revert() (gas: 15044) +TokenAdminRegistry_proposeAdministrator:test_proposeAdministrator_module_Success() (gas: 112572) +TokenAdminRegistry_proposeAdministrator:test_proposeAdministrator_owner_Success() (gas: 107686) +TokenAdminRegistry_proposeAdministrator:test_proposeAdministrator_reRegisterWhileUnclaimed_Success() (gas: 115710) +TokenAdminRegistry_removeRegistryModule:test_removeRegistryModule_OnlyOwner_Revert() (gas: 12597) +TokenAdminRegistry_removeRegistryModule:test_removeRegistryModule_Success() (gas: 54495) +TokenAdminRegistry_setPool:test_setPool_InvalidTokenPoolToken_Revert() (gas: 19166) +TokenAdminRegistry_setPool:test_setPool_OnlyAdministrator_Revert() (gas: 18026) +TokenAdminRegistry_setPool:test_setPool_Success() (gas: 35961) +TokenAdminRegistry_setPool:test_setPool_ZeroAddressRemovesPool_Success() (gas: 30635) +TokenAdminRegistry_transferAdminRole:test_transferAdminRole_OnlyAdministrator_Revert() (gas: 18085) +TokenAdminRegistry_transferAdminRole:test_transferAdminRole_Success() (gas: 49390) TokenPoolAndProxy:test_lockOrBurn_burnMint_Success() (gas: 5945631) TokenPoolAndProxy:test_lockOrBurn_burnWithFromMint_Success() (gas: 5977107) TokenPoolAndProxy:test_lockOrBurn_lockRelease_Success() (gas: 6179838) TokenPoolAndProxy:test_setPreviousPool_Success() (gas: 3334200) TokenPoolAndProxyMigration:test_tokenPoolMigration_Success_1_2() (gas: 6792268) TokenPoolAndProxyMigration:test_tokenPoolMigration_Success_1_4() (gas: 7024950) -TokenPoolWithAllowList_applyAllowListUpdates:test_AllowListNotEnabled_Revert() (gas: 3418174) -TokenPoolWithAllowList_applyAllowListUpdates:test_OnlyOwner_Revert() (gas: 13392) -TokenPoolWithAllowList_applyAllowListUpdates:test_SetAllowListSkipsZero_Success() (gas: 26742) -TokenPoolWithAllowList_applyAllowListUpdates:test_SetAllowList_Success() (gas: 189536) -TokenPoolWithAllowList_getAllowList:test_GetAllowList_Success() (gas: 25742) -TokenPoolWithAllowList_getAllowListEnabled:test_GetAllowListEnabled_Success() (gas: 8788) -TokenPoolWithAllowList_setRouter:test_SetRouter_Success() (gas: 28100) -TokenPool_applyChainUpdates:test_applyChainUpdates_DisabledNonZeroRateLimit_Revert() (gas: 282666) -TokenPool_applyChainUpdates:test_applyChainUpdates_InvalidRateLimitRate_Revert() (gas: 580050) -TokenPool_applyChainUpdates:test_applyChainUpdates_NonExistentChain_Revert() (gas: 22750) -TokenPool_applyChainUpdates:test_applyChainUpdates_OnlyCallableByOwner_Revert() (gas: 12333) -TokenPool_applyChainUpdates:test_applyChainUpdates_Success() (gas: 534354) -TokenPool_applyChainUpdates:test_applyChainUpdates_ZeroAddressNotAllowed_Revert() (gas: 165350) -TokenPool_constructor:test_ZeroAddressNotAllowed_Revert() (gas: 74247) -TokenPool_constructor:test_immutableFields_Success() (gas: 23251) -TokenPool_getRemotePool:test_getRemotePool_Success() (gas: 285082) -TokenPool_onlyOffRamp:test_CallerIsNotARampOnRouter_Revert() (gas: 287212) -TokenPool_onlyOffRamp:test_ChainNotAllowed_Revert() (gas: 305616) -TokenPool_onlyOffRamp:test_onlyOffRamp_Success() (gas: 361142) -TokenPool_onlyOnRamp:test_CallerIsNotARampOnRouter_Revert() (gas: 286591) -TokenPool_onlyOnRamp:test_ChainNotAllowed_Revert() (gas: 269389) -TokenPool_onlyOnRamp:test_onlyOnRamp_Success() (gas: 315814) -TokenPool_setChainRateLimiterConfig:test_NonExistentChain_Revert() (gas: 19578) -TokenPool_setChainRateLimiterConfig:test_OnlyOwnerOrRateLimitAdmin_Revert() (gas: 17926) -TokenPool_setRemotePool:test_setRemotePool_NonExistentChain_Reverts() (gas: 17612) -TokenPool_setRemotePool:test_setRemotePool_OnlyOwner_Reverts() (gas: 15337) -TokenPool_setRemotePool:test_setRemotePool_Success() (gas: 293732) +TokenPoolWithAllowList_applyAllowListUpdates:test_AllowListNotEnabled_Revert() (gas: 2100002) +TokenPoolWithAllowList_applyAllowListUpdates:test_OnlyOwner_Revert() (gas: 12101) +TokenPoolWithAllowList_applyAllowListUpdates:test_SetAllowListSkipsZero_Success() (gas: 23464) +TokenPoolWithAllowList_applyAllowListUpdates:test_SetAllowList_Success() (gas: 177802) +TokenPoolWithAllowList_getAllowList:test_GetAllowList_Success() (gas: 23740) +TokenPoolWithAllowList_getAllowListEnabled:test_GetAllowListEnabled_Success() (gas: 8363) +TokenPoolWithAllowList_setRouter:test_SetRouter_Success() (gas: 24843) +TokenPool_applyChainUpdates:test_applyChainUpdates_DisabledNonZeroRateLimit_Revert() (gas: 271551) +TokenPool_applyChainUpdates:test_applyChainUpdates_InvalidRateLimitRate_Revert() (gas: 542134) +TokenPool_applyChainUpdates:test_applyChainUpdates_NonExistentChain_Revert() (gas: 18449) +TokenPool_applyChainUpdates:test_applyChainUpdates_OnlyCallableByOwner_Revert() (gas: 11391) +TokenPool_applyChainUpdates:test_applyChainUpdates_Success() (gas: 477675) +TokenPool_applyChainUpdates:test_applyChainUpdates_ZeroAddressNotAllowed_Revert() (gas: 157320) +TokenPool_constructor:test_ZeroAddressNotAllowed_Revert() (gas: 70594) +TokenPool_constructor:test_immutableFields_Success() (gas: 20544) +TokenPool_getRemotePool:test_getRemotePool_Success() (gas: 274133) +TokenPool_onlyOffRamp:test_CallerIsNotARampOnRouter_Revert() (gas: 277110) +TokenPool_onlyOffRamp:test_ChainNotAllowed_Revert() (gas: 289682) +TokenPool_onlyOffRamp:test_onlyOffRamp_Success() (gas: 349912) +TokenPool_onlyOnRamp:test_CallerIsNotARampOnRouter_Revert() (gas: 276850) +TokenPool_onlyOnRamp:test_ChainNotAllowed_Revert() (gas: 253710) +TokenPool_onlyOnRamp:test_onlyOnRamp_Success() (gas: 304962) +TokenPool_setChainRateLimiterConfig:test_NonExistentChain_Revert() (gas: 17142) +TokenPool_setChainRateLimiterConfig:test_OnlyOwnerOrRateLimitAdmin_Revert() (gas: 15137) +TokenPool_setRemotePool:test_setRemotePool_NonExistentChain_Reverts() (gas: 15653) +TokenPool_setRemotePool:test_setRemotePool_OnlyOwner_Reverts() (gas: 13201) +TokenPool_setRemotePool:test_setRemotePool_Success() (gas: 282083) TokenProxy_ccipSend:test_CcipSendGasShouldBeZero_Revert() (gas: 17121) TokenProxy_ccipSend:test_CcipSendInsufficientAllowance_Revert() (gas: 136330) TokenProxy_ccipSend:test_CcipSendInvalidToken_Revert() (gas: 15931) @@ -972,14 +972,14 @@ TokenProxy_getFee:test_GetFeeGasShouldBeZero_Revert() (gas: 16839) TokenProxy_getFee:test_GetFeeInvalidToken_Revert() (gas: 12670) TokenProxy_getFee:test_GetFeeNoDataAllowed_Revert() (gas: 15864) TokenProxy_getFee:test_GetFee_Success() (gas: 86882) -USDCTokenPool__validateMessage:test_ValidateInvalidMessage_Revert() (gas: 37856) -USDCTokenPool_lockOrBurn:test_CallerIsNotARampOnRouter_Revert() (gas: 40114) -USDCTokenPool_lockOrBurn:test_LockOrBurnWithAllowList_Revert() (gas: 34440) -USDCTokenPool_lockOrBurn:test_LockOrBurn_Success() (gas: 147394) -USDCTokenPool_lockOrBurn:test_UnknownDomain_Revert() (gas: 546719) -USDCTokenPool_releaseOrMint:test_ReleaseOrMintRealTx_Success() (gas: 326433) -USDCTokenPool_releaseOrMint:test_TokenMaxCapacityExceeded_Revert() (gas: 59047) -USDCTokenPool_releaseOrMint:test_UnlockingUSDCFailed_Revert() (gas: 112325) -USDCTokenPool_setDomains:test_InvalidDomain_Revert() (gas: 74539) -USDCTokenPool_setDomains:test_OnlyOwner_Revert() (gas: 12298) -USDCTokenPool_supportsInterface:test_SupportsInterface_Success() (gas: 11479) \ No newline at end of file +USDCTokenPool__validateMessage:test_ValidateInvalidMessage_Revert() (gas: 25407) +USDCTokenPool_lockOrBurn:test_CallerIsNotARampOnRouter_Revert() (gas: 35364) +USDCTokenPool_lockOrBurn:test_LockOrBurnWithAllowList_Revert() (gas: 30106) +USDCTokenPool_lockOrBurn:test_LockOrBurn_Success() (gas: 133143) +USDCTokenPool_lockOrBurn:test_UnknownDomain_Revert() (gas: 477468) +USDCTokenPool_releaseOrMint:test_ReleaseOrMintRealTx_Success() (gas: 268219) +USDCTokenPool_releaseOrMint:test_TokenMaxCapacityExceeded_Revert() (gas: 50718) +USDCTokenPool_releaseOrMint:test_UnlockingUSDCFailed_Revert() (gas: 98636) +USDCTokenPool_setDomains:test_InvalidDomain_Revert() (gas: 66174) +USDCTokenPool_setDomains:test_OnlyOwner_Revert() (gas: 11339) +USDCTokenPool_supportsInterface:test_SupportsInterface_Success() (gas: 9876) \ No newline at end of file From e2bcb9cd934d9ee51a7c6d75128fc552f0ec743f Mon Sep 17 00:00:00 2001 From: Ryan <80392855+RayXpub@users.noreply.github.com> Date: Wed, 11 Sep 2024 13:39:54 +0400 Subject: [PATCH 08/19] chore: lower optimizer rounds --- contracts/foundry.toml | 2 +- contracts/scripts/native_solc_compile_all_ccip | 2 +- core/gethwrappers/ccip/generated/offramp/offramp.go | 2 +- .../generated-wrapper-dependency-versions-do-not-edit.txt | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/contracts/foundry.toml b/contracts/foundry.toml index c7c34e49d5..cb07c88de9 100644 --- a/contracts/foundry.toml +++ b/contracts/foundry.toml @@ -26,7 +26,7 @@ single_line_statement_blocks = "preserve" solc_version = '0.8.24' src = 'src/v0.8/ccip' test = 'src/v0.8/ccip/test' -optimizer_runs = 1_925 +optimizer_runs = 1_650 evm_version = 'paris' [profile.functions] diff --git a/contracts/scripts/native_solc_compile_all_ccip b/contracts/scripts/native_solc_compile_all_ccip index 7c4ff56bd8..a66d490140 100755 --- a/contracts/scripts/native_solc_compile_all_ccip +++ b/contracts/scripts/native_solc_compile_all_ccip @@ -10,7 +10,7 @@ SOLC_VERSION="0.8.24" OPTIMIZE_RUNS=26000 OPTIMIZE_RUNS_OFFRAMP=18000 OPTIMIZE_RUNS_ONRAMP=4100 -OPTIMIZE_RUNS_MULTI_OFFRAMP=1925 +OPTIMIZE_RUNS_MULTI_OFFRAMP=1650 SCRIPTPATH="$( cd "$(dirname "$0")" >/dev/null 2>&1 ; pwd -P )" diff --git a/core/gethwrappers/ccip/generated/offramp/offramp.go b/core/gethwrappers/ccip/generated/offramp/offramp.go index de640fd04b..1775f985bb 100644 --- a/core/gethwrappers/ccip/generated/offramp/offramp.go +++ b/core/gethwrappers/ccip/generated/offramp/offramp.go @@ -163,7 +163,7 @@ type OffRampStaticConfig struct { var OffRampMetaData = &bind.MetaData{ ABI: "[{\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"chainSelector\",\"type\":\"uint64\"},{\"internalType\":\"contractIRMNV2\",\"name\":\"rmn\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tokenAdminRegistry\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"nonceManager\",\"type\":\"address\"}],\"internalType\":\"structOffRamp.StaticConfig\",\"name\":\"staticConfig\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"feeQuoter\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"permissionLessExecutionThresholdSeconds\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"maxTokenTransferGas\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"maxPoolReleaseOrMintGas\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"messageValidator\",\"type\":\"address\"}],\"internalType\":\"structOffRamp.DynamicConfig\",\"name\":\"dynamicConfig\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"contractIRouter\",\"name\":\"router\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"bool\",\"name\":\"isEnabled\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"onRamp\",\"type\":\"bytes\"}],\"internalType\":\"structOffRamp.SourceChainConfigArgs[]\",\"name\":\"sourceChainConfigs\",\"type\":\"tuple[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"CanOnlySelfCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"expected\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"actual\",\"type\":\"bytes32\"}],\"name\":\"ConfigDigestMismatch\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"}],\"name\":\"CursedByRMN\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"EmptyReport\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"messageId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"err\",\"type\":\"bytes\"}],\"name\":\"ExecutionError\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"expected\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"actual\",\"type\":\"uint256\"}],\"name\":\"ForkedChain\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"enumMultiOCR3Base.InvalidConfigErrorType\",\"name\":\"errorType\",\"type\":\"uint8\"}],\"name\":\"InvalidConfig\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"expected\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"got\",\"type\":\"uint256\"}],\"name\":\"InvalidDataLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"encodedAddress\",\"type\":\"bytes\"}],\"name\":\"InvalidEVMAddress\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"min\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"max\",\"type\":\"uint64\"}],\"name\":\"InvalidInterval\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"newLimit\",\"type\":\"uint256\"}],\"name\":\"InvalidManualExecutionGasLimit\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"messageDestChainSelector\",\"type\":\"uint64\"}],\"name\":\"InvalidMessageDestChainSelector\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"sequenceNumber\",\"type\":\"uint64\"},{\"internalType\":\"enumInternal.MessageExecutionState\",\"name\":\"newState\",\"type\":\"uint8\"}],\"name\":\"InvalidNewState\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"reportOnRamp\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"configOnRamp\",\"type\":\"bytes\"}],\"name\":\"InvalidOnRamp\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidOnRampUpdate\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidProof\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidRoot\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"}],\"name\":\"InvalidStaticConfig\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LeavesCannotBeEmpty\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ManualExecutionGasLimitMismatch\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"}],\"name\":\"ManualExecutionNotYetEnabled\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"errorReason\",\"type\":\"bytes\"}],\"name\":\"MessageValidationError\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NonUniqueSignatures\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"notPool\",\"type\":\"address\"}],\"name\":\"NotACompatiblePool\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OracleCannotBeZeroAddress\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"err\",\"type\":\"bytes\"}],\"name\":\"ReceiverError\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amountReleased\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balancePre\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balancePost\",\"type\":\"uint256\"}],\"name\":\"ReleaseOrMintBalanceMismatch\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"merkleRoot\",\"type\":\"bytes32\"}],\"name\":\"RootAlreadyCommitted\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"}],\"name\":\"RootNotCommitted\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SignatureVerificationDisabled\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SignaturesOutOfRegistration\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"}],\"name\":\"SourceChainNotEnabled\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"reportSourceChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"messageSourceChainSelector\",\"type\":\"uint64\"}],\"name\":\"SourceChainSelectorMismatch\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"StaleCommitReport\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"ocrPluginType\",\"type\":\"uint8\"}],\"name\":\"StaticConfigCannotBeChanged\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"sequenceNumber\",\"type\":\"uint64\"}],\"name\":\"TokenDataMismatch\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"err\",\"type\":\"bytes\"}],\"name\":\"TokenHandlingError\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UnauthorizedSigner\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UnauthorizedTransmitter\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UnexpectedTokenData\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"expected\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"actual\",\"type\":\"uint256\"}],\"name\":\"WrongMessageLength\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"WrongNumberOfSignatures\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZeroAddressNotAllowed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZeroChainSelectorNotAllowed\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"sequenceNumber\",\"type\":\"uint64\"}],\"name\":\"AlreadyAttempted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"components\":[{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"sourceToken\",\"type\":\"address\"},{\"internalType\":\"uint224\",\"name\":\"usdPerToken\",\"type\":\"uint224\"}],\"internalType\":\"structInternal.TokenPriceUpdate[]\",\"name\":\"tokenPriceUpdates\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"uint64\",\"name\":\"destChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"uint224\",\"name\":\"usdPerUnitGas\",\"type\":\"uint224\"}],\"internalType\":\"structInternal.GasPriceUpdate[]\",\"name\":\"gasPriceUpdates\",\"type\":\"tuple[]\"}],\"internalType\":\"structInternal.PriceUpdates\",\"name\":\"priceUpdates\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"onRampAddress\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"minSeqNr\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"maxSeqNr\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"merkleRoot\",\"type\":\"bytes32\"}],\"internalType\":\"structInternal.MerkleRoot[]\",\"name\":\"merkleRoots\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"internalType\":\"structIRMNV2.Signature[]\",\"name\":\"rmnSignatures\",\"type\":\"tuple[]\"}],\"indexed\":false,\"internalType\":\"structOffRamp.CommitReport\",\"name\":\"report\",\"type\":\"tuple\"}],\"name\":\"CommitReportAccepted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"ocrPluginType\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"configDigest\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"signers\",\"type\":\"address[]\"},{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"transmitters\",\"type\":\"address[]\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"F\",\"type\":\"uint8\"}],\"name\":\"ConfigSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"feeQuoter\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"permissionLessExecutionThresholdSeconds\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"maxTokenTransferGas\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"maxPoolReleaseOrMintGas\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"messageValidator\",\"type\":\"address\"}],\"indexed\":false,\"internalType\":\"structOffRamp.DynamicConfig\",\"name\":\"dynamicConfig\",\"type\":\"tuple\"}],\"name\":\"DynamicConfigSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"sequenceNumber\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"messageId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"messageHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"enumInternal.MessageExecutionState\",\"name\":\"state\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"returnData\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"gasUsed\",\"type\":\"uint256\"}],\"name\":\"ExecutionStateChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"OwnershipTransferRequested\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"root\",\"type\":\"bytes32\"}],\"name\":\"RootRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"sequenceNumber\",\"type\":\"uint64\"}],\"name\":\"SkippedAlreadyExecutedMessage\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"}],\"name\":\"SkippedReportExecution\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"components\":[{\"internalType\":\"contractIRouter\",\"name\":\"router\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"isEnabled\",\"type\":\"bool\"},{\"internalType\":\"uint64\",\"name\":\"minSeqNr\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"onRamp\",\"type\":\"bytes\"}],\"indexed\":false,\"internalType\":\"structOffRamp.SourceChainConfig\",\"name\":\"sourceConfig\",\"type\":\"tuple\"}],\"name\":\"SourceChainConfigSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"}],\"name\":\"SourceChainSelectorAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"chainSelector\",\"type\":\"uint64\"},{\"internalType\":\"contractIRMNV2\",\"name\":\"rmn\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tokenAdminRegistry\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"nonceManager\",\"type\":\"address\"}],\"indexed\":false,\"internalType\":\"structOffRamp.StaticConfig\",\"name\":\"staticConfig\",\"type\":\"tuple\"}],\"name\":\"StaticConfigSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint8\",\"name\":\"ocrPluginType\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"configDigest\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"sequenceNumber\",\"type\":\"uint64\"}],\"name\":\"Transmitted\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"acceptOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"contractIRouter\",\"name\":\"router\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"bool\",\"name\":\"isEnabled\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"onRamp\",\"type\":\"bytes\"}],\"internalType\":\"structOffRamp.SourceChainConfigArgs[]\",\"name\":\"sourceChainConfigUpdates\",\"type\":\"tuple[]\"}],\"name\":\"applySourceChainConfigUpdates\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"messageId\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"sender\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"structClient.EVMTokenAmount[]\",\"name\":\"destTokenAmounts\",\"type\":\"tuple[]\"}],\"internalType\":\"structClient.Any2EVMMessage\",\"name\":\"\",\"type\":\"tuple\"}],\"name\":\"ccipReceive\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32[3]\",\"name\":\"reportContext\",\"type\":\"bytes32[3]\"},{\"internalType\":\"bytes\",\"name\":\"report\",\"type\":\"bytes\"},{\"internalType\":\"bytes32[]\",\"name\":\"rs\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes32[]\",\"name\":\"ss\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes32\",\"name\":\"rawVs\",\"type\":\"bytes32\"}],\"name\":\"commit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32[3]\",\"name\":\"reportContext\",\"type\":\"bytes32[3]\"},{\"internalType\":\"bytes\",\"name\":\"report\",\"type\":\"bytes\"}],\"name\":\"execute\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"messageId\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"destChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"sequenceNumber\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"internalType\":\"structInternal.RampMessageHeader\",\"name\":\"header\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"sender\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"gasLimit\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"bytes\",\"name\":\"sourcePoolAddress\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"destTokenAddress\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"extraData\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"destExecData\",\"type\":\"bytes\"}],\"internalType\":\"structInternal.RampTokenAmount[]\",\"name\":\"tokenAmounts\",\"type\":\"tuple[]\"}],\"internalType\":\"structInternal.Any2EVMRampMessage\",\"name\":\"message\",\"type\":\"tuple\"},{\"internalType\":\"bytes[]\",\"name\":\"offchainTokenData\",\"type\":\"bytes[]\"}],\"name\":\"executeSingleMessage\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getDynamicConfig\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"feeQuoter\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"permissionLessExecutionThresholdSeconds\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"maxTokenTransferGas\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"maxPoolReleaseOrMintGas\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"messageValidator\",\"type\":\"address\"}],\"internalType\":\"structOffRamp.DynamicConfig\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"sequenceNumber\",\"type\":\"uint64\"}],\"name\":\"getExecutionState\",\"outputs\":[{\"internalType\":\"enumInternal.MessageExecutionState\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getLatestPriceSequenceNumber\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"root\",\"type\":\"bytes32\"}],\"name\":\"getMerkleRoot\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"}],\"name\":\"getSourceChainConfig\",\"outputs\":[{\"components\":[{\"internalType\":\"contractIRouter\",\"name\":\"router\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"isEnabled\",\"type\":\"bool\"},{\"internalType\":\"uint64\",\"name\":\"minSeqNr\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"onRamp\",\"type\":\"bytes\"}],\"internalType\":\"structOffRamp.SourceChainConfig\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getStaticConfig\",\"outputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"chainSelector\",\"type\":\"uint64\"},{\"internalType\":\"contractIRMNV2\",\"name\":\"rmn\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tokenAdminRegistry\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"nonceManager\",\"type\":\"address\"}],\"internalType\":\"structOffRamp.StaticConfig\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"ocrPluginType\",\"type\":\"uint8\"}],\"name\":\"latestConfigDetails\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"configDigest\",\"type\":\"bytes32\"},{\"internalType\":\"uint8\",\"name\":\"F\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"n\",\"type\":\"uint8\"},{\"internalType\":\"bool\",\"name\":\"isSignatureVerificationEnabled\",\"type\":\"bool\"}],\"internalType\":\"structMultiOCR3Base.ConfigInfo\",\"name\":\"configInfo\",\"type\":\"tuple\"},{\"internalType\":\"address[]\",\"name\":\"signers\",\"type\":\"address[]\"},{\"internalType\":\"address[]\",\"name\":\"transmitters\",\"type\":\"address[]\"}],\"internalType\":\"structMultiOCR3Base.OCRConfig\",\"name\":\"ocrConfig\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"components\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"messageId\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"destChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"sequenceNumber\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"internalType\":\"structInternal.RampMessageHeader\",\"name\":\"header\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"sender\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"gasLimit\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"bytes\",\"name\":\"sourcePoolAddress\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"destTokenAddress\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"extraData\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"destExecData\",\"type\":\"bytes\"}],\"internalType\":\"structInternal.RampTokenAmount[]\",\"name\":\"tokenAmounts\",\"type\":\"tuple[]\"}],\"internalType\":\"structInternal.Any2EVMRampMessage[]\",\"name\":\"messages\",\"type\":\"tuple[]\"},{\"internalType\":\"bytes[][]\",\"name\":\"offchainTokenData\",\"type\":\"bytes[][]\"},{\"internalType\":\"bytes32[]\",\"name\":\"proofs\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"proofFlagBits\",\"type\":\"uint256\"}],\"internalType\":\"structInternal.ExecutionReportSingleChain[]\",\"name\":\"reports\",\"type\":\"tuple[]\"},{\"internalType\":\"uint256[][]\",\"name\":\"gasLimitOverrides\",\"type\":\"uint256[][]\"}],\"name\":\"manuallyExecute\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"feeQuoter\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"permissionLessExecutionThresholdSeconds\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"maxTokenTransferGas\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"maxPoolReleaseOrMintGas\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"messageValidator\",\"type\":\"address\"}],\"internalType\":\"structOffRamp.DynamicConfig\",\"name\":\"dynamicConfig\",\"type\":\"tuple\"}],\"name\":\"setDynamicConfig\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"configDigest\",\"type\":\"bytes32\"},{\"internalType\":\"uint8\",\"name\":\"ocrPluginType\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"F\",\"type\":\"uint8\"},{\"internalType\":\"bool\",\"name\":\"isSignatureVerificationEnabled\",\"type\":\"bool\"},{\"internalType\":\"address[]\",\"name\":\"signers\",\"type\":\"address[]\"},{\"internalType\":\"address[]\",\"name\":\"transmitters\",\"type\":\"address[]\"}],\"internalType\":\"structMultiOCR3Base.OCRConfigArgs[]\",\"name\":\"ocrConfigArgs\",\"type\":\"tuple[]\"}],\"name\":\"setOCR3Configs\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"typeAndVersion\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"}]", - Bin: "0x6101206040523480156200001257600080fd5b5060405162006d0a38038062006d0a83398101604081905262000035916200085e565b33806000816200008c5760405162461bcd60e51b815260206004820152601860248201527f43616e6e6f7420736574206f776e657220746f207a65726f000000000000000060448201526064015b60405180910390fd5b600080546001600160a01b0319166001600160a01b0384811691909117909155811615620000bf57620000bf81620001fa565b5050466080525060208301516001600160a01b03161580620000ec575060408301516001600160a01b0316155b8062000103575060608301516001600160a01b0316155b1562000122576040516342bcdf7f60e11b815260040160405180910390fd5b82516001600160401b03166000036200014e5760405163c656089560e01b815260040160405180910390fd5b82516001600160401b0390811660a052602080850180516001600160a01b0390811660c05260408088018051831660e0526060808a01805185166101005283518b519098168852945184169587019590955251821690850152905116908201527f683eb52ee924eb817377cfa8f41f238f4bb7a877da5267869dfffbad85f564d89060800160405180910390a1620001e682620002a5565b620001f181620003c1565b50505062000bfe565b336001600160a01b03821603620002545760405162461bcd60e51b815260206004820152601760248201527f43616e6e6f74207472616e7366657220746f2073656c66000000000000000000604482015260640162000083565b600180546001600160a01b0319166001600160a01b0383811691821790925560008054604051929316917fed8889f560326eb138920d842192f0eb3dd22b4f139c87a2c57538e05bae12789190a350565b80516001600160a01b0316620002ce576040516342bcdf7f60e11b815260040160405180910390fd5b80516004805460208085018051604080880180516060808b0180516001600160a01b039b8c166001600160c01b0319909a168a17600160a01b63ffffffff98891602176001600160c01b0316600160c01b948816949094026001600160e01b031693909317600160e01b93871693909302929092179098556080808b018051600580546001600160a01b031916918d169190911790558451988952955185169688019690965290518316918601919091525116938301939093529151909216908201527fa55bd56595c45f517e5967a3067f3dca684445a3080e7c04a4e0d5a40cda627d9060a00160405180910390a150565b60005b8151811015620005fd576000828281518110620003e557620003e5620009b4565b60200260200101519050600081602001519050806001600160401b0316600003620004235760405163c656089560e01b815260040160405180910390fd5b81516001600160a01b03166200044c576040516342bcdf7f60e11b815260040160405180910390fd5b6001600160401b038116600090815260066020526040902060608301516001820180546200047a90620009ca565b9050600003620004d8578154600160a81b600160e81b031916600160a81b1782556040516001600160401b03841681527ff4c1390c70e5c0f491ae1ccbc06f9117cbbadf2767b247b3bc203280f24c0fb99060200160405180910390a15b805115806200050e5750604080516000602082015201604051602081830303815290604052805190602001208180519060200120145b156200052d576040516342bcdf7f60e11b815260040160405180910390fd5b8154600160a81b90046001600160401b03166001146200056057604051634ffae15560e11b815260040160405180910390fd5b6001820162000570828262000a5b565b50604080850151835486516001600160a01b03166001600160a01b0319921515600160a01b02929092166001600160a81b031990911617178355516001600160401b038416907f49f51971edd25182e97182d6ea372a0488ce2ab639f6a3a7ab4df0d2636fe56b90620005e590859062000b27565b60405180910390a250505050806001019050620003c4565b5050565b634e487b7160e01b600052604160045260246000fd5b604051608081016001600160401b03811182821017156200063c576200063c62000601565b60405290565b604051601f8201601f191681016001600160401b03811182821017156200066d576200066d62000601565b604052919050565b80516001600160401b03811681146200068d57600080fd5b919050565b6001600160a01b0381168114620006a857600080fd5b50565b805163ffffffff811681146200068d57600080fd5b6000601f83601f840112620006d457600080fd5b825160206001600160401b0380831115620006f357620006f362000601565b8260051b6200070483820162000642565b93845286810183019383810190898611156200071f57600080fd5b84890192505b8583101562000851578251848111156200073f5760008081fd5b89016080601f19828d038101821315620007595760008081fd5b6200076362000617565b88840151620007728162000692565b815260406200078385820162000675565b8a83015260608086015180151581146200079d5760008081fd5b83830152938501519389851115620007b55760008081fd5b84860195508f603f870112620007cd57600094508485fd5b8a860151945089851115620007e657620007e662000601565b620007f78b858f8801160162000642565b93508484528f828688010111156200080f5760008081fd5b60005b858110156200082f578681018301518582018d01528b0162000812565b5060009484018b01949094525091820152835250918401919084019062000725565b9998505050505050505050565b60008060008385036101408112156200087657600080fd5b60808112156200088557600080fd5b6200088f62000617565b6200089a8662000675565b81526020860151620008ac8162000692565b60208201526040860151620008c18162000692565b60408201526060860151620008d68162000692565b6060820152935060a0607f1982011215620008f057600080fd5b5060405160a081016001600160401b03808211838310171562000917576200091762000601565b81604052608087015191506200092d8262000692565b8183526200093e60a08801620006ab565b60208401526200095160c08801620006ab565b60408401526200096460e08801620006ab565b606084015261010087015191506200097c8262000692565b60808301829052610120870151929450808311156200099a57600080fd5b5050620009aa86828701620006c0565b9150509250925092565b634e487b7160e01b600052603260045260246000fd5b600181811c90821680620009df57607f821691505b60208210810362000a0057634e487b7160e01b600052602260045260246000fd5b50919050565b601f82111562000a56576000816000526020600020601f850160051c8101602086101562000a315750805b601f850160051c820191505b8181101562000a525782815560010162000a3d565b5050505b505050565b81516001600160401b0381111562000a775762000a7762000601565b62000a8f8162000a888454620009ca565b8462000a06565b602080601f83116001811462000ac7576000841562000aae5750858301515b600019600386901b1c1916600185901b17855562000a52565b600085815260208120601f198616915b8281101562000af85788860151825594840194600190910190840162000ad7565b508582101562000b175787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b602080825282546001600160a01b0381168383015260a081901c60ff161515604084015260a81c6001600160401b0316606083015260808083015260018084018054600093929190849062000b7c81620009ca565b8060a089015260c0600183166000811462000ba0576001811462000bbd5762000bef565b60ff19841660c08b015260c083151560051b8b0101945062000bef565b85600052602060002060005b8481101562000be65781548c820185015290880190890162000bc9565b8b0160c0019550505b50929998505050505050505050565b60805160a05160c05160e0516101005161609662000c74600039600081816102400152612aef0152600081816102110152612fe30152600081816101e20152818161077f0152818161098601526124710152600081816101b201526126fe01526000818161185f01526118ab01526160966000f3fe608060405234801561001057600080fd5b50600436106101515760003560e01c806379ba5097116100cd578063c673e58411610081578063e9d68a8e11610066578063e9d68a8e1461052a578063f2fde38b1461054a578063f716f99f1461055d57600080fd5b8063c673e584146104c5578063ccd37ba3146104e557600080fd5b80638da5cb5b116100b25780638da5cb5b14610484578063991a50181461049f578063a80036b4146104b257600080fd5b806379ba50971461046e57806385572ffb1461047657600080fd5b80632d04ab76116101245780633f4b04aa116101095780633f4b04aa146103365780635e36480c146103525780637437ff9f1461037257600080fd5b80632d04ab7614610310578063311cd5131461032357600080fd5b806304666f9c1461015657806305d938b51461016b57806306285c691461017e578063181f5a77146102c7575b600080fd5b6101696101643660046141af565b610570565b005b610169610179366004614839565b610584565b61027060408051608081018252600080825260208201819052918101829052606081019190915260405180608001604052807f000000000000000000000000000000000000000000000000000000000000000067ffffffffffffffff1681526020017f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031681526020017f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031681526020017f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316815250905090565b6040516102be9190815167ffffffffffffffff1681526020808301516001600160a01b0390811691830191909152604080840151821690830152606092830151169181019190915260800190565b60405180910390f35b6103036040518060400160405280601181526020017f4f666652616d7020312e362e302d64657600000000000000000000000000000081525081565b6040516102be91906149b4565b61016961031e366004614a5f565b610729565b610169610331366004614b12565b610da5565b60095460405167ffffffffffffffff90911681526020016102be565b610365610360366004614b66565b610e0e565b6040516102be9190614bc3565b6104116040805160a081018252600080825260208201819052918101829052606081018290526080810191909152506040805160a0810182526004546001600160a01b03808216835263ffffffff600160a01b83048116602085015278010000000000000000000000000000000000000000000000008304811694840194909452600160e01b9091049092166060820152600554909116608082015290565b6040516102be9190600060a0820190506001600160a01b03808451168352602084015163ffffffff808216602086015280604087015116604086015280606087015116606086015250508060808501511660808401525092915050565b610169610e64565b610169610151366004614bd1565b6000546040516001600160a01b0390911681526020016102be565b6101696104ad366004614c20565b610f22565b6101696104c0366004614c94565b610f33565b6104d86104d3366004614d01565b6112a6565b6040516102be9190614d61565b61051c6104f3366004614dd6565b67ffffffffffffffff919091166000908152600860209081526040808320938352929052205490565b6040519081526020016102be565b61053d610538366004614e00565b611404565b6040516102be9190614e1b565b610169610558366004614e69565b611511565b61016961056b366004614eee565b611522565b610578611564565b610581816115c0565b50565b61058c61185c565b8151815181146105c8576040517f83e3f56400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60005b818110156107195760008482815181106105e7576105e761502c565b6020026020010151905060008160200151519050600085848151811061060f5761060f61502c565b6020026020010151905080518214610653576040517f83e3f56400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60005b8281101561070a5760008282815181106106725761067261502c565b6020026020010151905080600014610701578460200151828151811061069a5761069a61502c565b6020026020010151608001518110156107015784516040517fc8e9605100000000000000000000000000000000000000000000000000000000815267ffffffffffffffff909116600482015260248101839052604481018290526064015b60405180910390fd5b50600101610656565b505050508060010190506105cb565b5061072483836118dd565b505050565b60006107378789018961525b565b602081015151909150156107e357602081015160408083015190517fccd5af000000000000000000000000000000000000000000000000000000000081526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169263ccd5af00926107b2926004016154c1565b60006040518083038186803b1580156107ca57600080fd5b505afa1580156107de573d6000803e3d6000fd5b505050505b805151511515806107f957508051602001515115155b156108f95760095460208a01359067ffffffffffffffff808316911610156108b8576009805467ffffffffffffffff191667ffffffffffffffff83161790556004805483516040517f3937306f0000000000000000000000000000000000000000000000000000000081526001600160a01b0390921692633937306f926108819291016155a3565b600060405180830381600087803b15801561089b57600080fd5b505af11580156108af573d6000803e3d6000fd5b505050506108f7565b8160200151516000036108f7576040517f2261116700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505b60005b816020015151811015610cee576000826020015182815181106109215761092161502c565b602090810291909101015180516040517f2cbc26bb00000000000000000000000000000000000000000000000000000000815277ffffffffffffffff00000000000000000000000000000000608083901b166004820152919250906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690632cbc26bb90602401602060405180830381865afa1580156109cd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109f191906155b6565b15610a34576040517ffdbd6a7200000000000000000000000000000000000000000000000000000000815267ffffffffffffffff821660048201526024016106f8565b6000610a3f8261198d565b90506000816001018054610a52906155d3565b80601f0160208091040260200160405190810160405280929190818152602001828054610a7e906155d3565b8015610acb5780601f10610aa057610100808354040283529160200191610acb565b820191906000526020600020905b815481529060010190602001808311610aae57829003601f168201915b50505050509050808051906020012084602001518051906020012014610b25578360200151816040517f213009580000000000000000000000000000000000000000000000000000000081526004016106f892919061560d565b60408401518254600160a81b900467ffffffffffffffff9081169116141580610b695750836060015167ffffffffffffffff16846040015167ffffffffffffffff16115b15610bc8578351604080860151606087015191517fd5e0f0d600000000000000000000000000000000000000000000000000000000815267ffffffffffffffff93841660048201529083166024820152911660448201526064016106f8565b608084015180610c04576040517f504570e300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b845167ffffffffffffffff16600090815260086020908152604080832084845290915290205415610c775784516040517f32cf0cbf00000000000000000000000000000000000000000000000000000000815267ffffffffffffffff9091166004820152602481018290526044016106f8565b6060850151610c87906001615648565b83547fffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffff16600160a81b67ffffffffffffffff9283160217909355935190911660009081526008602090815260408083209583529490529290922042905550506001016108fc565b507f23bc80217a08968cec0790cd045b396fa7eea0a21af469e603329940b883d86d81604051610d1e9190615670565b60405180910390a1610d9a60008a8a8a8a8a8080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020808e0282810182019093528d82529093508d92508c9182918501908490808284376000920191909152508b92506119f4915050565b505050505050505050565b610de5610db4828401846156c8565b6040805160008082526020820190925290610ddf565b6060815260200190600190039081610dca5790505b506118dd565b604080516000808252602082019092529050610e086001858585858660006119f4565b50505050565b6000610e1c600160046156fd565b6002610e29608085615726565b67ffffffffffffffff16610e3d919061574d565b610e478585611d6b565b901c166003811115610e5b57610e5b614b99565b90505b92915050565b6001546001600160a01b03163314610ebe5760405162461bcd60e51b815260206004820152601660248201527f4d7573742062652070726f706f736564206f776e65720000000000000000000060448201526064016106f8565b600080543373ffffffffffffffffffffffffffffffffffffffff19808316821784556001805490911690556040516001600160a01b0390921692909183917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a350565b610f2a611564565b61058181611db2565b333014610f6c576040517f371a732800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040805160008082526020820190925281610fa9565b6040805180820190915260008082526020820152815260200190600190039081610f825790505b5060a08501515190915015610fdd57610fda8460a00151856020015186606001518760000151602001518787611f18565b90505b6040805160a0810182528551518152855160209081015167ffffffffffffffff16818301528087015183516000948401926110199291016149b4565b60408051601f19818403018152918152908252878101516020830152018390526005549091506001600160a01b03168015611126576040517f08d450a10000000000000000000000000000000000000000000000000000000081526001600160a01b038216906308d450a190611093908590600401615806565b600060405180830381600087803b1580156110ad57600080fd5b505af19250505080156110be575060015b611126573d8080156110ec576040519150601f19603f3d011682016040523d82523d6000602084013e6110f1565b606091505b50806040517f09c253250000000000000000000000000000000000000000000000000000000081526004016106f891906149b4565b60408601515115801561113b57506080860151155b80611152575060608601516001600160a01b03163b155b8061119257506060860151611190906001600160a01b03167f85572ffb00000000000000000000000000000000000000000000000000000000612037565b155b1561119f57505050505050565b855160209081015167ffffffffffffffff1660009081526006909152604080822054608089015160608a015192517f3cf9798300000000000000000000000000000000000000000000000000000000815284936001600160a01b0390931692633cf97983926112179289926113889291600401615819565b6000604051808303816000875af1158015611236573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261125e9190810190615855565b50915091508161129c57806040517f0a8d6e8c0000000000000000000000000000000000000000000000000000000081526004016106f891906149b4565b5050505050505050565b6112e96040805160e081019091526000606082018181526080830182905260a0830182905260c08301919091528190815260200160608152602001606081525090565b60ff808316600090815260026020818152604092839020835160e081018552815460608201908152600183015480881660808401526101008104881660a0840152620100009004909616151560c08201529485529182018054845181840281018401909552808552929385830193909283018282801561139257602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611374575b50505050508152602001600382018054806020026020016040519081016040528092919081815260200182805480156113f457602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116113d6575b5050505050815250509050919050565b604080516080808201835260008083526020808401829052838501829052606080850181905267ffffffffffffffff878116845260068352928690208651948501875280546001600160a01b0381168652600160a01b810460ff16151593860193909352600160a81b909204909216948301949094526001840180549394929391840191611491906155d3565b80601f01602080910402602001604051908101604052809291908181526020018280546114bd906155d3565b80156113f45780601f106114df576101008083540402835291602001916113f4565b820191906000526020600020905b8154815290600101906020018083116114ed57505050919092525091949350505050565b611519611564565b61058181612053565b61152a611564565b60005b81518110156115605761155882828151811061154b5761154b61502c565b6020026020010151612109565b60010161152d565b5050565b6000546001600160a01b031633146115be5760405162461bcd60e51b815260206004820152601660248201527f4f6e6c792063616c6c61626c65206279206f776e65720000000000000000000060448201526064016106f8565b565b60005b81518110156115605760008282815181106115e0576115e061502c565b602002602001015190506000816020015190508067ffffffffffffffff16600003611637576040517fc656089500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81516001600160a01b031661165f576040516342bcdf7f60e11b815260040160405180910390fd5b67ffffffffffffffff81166000908152600660205260409020606083015160018201805461168c906155d3565b90506000036116ff5781547fffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffff16600160a81b17825560405167ffffffffffffffff841681527ff4c1390c70e5c0f491ae1ccbc06f9117cbbadf2767b247b3bc203280f24c0fb99060200160405180910390a15b805115806117345750604080516000602082015201604051602081830303815290604052805190602001208180519060200120145b15611752576040516342bcdf7f60e11b815260040160405180910390fd5b8154600160a81b900467ffffffffffffffff1660011461179e576040517f9ff5c2aa00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600182016117ac828261593b565b50604080850151835486516001600160a01b031673ffffffffffffffffffffffffffffffffffffffff19921515600160a01b02929092167fffffffffffffffffffffff000000000000000000000000000000000000000000909116171783555167ffffffffffffffff8416907f49f51971edd25182e97182d6ea372a0488ce2ab639f6a3a7ab4df0d2636fe56b906118459085906159fb565b60405180910390a2505050508060010190506115c3565b467f0000000000000000000000000000000000000000000000000000000000000000146115be576040517f0f01ce850000000000000000000000000000000000000000000000000000000081527f000000000000000000000000000000000000000000000000000000000000000060048201524660248201526044016106f8565b8151600003611917576040517ebf199700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b805160408051600080825260208201909252911591905b84518110156119865761197e85828151811061194c5761194c61502c565b6020026020010151846119785785838151811061196b5761196b61502c565b602002602001015161241d565b8361241d565b60010161192e565b5050505050565b67ffffffffffffffff811660009081526006602052604081208054600160a01b900460ff16610e5e576040517fed053c5900000000000000000000000000000000000000000000000000000000815267ffffffffffffffff841660048201526024016106f8565b60ff87811660009081526002602090815260408083208151608081018352815481526001909101548086169382019390935261010083048516918101919091526201000090910490921615156060830152873590611a538760a4615ac9565b9050826060015115611a9b578451611a6c90602061574d565b8651611a7990602061574d565b611a849060a0615ac9565b611a8e9190615ac9565b611a989082615ac9565b90505b368114611add576040517f8e1192e1000000000000000000000000000000000000000000000000000000008152600481018290523660248201526044016106f8565b5081518114611b255781516040517f93df584c0000000000000000000000000000000000000000000000000000000081526004810191909152602481018290526044016106f8565b611b2d61185c565b60ff808a1660009081526003602090815260408083203384528252808320815180830190925280548086168352939491939092840191610100909104166002811115611b7b57611b7b614b99565b6002811115611b8c57611b8c614b99565b9052509050600281602001516002811115611ba957611ba9614b99565b148015611bfd5750600260008b60ff1660ff168152602001908152602001600020600301816000015160ff1681548110611be557611be561502c565b6000918252602090912001546001600160a01b031633145b611c33576040517fda0f08e800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50816060015115611d15576020820151611c4e906001615adc565b60ff16855114611c8a576040517f71253a2500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8351855114611cc5576040517fa75d88af00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008787604051611cd7929190615af5565b604051908190038120611cee918b90602001615b05565b604051602081830303815290604052805190602001209050611d138a82888888612d9d565b505b6040805182815260208a81013567ffffffffffffffff169082015260ff8b16917f198d6990ef96613a9026203077e422916918b03ff47f0be6bee7b02d8e139ef0910160405180910390a2505050505050505050565b67ffffffffffffffff8216600090815260076020526040812081611d90608085615b19565b67ffffffffffffffff1681526020810191909152604001600020549392505050565b80516001600160a01b0316611dda576040516342bcdf7f60e11b815260040160405180910390fd5b80516004805460208085018051604080880180516060808b0180516001600160a01b039b8c167fffffffffffffffff000000000000000000000000000000000000000000000000909a168a17600160a01b63ffffffff988916021777ffffffffffffffffffffffffffffffffffffffffffffffff167801000000000000000000000000000000000000000000000000948816949094026001600160e01b031693909317600160e01b93871693909302929092179098556080808b0180516005805473ffffffffffffffffffffffffffffffffffffffff1916918d169190911790558451988952955185169688019690965290518316918601919091525116938301939093529151909216908201527fa55bd56595c45f517e5967a3067f3dca684445a3080e7c04a4e0d5a40cda627d9060a00160405180910390a150565b6060865167ffffffffffffffff811115611f3457611f34613fc6565b604051908082528060200260200182016040528015611f7957816020015b6040805180820190915260008082526020820152815260200190600190039081611f525790505b50905060005b875181101561202b57612006888281518110611f9d57611f9d61502c565b6020026020010151888888888887818110611fba57611fba61502c565b9050602002810190611fcc9190615b40565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612f8292505050565b8282815181106120185761201861502c565b6020908102919091010152600101611f7f565b505b9695505050505050565b600061204283613327565b8015610e5b5750610e5b838361338b565b336001600160a01b038216036120ab5760405162461bcd60e51b815260206004820152601760248201527f43616e6e6f74207472616e7366657220746f2073656c6600000000000000000060448201526064016106f8565b6001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0383811691821790925560008054604051929316917fed8889f560326eb138920d842192f0eb3dd22b4f139c87a2c57538e05bae12789190a350565b806040015160ff16600003612134576000604051631b3fab5160e11b81526004016106f89190615b87565b60208082015160ff808216600090815260029093526040832060018101549293909283921690036121a157606084015160018201805491151562010000027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff9092169190911790556121f6565b6060840151600182015460ff62010000909104161515901515146121f6576040517f87f6037c00000000000000000000000000000000000000000000000000000000815260ff841660048201526024016106f8565b60a084015180516101001015612222576001604051631b3fab5160e11b81526004016106f89190615b87565b612288848460030180548060200260200160405190810160405280929190818152602001828054801561227e57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311612260575b5050505050613446565b846060015115612392576122f6848460020180548060200260200160405190810160405280929190818152602001828054801561227e576020028201919060005260206000209081546001600160a01b03168152600190910190602001808311612260575050505050613446565b608085015180516101001015612322576002604051631b3fab5160e11b81526004016106f89190615b87565b6040860151612332906003615ba1565b60ff16815111612358576003604051631b3fab5160e11b81526004016106f89190615b87565b805160018401805461ff00191661010060ff8416021790556123839060028601906020840190613f3f565b50612390858260016134af565b505b61239e848260026134af565b80516123b39060038501906020840190613f3f565b5060408581015160018401805460ff191660ff8316179055865180855560a088015192517fab8b1b57514019638d7b5ce9c638fe71366fe8e2be1c40a7a80f1733d0e9f5479361240c9389939260028a01929190615bbd565b60405180910390a161198684613623565b815181516040517f2cbc26bb000000000000000000000000000000000000000000000000000000008152608083901b77ffffffffffffffff00000000000000000000000000000000166004820152901515907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690632cbc26bb90602401602060405180830381865afa1580156124c0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124e491906155b6565b1561257057801561252d576040517ffdbd6a7200000000000000000000000000000000000000000000000000000000815267ffffffffffffffff831660048201526024016106f8565b60405167ffffffffffffffff831681527faab522ed53d887e56ed53dd37398a01aeef6a58e0fa77c2173beb9512d8949339060200160405180910390a150505050565b600061257b8361198d565b6001018054612589906155d3565b80601f01602080910402602001604051908101604052809291908181526020018280546125b5906155d3565b80156126025780601f106125d757610100808354040283529160200191612602565b820191906000526020600020905b8154815290600101906020018083116125e557829003601f168201915b5050506020880151519293505050600081900361264a576040517ebf199700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8560400151518114612688576040517f57e0e08300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008167ffffffffffffffff8111156126a3576126a3613fc6565b6040519080825280602002602001820160405280156126cc578160200160208202803683370190505b50905060005b82811015612825576000886020015182815181106126f2576126f261502c565b602002602001015190507f000000000000000000000000000000000000000000000000000000000000000067ffffffffffffffff1681600001516040015167ffffffffffffffff161461278557805160409081015190517f38432a2200000000000000000000000000000000000000000000000000000000815267ffffffffffffffff90911660048201526024016106f8565b8667ffffffffffffffff1681600001516020015167ffffffffffffffff16146127f5578051602001516040517f6c95f1eb00000000000000000000000000000000000000000000000000000000815267ffffffffffffffff808a16600483015290911660248201526044016106f8565b6127ff8186613693565b8383815181106128115761281161502c565b6020908102919091010152506001016126d2565b50600061283c86838a606001518b608001516137b5565b905080600003612884576040517f7dd17a7e00000000000000000000000000000000000000000000000000000000815267ffffffffffffffff871660048201526024016106f8565b60005b83811015610d9a5760005a905060008a6020015183815181106128ac576128ac61502c565b6020026020010151905060006128ca8a836000015160600151610e0e565b905060008160038111156128e0576128e0614b99565b14806128fd575060038160038111156128fb576128fb614b99565b145b612955578151606001516040805167ffffffffffffffff808e16825290921660208301527f3b575419319662b2a6f5e2467d84521517a3382b908eb3d557bb3fdb0c50e23c91015b60405180910390a1505050612d95565b8815612a2557600454600090600160a01b900463ffffffff1661297887426156fd565b11905080806129985750600382600381111561299657612996614b99565b145b6129da576040517fa9cfc86200000000000000000000000000000000000000000000000000000000815267ffffffffffffffff8c1660048201526024016106f8565b8b85815181106129ec576129ec61502c565b6020026020010151600014612a1f578b8581518110612a0d57612a0d61502c565b60200260200101518360800181815250505b50612a86565b6000816003811115612a3957612a39614b99565b14612a86578151606001516040805167ffffffffffffffff808e16825290921660208301527f3ef2a99c550a751d4b0b261268f05a803dfb049ab43616a1ffb388f61fe651209101612945565b81516080015167ffffffffffffffff1615612b75576000816003811115612aaf57612aaf614b99565b03612b755781516080015160208301516040517fe0e03cae0000000000000000000000000000000000000000000000000000000081526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169263e0e03cae92612b26928f929190600401615c69565b6020604051808303816000875af1158015612b45573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b6991906155b6565b612b7557505050612d95565b60008c604001518581518110612b8d57612b8d61502c565b6020026020010151905080518360a001515114612bf1578251606001516040517f1cfe6d8b00000000000000000000000000000000000000000000000000000000815267ffffffffffffffff808e16600483015290911660248201526044016106f8565b612c058b84600001516060015160016137f3565b600080612c12858461389b565b91509150612c298d866000015160600151846137f3565b8b15612c99576003826003811115612c4357612c43614b99565b03612c99576000846003811115612c5c57612c5c614b99565b14612c99578451516040517f2b11b8d90000000000000000000000000000000000000000000000000000000081526106f891908390600401615c96565b6002826003811115612cad57612cad614b99565b14612d07576003826003811115612cc657612cc6614b99565b14612d07578451606001516040517f926c5a3e0000000000000000000000000000000000000000000000000000000081526106f8918f918590600401615caf565b84600001516000015185600001516060015167ffffffffffffffff168e67ffffffffffffffff167f05665fe9ad095383d018353f4cbcba77e84db27dd215081bbf7cdf9ae6fbe48b8c8b81518110612d6157612d6161502c565b602002602001015186865a612d76908e6156fd565b604051612d869493929190615cd5565b60405180910390a45050505050505b600101612887565b8251600090815b8181101561129c576000600188868460208110612dc357612dc361502c565b612dd091901a601b615adc565b898581518110612de257612de261502c565b6020026020010151898681518110612dfc57612dfc61502c565b602002602001015160405160008152602001604052604051612e3a949392919093845260ff9290921660208401526040830152606082015260800190565b6020604051602081039080840390855afa158015612e5c573d6000803e3d6000fd5b505060408051601f1981015160ff808e166000908152600360209081528582206001600160a01b03851683528152858220858701909652855480841686529397509095509293928401916101009004166002811115612ebd57612ebd614b99565b6002811115612ece57612ece614b99565b9052509050600181602001516002811115612eeb57612eeb614b99565b14612f22576040517fca31867a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8051600160ff9091161b851615612f65576040517ff67bc7c400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b806000015160ff166001901b851794505050806001019050612da4565b60408051808201909152600080825260208201526000612fa58760200151613965565b6040517fbbe4f6db0000000000000000000000000000000000000000000000000000000081526001600160a01b0380831660048301529192506000917f0000000000000000000000000000000000000000000000000000000000000000169063bbe4f6db90602401602060405180830381865afa15801561302a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061304e9190615d0c565b90506001600160a01b038116158061309657506130946001600160a01b0382167faff2afbf00000000000000000000000000000000000000000000000000000000612037565b155b156130d8576040517fae9b4ce90000000000000000000000000000000000000000000000000000000081526001600160a01b03821660048201526024016106f8565b60045460009081906130fa9089908690600160e01b900463ffffffff16613a0b565b9150915060008060006131c76040518061010001604052808e81526020018c67ffffffffffffffff1681526020018d6001600160a01b031681526020018f606001518152602001896001600160a01b031681526020018f6000015181526020018f6040015181526020018b8152506040516024016131789190615d29565b60408051601f198184030181529190526020810180516001600160e01b03167f390775370000000000000000000000000000000000000000000000000000000017905287866113886084613b39565b9250925092508261320657816040517fe1cd55090000000000000000000000000000000000000000000000000000000081526004016106f891906149b4565b815160201461324e5781516040517f78ef80240000000000000000000000000000000000000000000000000000000081526020600482015260248101919091526044016106f8565b6000828060200190518101906132649190615df6565b9050866001600160a01b03168c6001600160a01b0316146132f95760006132958d8a613290868a6156fd565b613a0b565b509050868110806132af5750816132ac88836156fd565b14155b156132f7576040517fa966e21f0000000000000000000000000000000000000000000000000000000081526004810183905260248101889052604481018290526064016106f8565b505b604080518082019091526001600160a01b039098168852602088015250949550505050505095945050505050565b6000613353827f01ffc9a70000000000000000000000000000000000000000000000000000000061338b565b8015610e5e5750613384827fffffffff0000000000000000000000000000000000000000000000000000000061338b565b1592915050565b6040517fffffffff0000000000000000000000000000000000000000000000000000000082166024820152600090819060440160408051601f19818403018152919052602080820180516001600160e01b03167f01ffc9a700000000000000000000000000000000000000000000000000000000178152825192935060009283928392909183918a617530fa92503d9150600051905082801561342f575060208210155b801561343b5750600081115b979650505050505050565b60005b81518110156107245760ff83166000908152600360205260408120835190919084908490811061347b5761347b61502c565b6020908102919091018101516001600160a01b03168252810191909152604001600020805461ffff19169055600101613449565b60005b8251811015610e085760008382815181106134cf576134cf61502c565b60200260200101519050600060028111156134ec576134ec614b99565b60ff80871660009081526003602090815260408083206001600160a01b0387168452909152902054610100900416600281111561352b5761352b614b99565b1461354c576004604051631b3fab5160e11b81526004016106f89190615b87565b6001600160a01b03811661358c576040517fd6c62c9b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60405180604001604052808360ff1681526020018460028111156135b2576135b2614b99565b905260ff80871660009081526003602090815260408083206001600160a01b0387168452825290912083518154931660ff198416811782559184015190929091839161ffff19161761010083600281111561360f5761360f614b99565b0217905550905050508060010190506134b2565b60ff81166105815760ff8082166000908152600260205260409020600101546201000090041661367f576040517f7a3b4c9400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6009805467ffffffffffffffff1916905550565b8151602080820151604092830151925160009384936136d9937f2425b0b9f9054c76ff151b0a175b18f37a4a4e82013a72e9f15c9caa095ed21f93909291889101615e0f565b60408051601f1981840301815290829052805160209182012086518051888401516060808b0151908401516080808d015195015195976137229794969395929491939101615e42565b604051602081830303815290604052805190602001208560400151805190602001208660a001516040516020016137599190615f47565b60408051601f198184030181528282528051602091820120908301969096528101939093526060830191909152608082015260a081019190915260c0015b60405160208183030381529060405280519060200120905092915050565b6000806137c3858585613c5f565b67ffffffffffffffff8716600090815260086020908152604080832093835292905220549150505b949350505050565b60006002613802608085615726565b67ffffffffffffffff16613816919061574d565b905060006138248585611d6b565b905081613833600160046156fd565b901b19168183600381111561384a5761384a614b99565b67ffffffffffffffff871660009081526007602052604081209190921b92909217918291613879608088615b19565b67ffffffffffffffff1681526020810191909152604001600020555050505050565b6040517fa80036b4000000000000000000000000000000000000000000000000000000008152600090606090309063a80036b4906138df9087908790600401615fa7565b600060405180830381600087803b1580156138f957600080fd5b505af192505050801561390a575060015b613949573d808015613938576040519150601f19603f3d011682016040523d82523d6000602084013e61393d565b606091505b5060039250905061395e565b50506040805160208101909152600081526002905b9250929050565b600081516020146139a457816040517f8d666f600000000000000000000000000000000000000000000000000000000081526004016106f891906149b4565b6000828060200190518101906139ba9190615df6565b90506001600160a01b038111806139d2575061040081105b15610e5e57826040517f8d666f600000000000000000000000000000000000000000000000000000000081526004016106f891906149b4565b6000806000806000613a8588604051602401613a3691906001600160a01b0391909116815260200190565b60408051601f198184030181529190526020810180516001600160e01b03167f70a082310000000000000000000000000000000000000000000000000000000017905288886113886084613b39565b92509250925082613ac457816040517fe1cd55090000000000000000000000000000000000000000000000000000000081526004016106f891906149b4565b6020825114613b0c5781516040517f78ef80240000000000000000000000000000000000000000000000000000000081526020600482015260248101919091526044016106f8565b81806020019051810190613b209190615df6565b613b2a82886156fd565b94509450505050935093915050565b6000606060008361ffff1667ffffffffffffffff811115613b5c57613b5c613fc6565b6040519080825280601f01601f191660200182016040528015613b86576020820181803683370190505b509150863b613bb9577f0c3b563c0000000000000000000000000000000000000000000000000000000060005260046000fd5b5a85811015613bec577fafa32a2c0000000000000000000000000000000000000000000000000000000060005260046000fd5b8590036040810481038710613c25577f37c3be290000000000000000000000000000000000000000000000000000000060005260046000fd5b505a6000808a5160208c0160008c8cf193505a900390503d84811115613c485750835b808352806000602085013e50955095509592505050565b8251825160009190818303613ca0576040517f11a6b26400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6101018211801590613cb457506101018111155b613cd1576040516309bde33960e01b815260040160405180910390fd5b60001982820101610100811115613cfb576040516309bde33960e01b815260040160405180910390fd5b80600003613d285786600081518110613d1657613d1661502c565b60200260200101519350505050613ef7565b60008167ffffffffffffffff811115613d4357613d43613fc6565b604051908082528060200260200182016040528015613d6c578160200160208202803683370190505b50905060008080805b85811015613e965760006001821b8b811603613dd05788851015613db9578c5160018601958e918110613daa57613daa61502c565b60200260200101519050613df2565b8551600185019487918110613daa57613daa61502c565b8b5160018401938d918110613de757613de761502c565b602002602001015190505b600089861015613e22578d5160018701968f918110613e1357613e1361502c565b60200260200101519050613e44565b8651600186019588918110613e3957613e3961502c565b602002602001015190505b82851115613e65576040516309bde33960e01b815260040160405180910390fd5b613e6f8282613efe565b878481518110613e8157613e8161502c565b60209081029190910101525050600101613d75565b506001850382148015613ea857508683145b8015613eb357508581145b613ed0576040516309bde33960e01b815260040160405180910390fd5b836001860381518110613ee557613ee561502c565b60200260200101519750505050505050505b9392505050565b6000818310613f1657613f118284613f1c565b610e5b565b610e5b83835b604080516001602082015290810183905260608101829052600090608001613797565b828054828255906000526020600020908101928215613fa1579160200282015b82811115613fa1578251825473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03909116178255602090920191600190910190613f5f565b50613fad929150613fb1565b5090565b5b80821115613fad5760008155600101613fb2565b634e487b7160e01b600052604160045260246000fd5b6040516080810167ffffffffffffffff81118282101715613fff57613fff613fc6565b60405290565b60405160a0810167ffffffffffffffff81118282101715613fff57613fff613fc6565b60405160c0810167ffffffffffffffff81118282101715613fff57613fff613fc6565b6040805190810167ffffffffffffffff81118282101715613fff57613fff613fc6565b6040516060810167ffffffffffffffff81118282101715613fff57613fff613fc6565b604051601f8201601f1916810167ffffffffffffffff811182821017156140ba576140ba613fc6565b604052919050565b600067ffffffffffffffff8211156140dc576140dc613fc6565b5060051b60200190565b6001600160a01b038116811461058157600080fd5b803567ffffffffffffffff8116811461411357600080fd5b919050565b801515811461058157600080fd5b803561411381614118565b600067ffffffffffffffff82111561414b5761414b613fc6565b50601f01601f191660200190565b600082601f83011261416a57600080fd5b813561417d61417882614131565b614091565b81815284602083860101111561419257600080fd5b816020850160208301376000918101602001919091529392505050565b600060208083850312156141c257600080fd5b823567ffffffffffffffff808211156141da57600080fd5b818501915085601f8301126141ee57600080fd5b81356141fc614178826140c2565b81815260059190911b8301840190848101908883111561421b57600080fd5b8585015b838110156142c1578035858111156142375760008081fd5b86016080818c03601f190181131561424f5760008081fd5b614257613fdc565b89830135614264816140e6565b815260406142738482016140fb565b8b83015260608085013561428681614118565b8383015292840135928984111561429f57600091508182fd5b6142ad8f8d86880101614159565b90830152508552505091860191860161421f565b5098975050505050505050565b600060a082840312156142e057600080fd5b6142e8614005565b9050813581526142fa602083016140fb565b602082015261430b604083016140fb565b604082015261431c606083016140fb565b606082015261432d608083016140fb565b608082015292915050565b8035614113816140e6565b600082601f83011261435457600080fd5b81356020614364614178836140c2565b82815260059290921b8401810191818101908684111561438357600080fd5b8286015b8481101561202b57803567ffffffffffffffff808211156143a85760008081fd5b9088019060a0828b03601f19018113156143c25760008081fd5b6143ca614005565b87840135838111156143dc5760008081fd5b6143ea8d8a83880101614159565b825250604080850135848111156144015760008081fd5b61440f8e8b83890101614159565b8a84015250606080860135858111156144285760008081fd5b6144368f8c838a0101614159565b8385015250608091508186013581840152508285013592508383111561445c5760008081fd5b61446a8d8a85880101614159565b908201528652505050918301918301614387565b6000610140828403121561449157600080fd5b614499614028565b90506144a583836142ce565b815260a082013567ffffffffffffffff808211156144c257600080fd5b6144ce85838601614159565b602084015260c08401359150808211156144e757600080fd5b6144f385838601614159565b604084015261450460e08501614338565b6060840152610100840135608084015261012084013591508082111561452957600080fd5b5061453684828501614343565b60a08301525092915050565b600082601f83011261455357600080fd5b81356020614563614178836140c2565b82815260059290921b8401810191818101908684111561458257600080fd5b8286015b8481101561202b57803567ffffffffffffffff8111156145a65760008081fd5b6145b48986838b010161447e565b845250918301918301614586565b600082601f8301126145d357600080fd5b813560206145e3614178836140c2565b82815260059290921b8401810191818101908684111561460257600080fd5b8286015b8481101561202b57803567ffffffffffffffff8082111561462657600080fd5b818901915089603f83011261463a57600080fd5b8582013561464a614178826140c2565b81815260059190911b830160400190878101908c83111561466a57600080fd5b604085015b838110156146a35780358581111561468657600080fd5b6146958f6040838a0101614159565b84525091890191890161466f565b50875250505092840192508301614606565b600082601f8301126146c657600080fd5b813560206146d6614178836140c2565b8083825260208201915060208460051b8701019350868411156146f857600080fd5b602086015b8481101561202b57803583529183019183016146fd565b600082601f83011261472557600080fd5b81356020614735614178836140c2565b82815260059290921b8401810191818101908684111561475457600080fd5b8286015b8481101561202b57803567ffffffffffffffff808211156147795760008081fd5b9088019060a0828b03601f19018113156147935760008081fd5b61479b614005565b6147a68885016140fb565b8152604080850135848111156147bc5760008081fd5b6147ca8e8b83890101614542565b8a84015250606080860135858111156147e35760008081fd5b6147f18f8c838a01016145c2565b838501525060809150818601358581111561480c5760008081fd5b61481a8f8c838a01016146b5565b9184019190915250919093013590830152508352918301918301614758565b600080604080848603121561484d57600080fd5b833567ffffffffffffffff8082111561486557600080fd5b61487187838801614714565b945060209150818601358181111561488857600080fd5b8601601f8101881361489957600080fd5b80356148a7614178826140c2565b81815260059190911b8201840190848101908a8311156148c657600080fd5b8584015b83811015614952578035868111156148e25760008081fd5b8501603f81018d136148f45760008081fd5b87810135614904614178826140c2565b81815260059190911b82018a0190898101908f8311156149245760008081fd5b928b01925b828410156149425783358252928a0192908a0190614929565b86525050509186019186016148ca565b50809750505050505050509250929050565b60005b8381101561497f578181015183820152602001614967565b50506000910152565b600081518084526149a0816020860160208601614964565b601f01601f19169290920160200192915050565b602081526000610e5b6020830184614988565b8060608101831015610e5e57600080fd5b60008083601f8401126149ea57600080fd5b50813567ffffffffffffffff811115614a0257600080fd5b60208301915083602082850101111561395e57600080fd5b60008083601f840112614a2c57600080fd5b50813567ffffffffffffffff811115614a4457600080fd5b6020830191508360208260051b850101111561395e57600080fd5b60008060008060008060008060e0898b031215614a7b57600080fd5b614a858a8a6149c7565b9750606089013567ffffffffffffffff80821115614aa257600080fd5b614aae8c838d016149d8565b909950975060808b0135915080821115614ac757600080fd5b614ad38c838d01614a1a565b909750955060a08b0135915080821115614aec57600080fd5b50614af98b828c01614a1a565b999c989b50969995989497949560c00135949350505050565b600080600060808486031215614b2757600080fd5b614b3185856149c7565b9250606084013567ffffffffffffffff811115614b4d57600080fd5b614b59868287016149d8565b9497909650939450505050565b60008060408385031215614b7957600080fd5b614b82836140fb565b9150614b90602084016140fb565b90509250929050565b634e487b7160e01b600052602160045260246000fd5b60048110614bbf57614bbf614b99565b9052565b60208101610e5e8284614baf565b600060208284031215614be357600080fd5b813567ffffffffffffffff811115614bfa57600080fd5b820160a08185031215613ef757600080fd5b803563ffffffff8116811461411357600080fd5b600060a08284031215614c3257600080fd5b614c3a614005565b8235614c45816140e6565b8152614c5360208401614c0c565b6020820152614c6460408401614c0c565b6040820152614c7560608401614c0c565b60608201526080830135614c88816140e6565b60808201529392505050565b600080600060408486031215614ca957600080fd5b833567ffffffffffffffff80821115614cc157600080fd5b614ccd8783880161447e565b94506020860135915080821115614ce357600080fd5b50614b5986828701614a1a565b803560ff8116811461411357600080fd5b600060208284031215614d1357600080fd5b610e5b82614cf0565b60008151808452602080850194506020840160005b83811015614d565781516001600160a01b031687529582019590820190600101614d31565b509495945050505050565b60208152600082518051602084015260ff602082015116604084015260ff604082015116606084015260608101511515608084015250602083015160c060a0840152614db060e0840182614d1c565b90506040840151601f198483030160c0850152614dcd8282614d1c565b95945050505050565b60008060408385031215614de957600080fd5b614df2836140fb565b946020939093013593505050565b600060208284031215614e1257600080fd5b610e5b826140fb565b602081526001600160a01b03825116602082015260208201511515604082015267ffffffffffffffff6040830151166060820152600060608301516080808401526137eb60a0840182614988565b600060208284031215614e7b57600080fd5b8135613ef7816140e6565b600082601f830112614e9757600080fd5b81356020614ea7614178836140c2565b8083825260208201915060208460051b870101935086841115614ec957600080fd5b602086015b8481101561202b578035614ee1816140e6565b8352918301918301614ece565b60006020808385031215614f0157600080fd5b823567ffffffffffffffff80821115614f1957600080fd5b818501915085601f830112614f2d57600080fd5b8135614f3b614178826140c2565b81815260059190911b83018401908481019088831115614f5a57600080fd5b8585015b838110156142c157803585811115614f7557600080fd5b860160c0818c03601f19011215614f8c5760008081fd5b614f94614028565b8882013581526040614fa7818401614cf0565b8a8301526060614fb8818501614cf0565b8284015260809150614fcb828501614126565b9083015260a08381013589811115614fe35760008081fd5b614ff18f8d83880101614e86565b838501525060c084013591508882111561500b5760008081fd5b6150198e8c84870101614e86565b9083015250845250918601918601614f5e565b634e487b7160e01b600052603260045260246000fd5b80356001600160e01b038116811461411357600080fd5b600082601f83011261506a57600080fd5b8135602061507a614178836140c2565b82815260069290921b8401810191818101908684111561509957600080fd5b8286015b8481101561202b57604081890312156150b65760008081fd5b6150be61404b565b6150c7826140fb565b81526150d4858301615042565b8186015283529183019160400161509d565b600082601f8301126150f757600080fd5b81356020615107614178836140c2565b82815260059290921b8401810191818101908684111561512657600080fd5b8286015b8481101561202b57803567ffffffffffffffff8082111561514b5760008081fd5b9088019060a0828b03601f19018113156151655760008081fd5b61516d614005565b6151788885016140fb565b81526040808501358481111561518e5760008081fd5b61519c8e8b83890101614159565b8a84015250606093506151b08486016140fb565b9082015260806151c18582016140fb565b9382019390935292013590820152835291830191830161512a565b600082601f8301126151ed57600080fd5b813560206151fd614178836140c2565b82815260069290921b8401810191818101908684111561521c57600080fd5b8286015b8481101561202b57604081890312156152395760008081fd5b61524161404b565b813581528482013585820152835291830191604001615220565b6000602080838503121561526e57600080fd5b823567ffffffffffffffff8082111561528657600080fd5b908401906060828703121561529a57600080fd5b6152a261406e565b8235828111156152b157600080fd5b830160408189038113156152c457600080fd5b6152cc61404b565b8235858111156152db57600080fd5b8301601f81018b136152ec57600080fd5b80356152fa614178826140c2565b81815260069190911b8201890190898101908d83111561531957600080fd5b928a01925b828410156153695785848f0312156153365760008081fd5b61533e61404b565b8435615349816140e6565b8152615356858d01615042565b818d0152825292850192908a019061531e565b84525050508287013591508482111561538157600080fd5b61538d8a838501615059565b818801528352505082840135828111156153a657600080fd5b6153b2888286016150e6565b858301525060408301359350818411156153cb57600080fd5b6153d7878585016151dc565b60408201529695505050505050565b600082825180855260208086019550808260051b84010181860160005b8481101561547857601f19868403018952815160a067ffffffffffffffff80835116865286830151828888015261543c83880182614988565b60408581015184169089015260608086015190931692880192909252506080928301519290950191909152509783019790830190600101615403565b5090979650505050505050565b60008151808452602080850194506020840160005b83811015614d5657815180518852830151838801526040909601959082019060010161549a565b6040815260006154d460408301856153e6565b8281036020840152614dcd8185615485565b805160408084528151848201819052600092602091908201906060870190855b8181101561553d57835180516001600160a01b031684528501516001600160e01b0316858401529284019291850191600101615506565b50508583015187820388850152805180835290840192506000918401905b80831015615597578351805167ffffffffffffffff1683528501516001600160e01b03168583015292840192600192909201919085019061555b565b50979650505050505050565b602081526000610e5b60208301846154e6565b6000602082840312156155c857600080fd5b8151613ef781614118565b600181811c908216806155e757607f821691505b60208210810361560757634e487b7160e01b600052602260045260246000fd5b50919050565b6040815260006156206040830185614988565b8281036020840152614dcd8185614988565b634e487b7160e01b600052601160045260246000fd5b67ffffffffffffffff81811683821601908082111561566957615669615632565b5092915050565b60208152600082516060602084015261568c60808401826154e6565b90506020840151601f19808584030160408601526156aa83836153e6565b9250604086015191508085840301606086015250614dcd8282615485565b6000602082840312156156da57600080fd5b813567ffffffffffffffff8111156156f157600080fd5b6137eb84828501614714565b81810381811115610e5e57610e5e615632565b634e487b7160e01b600052601260045260246000fd5b600067ffffffffffffffff8084168061574157615741615710565b92169190910692915050565b8082028115828204841417610e5e57610e5e615632565b805182526000602067ffffffffffffffff81840151168185015260408084015160a0604087015261579860a0870182614988565b9050606085015186820360608801526157b18282614988565b608087810151898303918a01919091528051808352908601935060009250908501905b8083101561559757835180516001600160a01b03168352860151868301529285019260019290920191908401906157d4565b602081526000610e5b6020830184615764565b60808152600061582c6080830187615764565b61ffff9590951660208301525060408101929092526001600160a01b0316606090910152919050565b60008060006060848603121561586a57600080fd5b835161587581614118565b602085015190935067ffffffffffffffff81111561589257600080fd5b8401601f810186136158a357600080fd5b80516158b161417882614131565b8181528760208385010111156158c657600080fd5b6158d7826020830160208601614964565b809450505050604084015190509250925092565b601f821115610724576000816000526020600020601f850160051c810160208610156159145750805b601f850160051c820191505b8181101561593357828155600101615920565b505050505050565b815167ffffffffffffffff81111561595557615955613fc6565b6159698161596384546155d3565b846158eb565b602080601f83116001811461599e57600084156159865750858301515b600019600386901b1c1916600185901b178555615933565b600085815260208120601f198616915b828110156159cd578886015182559484019460019091019084016159ae565b50858210156159eb5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6000602080835283546001600160a01b038116602085015260ff8160a01c161515604085015267ffffffffffffffff8160a81c16606085015250600180850160808086015260008154615a4d816155d3565b8060a089015260c06001831660008114615a6e5760018114615a8a57615aba565b60ff19841660c08b015260c083151560051b8b01019450615aba565b85600052602060002060005b84811015615ab15781548c8201850152908801908901615a96565b8b0160c0019550505b50929998505050505050505050565b80820180821115610e5e57610e5e615632565b60ff8181168382160190811115610e5e57610e5e615632565b8183823760009101908152919050565b828152606082602083013760800192915050565b600067ffffffffffffffff80841680615b3457615b34615710565b92169190910492915050565b6000808335601e19843603018112615b5757600080fd5b83018035915067ffffffffffffffff821115615b7257600080fd5b60200191503681900382131561395e57600080fd5b6020810160058310615b9b57615b9b614b99565b91905290565b60ff818116838216029081169081811461566957615669615632565b600060a0820160ff881683526020878185015260a0604085015281875480845260c0860191508860005282600020935060005b81811015615c155784546001600160a01b031683526001948501949284019201615bf0565b50508481036060860152865180825290820192508187019060005b81811015615c555782516001600160a01b031685529383019391830191600101615c30565b50505060ff8516608085015250905061202d565b600067ffffffffffffffff808616835280851660208401525060606040830152614dcd6060830184614988565b8281526040602082015260006137eb6040830184614988565b67ffffffffffffffff848116825283166020820152606081016137eb6040830184614baf565b848152615ce56020820185614baf565b608060408201526000615cfb6080830185614988565b905082606083015295945050505050565b600060208284031215615d1e57600080fd5b8151613ef7816140e6565b6020815260008251610100806020850152615d48610120850183614988565b91506020850151615d65604086018267ffffffffffffffff169052565b5060408501516001600160a01b038116606086015250606085015160808501526080850151615d9f60a08601826001600160a01b03169052565b5060a0850151601f19808685030160c0870152615dbc8483614988565b935060c08701519150808685030160e0870152615dd98483614988565b935060e087015191508086850301838701525061202d8382614988565b600060208284031215615e0857600080fd5b5051919050565b848152600067ffffffffffffffff80861660208401528085166040840152506080606083015261202d6080830184614988565b86815260c060208201526000615e5b60c0830188614988565b6001600160a01b039690961660408301525067ffffffffffffffff9384166060820152608081019290925290911660a09091015292915050565b600082825180855260208086019550808260051b84010181860160005b8481101561547857601f19868403018952815160a08151818652615ed882870182614988565b9150508582015185820387870152615ef08282614988565b91505060408083015186830382880152615f0a8382614988565b92505050606080830151818701525060808083015192508582038187015250615f338183614988565b9a86019a9450505090830190600101615eb2565b602081526000610e5b6020830184615e95565b60008282518085526020808601955060208260051b8401016020860160005b8481101561547857601f19868403018952615f95838351614988565b98840198925090830190600101615f79565b604081526000835180516040840152602081015167ffffffffffffffff80821660608601528060408401511660808601528060608401511660a08601528060808401511660c086015250505060208401516101408060e085015261600f610180850183614988565b91506040860151603f19808685030161010087015261602e8483614988565b93506060880151915061604d6101208701836001600160a01b03169052565b60808801518387015260a08801519250808685030161016087015250506160748282615e95565b9150508281036020840152614dcd8185615f5a56fea164736f6c6343000818000a", + Bin: "0x6101206040523480156200001257600080fd5b5060405162006b5e38038062006b5e83398101604081905262000035916200085e565b33806000816200008c5760405162461bcd60e51b815260206004820152601860248201527f43616e6e6f7420736574206f776e657220746f207a65726f000000000000000060448201526064015b60405180910390fd5b600080546001600160a01b0319166001600160a01b0384811691909117909155811615620000bf57620000bf81620001fa565b5050466080525060208301516001600160a01b03161580620000ec575060408301516001600160a01b0316155b8062000103575060608301516001600160a01b0316155b1562000122576040516342bcdf7f60e11b815260040160405180910390fd5b82516001600160401b03166000036200014e5760405163c656089560e01b815260040160405180910390fd5b82516001600160401b0390811660a052602080850180516001600160a01b0390811660c05260408088018051831660e0526060808a01805185166101005283518b519098168852945184169587019590955251821690850152905116908201527f683eb52ee924eb817377cfa8f41f238f4bb7a877da5267869dfffbad85f564d89060800160405180910390a1620001e682620002a5565b620001f181620003c1565b50505062000bfe565b336001600160a01b03821603620002545760405162461bcd60e51b815260206004820152601760248201527f43616e6e6f74207472616e7366657220746f2073656c66000000000000000000604482015260640162000083565b600180546001600160a01b0319166001600160a01b0383811691821790925560008054604051929316917fed8889f560326eb138920d842192f0eb3dd22b4f139c87a2c57538e05bae12789190a350565b80516001600160a01b0316620002ce576040516342bcdf7f60e11b815260040160405180910390fd5b80516004805460208085018051604080880180516060808b0180516001600160a01b039b8c166001600160c01b0319909a168a17600160a01b63ffffffff98891602176001600160c01b0316600160c01b948816949094026001600160e01b031693909317600160e01b93871693909302929092179098556080808b018051600580546001600160a01b031916918d169190911790558451988952955185169688019690965290518316918601919091525116938301939093529151909216908201527fa55bd56595c45f517e5967a3067f3dca684445a3080e7c04a4e0d5a40cda627d9060a00160405180910390a150565b60005b8151811015620005fd576000828281518110620003e557620003e5620009b4565b60200260200101519050600081602001519050806001600160401b0316600003620004235760405163c656089560e01b815260040160405180910390fd5b81516001600160a01b03166200044c576040516342bcdf7f60e11b815260040160405180910390fd5b6001600160401b038116600090815260066020526040902060608301516001820180546200047a90620009ca565b9050600003620004d8578154600160a81b600160e81b031916600160a81b1782556040516001600160401b03841681527ff4c1390c70e5c0f491ae1ccbc06f9117cbbadf2767b247b3bc203280f24c0fb99060200160405180910390a15b805115806200050e5750604080516000602082015201604051602081830303815290604052805190602001208180519060200120145b156200052d576040516342bcdf7f60e11b815260040160405180910390fd5b8154600160a81b90046001600160401b03166001146200056057604051634ffae15560e11b815260040160405180910390fd5b6001820162000570828262000a5b565b50604080850151835486516001600160a01b03166001600160a01b0319921515600160a01b02929092166001600160a81b031990911617178355516001600160401b038416907f49f51971edd25182e97182d6ea372a0488ce2ab639f6a3a7ab4df0d2636fe56b90620005e590859062000b27565b60405180910390a250505050806001019050620003c4565b5050565b634e487b7160e01b600052604160045260246000fd5b604051608081016001600160401b03811182821017156200063c576200063c62000601565b60405290565b604051601f8201601f191681016001600160401b03811182821017156200066d576200066d62000601565b604052919050565b80516001600160401b03811681146200068d57600080fd5b919050565b6001600160a01b0381168114620006a857600080fd5b50565b805163ffffffff811681146200068d57600080fd5b6000601f83601f840112620006d457600080fd5b825160206001600160401b0380831115620006f357620006f362000601565b8260051b6200070483820162000642565b93845286810183019383810190898611156200071f57600080fd5b84890192505b8583101562000851578251848111156200073f5760008081fd5b89016080601f19828d038101821315620007595760008081fd5b6200076362000617565b88840151620007728162000692565b815260406200078385820162000675565b8a83015260608086015180151581146200079d5760008081fd5b83830152938501519389851115620007b55760008081fd5b84860195508f603f870112620007cd57600094508485fd5b8a860151945089851115620007e657620007e662000601565b620007f78b858f8801160162000642565b93508484528f828688010111156200080f5760008081fd5b60005b858110156200082f578681018301518582018d01528b0162000812565b5060009484018b01949094525091820152835250918401919084019062000725565b9998505050505050505050565b60008060008385036101408112156200087657600080fd5b60808112156200088557600080fd5b6200088f62000617565b6200089a8662000675565b81526020860151620008ac8162000692565b60208201526040860151620008c18162000692565b60408201526060860151620008d68162000692565b6060820152935060a0607f1982011215620008f057600080fd5b5060405160a081016001600160401b03808211838310171562000917576200091762000601565b81604052608087015191506200092d8262000692565b8183526200093e60a08801620006ab565b60208401526200095160c08801620006ab565b60408401526200096460e08801620006ab565b606084015261010087015191506200097c8262000692565b60808301829052610120870151929450808311156200099a57600080fd5b5050620009aa86828701620006c0565b9150509250925092565b634e487b7160e01b600052603260045260246000fd5b600181811c90821680620009df57607f821691505b60208210810362000a0057634e487b7160e01b600052602260045260246000fd5b50919050565b601f82111562000a56576000816000526020600020601f850160051c8101602086101562000a315750805b601f850160051c820191505b8181101562000a525782815560010162000a3d565b5050505b505050565b81516001600160401b0381111562000a775762000a7762000601565b62000a8f8162000a888454620009ca565b8462000a06565b602080601f83116001811462000ac7576000841562000aae5750858301515b600019600386901b1c1916600185901b17855562000a52565b600085815260208120601f198616915b8281101562000af85788860151825594840194600190910190840162000ad7565b508582101562000b175787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b602080825282546001600160a01b0381168383015260a081901c60ff161515604084015260a81c6001600160401b0316606083015260808083015260018084018054600093929190849062000b7c81620009ca565b8060a089015260c0600183166000811462000ba0576001811462000bbd5762000bef565b60ff19841660c08b015260c083151560051b8b0101945062000bef565b85600052602060002060005b8481101562000be65781548c820185015290880190890162000bc9565b8b0160c0019550505b50929998505050505050505050565b60805160a05160c05160e05161010051615eea62000c74600039600081816102400152612a0b0152600081816102110152612eff0152600081816101e20152818161074d0152818161093b01526123bf0152600081816101b2015261261a0152600081816117fb01526118470152615eea6000f3fe608060405234801561001057600080fd5b50600436106101515760003560e01c806379ba5097116100cd578063c673e58411610081578063e9d68a8e11610066578063e9d68a8e1461052a578063f2fde38b1461054a578063f716f99f1461055d57600080fd5b8063c673e584146104c5578063ccd37ba3146104e557600080fd5b80638da5cb5b116100b25780638da5cb5b14610484578063991a50181461049f578063a80036b4146104b257600080fd5b806379ba50971461046e57806385572ffb1461047657600080fd5b80632d04ab76116101245780633f4b04aa116101095780633f4b04aa146103365780635e36480c146103525780637437ff9f1461037257600080fd5b80632d04ab7614610310578063311cd5131461032357600080fd5b806304666f9c1461015657806305d938b51461016b57806306285c691461017e578063181f5a77146102c7575b600080fd5b610169610164366004614003565b610570565b005b61016961017936600461468d565b610584565b61027060408051608081018252600080825260208201819052918101829052606081019190915260405180608001604052807f000000000000000000000000000000000000000000000000000000000000000067ffffffffffffffff1681526020017f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031681526020017f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031681526020017f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316815250905090565b6040516102be9190815167ffffffffffffffff1681526020808301516001600160a01b0390811691830191909152604080840151821690830152606092830151169181019190915260800190565b60405180910390f35b6103036040518060400160405280601181526020017f4f666652616d7020312e362e302d64657600000000000000000000000000000081525081565b6040516102be9190614808565b61016961031e3660046148b3565b6106f7565b610169610331366004614966565b610d41565b60095460405167ffffffffffffffff90911681526020016102be565b6103656103603660046149ba565b610daa565b6040516102be9190614a17565b6104116040805160a081018252600080825260208201819052918101829052606081018290526080810191909152506040805160a0810182526004546001600160a01b03808216835263ffffffff600160a01b83048116602085015278010000000000000000000000000000000000000000000000008304811694840194909452600160e01b9091049092166060820152600554909116608082015290565b6040516102be9190600060a0820190506001600160a01b03808451168352602084015163ffffffff808216602086015280604087015116604086015280606087015116606086015250508060808501511660808401525092915050565b610169610e00565b610169610151366004614a25565b6000546040516001600160a01b0390911681526020016102be565b6101696104ad366004614a74565b610ebe565b6101696104c0366004614ae8565b610ecf565b6104d86104d3366004614b55565b611242565b6040516102be9190614bb5565b61051c6104f3366004614c2a565b67ffffffffffffffff919091166000908152600860209081526040808320938352929052205490565b6040519081526020016102be565b61053d610538366004614c54565b6113a0565b6040516102be9190614c6f565b610169610558366004614cbd565b6114ad565b61016961056b366004614d42565b6114be565b610578611500565b6105818161155c565b50565b61058c6117f8565b8151815181146105af576040516320f8fd5960e21b815260040160405180910390fd5b60005b818110156106e75760008482815181106105ce576105ce614e80565b602002602001015190506000816020015151905060008584815181106105f6576105f6614e80565b6020026020010151905080518214610621576040516320f8fd5960e21b815260040160405180910390fd5b60005b828110156106d857600082828151811061064057610640614e80565b60200260200101519050806000146106cf578460200151828151811061066857610668614e80565b6020026020010151608001518110156106cf5784516040517fc8e9605100000000000000000000000000000000000000000000000000000000815267ffffffffffffffff909116600482015260248101839052604481018290526064015b60405180910390fd5b50600101610624565b505050508060010190506105b2565b506106f28383611879565b505050565b6000610705878901896150af565b602081015151909150156107b157602081015160408083015190517fccd5af000000000000000000000000000000000000000000000000000000000081526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169263ccd5af009261078092600401615315565b60006040518083038186803b15801561079857600080fd5b505afa1580156107ac573d6000803e3d6000fd5b505050505b805151511515806107c757508051602001515115155b156108c75760095460208a01359067ffffffffffffffff80831691161015610886576009805467ffffffffffffffff191667ffffffffffffffff83161790556004805483516040517f3937306f0000000000000000000000000000000000000000000000000000000081526001600160a01b0390921692633937306f9261084f9291016153f7565b600060405180830381600087803b15801561086957600080fd5b505af115801561087d573d6000803e3d6000fd5b505050506108c5565b8160200151516000036108c5576040517f2261116700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505b60005b816020015151811015610c8a576000826020015182815181106108ef576108ef614e80565b60209081029190910101518051604051632cbc26bb60e01b815277ffffffffffffffff00000000000000000000000000000000608083901b166004820152919250906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690632cbc26bb90602401602060405180830381865afa158015610982573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109a6919061540a565b156109d057604051637edeb53960e11b815267ffffffffffffffff821660048201526024016106c6565b60006109db82611910565b905060008160010180546109ee90615427565b80601f0160208091040260200160405190810160405280929190818152602001828054610a1a90615427565b8015610a675780601f10610a3c57610100808354040283529160200191610a67565b820191906000526020600020905b815481529060010190602001808311610a4a57829003601f168201915b50505050509050808051906020012084602001518051906020012014610ac1578360200151816040517f213009580000000000000000000000000000000000000000000000000000000081526004016106c6929190615461565b60408401518254600160a81b900467ffffffffffffffff9081169116141580610b055750836060015167ffffffffffffffff16846040015167ffffffffffffffff16115b15610b64578351604080860151606087015191517fd5e0f0d600000000000000000000000000000000000000000000000000000000815267ffffffffffffffff93841660048201529083166024820152911660448201526064016106c6565b608084015180610ba0576040517f504570e300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b845167ffffffffffffffff16600090815260086020908152604080832084845290915290205415610c135784516040517f32cf0cbf00000000000000000000000000000000000000000000000000000000815267ffffffffffffffff9091166004820152602481018290526044016106c6565b6060850151610c2390600161549c565b83547fffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffff16600160a81b67ffffffffffffffff9283160217909355935190911660009081526008602090815260408083209583529490529290922042905550506001016108ca565b507f23bc80217a08968cec0790cd045b396fa7eea0a21af469e603329940b883d86d81604051610cba91906154c4565b60405180910390a1610d3660008a8a8a8a8a8080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020808e0282810182019093528d82529093508d92508c9182918501908490808284376000920191909152508b9250611977915050565b505050505050505050565b610d81610d508284018461551c565b6040805160008082526020820190925290610d7b565b6060815260200190600190039081610d665790505b50611879565b604080516000808252602082019092529050610da4600185858585866000611977565b50505050565b6000610db860016004615551565b6002610dc560808561557a565b67ffffffffffffffff16610dd991906155a1565b610de38585611cee565b901c166003811115610df757610df76149ed565b90505b92915050565b6001546001600160a01b03163314610e5a5760405162461bcd60e51b815260206004820152601660248201527f4d7573742062652070726f706f736564206f776e65720000000000000000000060448201526064016106c6565b600080543373ffffffffffffffffffffffffffffffffffffffff19808316821784556001805490911690556040516001600160a01b0390921692909183917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a350565b610ec6611500565b61058181611d35565b333014610f08576040517f371a732800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040805160008082526020820190925281610f45565b6040805180820190915260008082526020820152815260200190600190039081610f1e5790505b5060a08501515190915015610f7957610f768460a00151856020015186606001518760000151602001518787611e9b565b90505b6040805160a0810182528551518152855160209081015167ffffffffffffffff1681830152808701518351600094840192610fb5929101614808565b60408051601f19818403018152918152908252878101516020830152018390526005549091506001600160a01b031680156110c2576040517f08d450a10000000000000000000000000000000000000000000000000000000081526001600160a01b038216906308d450a19061102f90859060040161565a565b600060405180830381600087803b15801561104957600080fd5b505af192505050801561105a575060015b6110c2573d808015611088576040519150601f19603f3d011682016040523d82523d6000602084013e61108d565b606091505b50806040517f09c253250000000000000000000000000000000000000000000000000000000081526004016106c69190614808565b6040860151511580156110d757506080860151155b806110ee575060608601516001600160a01b03163b155b8061112e5750606086015161112c906001600160a01b03167f85572ffb00000000000000000000000000000000000000000000000000000000611fba565b155b1561113b57505050505050565b855160209081015167ffffffffffffffff1660009081526006909152604080822054608089015160608a015192517f3cf9798300000000000000000000000000000000000000000000000000000000815284936001600160a01b0390931692633cf97983926111b3928992611388929160040161566d565b6000604051808303816000875af11580156111d2573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526111fa91908101906156a9565b50915091508161123857806040517f0a8d6e8c0000000000000000000000000000000000000000000000000000000081526004016106c69190614808565b5050505050505050565b6112856040805160e081019091526000606082018181526080830182905260a0830182905260c08301919091528190815260200160608152602001606081525090565b60ff808316600090815260026020818152604092839020835160e081018552815460608201908152600183015480881660808401526101008104881660a0840152620100009004909616151560c08201529485529182018054845181840281018401909552808552929385830193909283018282801561132e57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611310575b505050505081526020016003820180548060200260200160405190810160405280929190818152602001828054801561139057602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611372575b5050505050815250509050919050565b604080516080808201835260008083526020808401829052838501829052606080850181905267ffffffffffffffff878116845260068352928690208651948501875280546001600160a01b0381168652600160a01b810460ff16151593860193909352600160a81b90920490921694830194909452600184018054939492939184019161142d90615427565b80601f016020809104026020016040519081016040528092919081815260200182805461145990615427565b80156113905780601f1061147b57610100808354040283529160200191611390565b820191906000526020600020905b81548152906001019060200180831161148957505050919092525091949350505050565b6114b5611500565b61058181611fd6565b6114c6611500565b60005b81518110156114fc576114f48282815181106114e7576114e7614e80565b602002602001015161208c565b6001016114c9565b5050565b6000546001600160a01b0316331461155a5760405162461bcd60e51b815260206004820152601660248201527f4f6e6c792063616c6c61626c65206279206f776e65720000000000000000000060448201526064016106c6565b565b60005b81518110156114fc57600082828151811061157c5761157c614e80565b602002602001015190506000816020015190508067ffffffffffffffff166000036115d3576040517fc656089500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81516001600160a01b03166115fb576040516342bcdf7f60e11b815260040160405180910390fd5b67ffffffffffffffff81166000908152600660205260409020606083015160018201805461162890615427565b905060000361169b5781547fffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffff16600160a81b17825560405167ffffffffffffffff841681527ff4c1390c70e5c0f491ae1ccbc06f9117cbbadf2767b247b3bc203280f24c0fb99060200160405180910390a15b805115806116d05750604080516000602082015201604051602081830303815290604052805190602001208180519060200120145b156116ee576040516342bcdf7f60e11b815260040160405180910390fd5b8154600160a81b900467ffffffffffffffff1660011461173a576040517f9ff5c2aa00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60018201611748828261578f565b50604080850151835486516001600160a01b031673ffffffffffffffffffffffffffffffffffffffff19921515600160a01b02929092167fffffffffffffffffffffff000000000000000000000000000000000000000000909116171783555167ffffffffffffffff8416907f49f51971edd25182e97182d6ea372a0488ce2ab639f6a3a7ab4df0d2636fe56b906117e190859061584f565b60405180910390a25050505080600101905061155f565b467f00000000000000000000000000000000000000000000000000000000000000001461155a576040517f0f01ce850000000000000000000000000000000000000000000000000000000081527f000000000000000000000000000000000000000000000000000000000000000060048201524660248201526044016106c6565b815160000361189a5760405162bf199760e01b815260040160405180910390fd5b805160408051600080825260208201909252911591905b8451811015611909576119018582815181106118cf576118cf614e80565b6020026020010151846118fb578583815181106118ee576118ee614e80565b6020026020010151612384565b83612384565b6001016118b1565b5050505050565b67ffffffffffffffff811660009081526006602052604081208054600160a01b900460ff16610dfa576040517fed053c5900000000000000000000000000000000000000000000000000000000815267ffffffffffffffff841660048201526024016106c6565b60ff878116600090815260026020908152604080832081516080810183528154815260019091015480861693820193909352610100830485169181019190915262010000909104909216151560608301528735906119d68760a461591d565b9050826060015115611a1e5784516119ef9060206155a1565b86516119fc9060206155a1565b611a079060a061591d565b611a11919061591d565b611a1b908261591d565b90505b368114611a60576040517f8e1192e1000000000000000000000000000000000000000000000000000000008152600481018290523660248201526044016106c6565b5081518114611aa85781516040517f93df584c0000000000000000000000000000000000000000000000000000000081526004810191909152602481018290526044016106c6565b611ab06117f8565b60ff808a1660009081526003602090815260408083203384528252808320815180830190925280548086168352939491939092840191610100909104166002811115611afe57611afe6149ed565b6002811115611b0f57611b0f6149ed565b9052509050600281602001516002811115611b2c57611b2c6149ed565b148015611b805750600260008b60ff1660ff168152602001908152602001600020600301816000015160ff1681548110611b6857611b68614e80565b6000918252602090912001546001600160a01b031633145b611bb6576040517fda0f08e800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50816060015115611c98576020820151611bd1906001615930565b60ff16855114611c0d576040517f71253a2500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8351855114611c48576040517fa75d88af00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008787604051611c5a929190615949565b604051908190038120611c71918b90602001615959565b604051602081830303815290604052805190602001209050611c968a82888888612cb9565b505b6040805182815260208a81013567ffffffffffffffff169082015260ff8b16917f198d6990ef96613a9026203077e422916918b03ff47f0be6bee7b02d8e139ef0910160405180910390a2505050505050505050565b67ffffffffffffffff8216600090815260076020526040812081611d1360808561596d565b67ffffffffffffffff1681526020810191909152604001600020549392505050565b80516001600160a01b0316611d5d576040516342bcdf7f60e11b815260040160405180910390fd5b80516004805460208085018051604080880180516060808b0180516001600160a01b039b8c167fffffffffffffffff000000000000000000000000000000000000000000000000909a168a17600160a01b63ffffffff988916021777ffffffffffffffffffffffffffffffffffffffffffffffff167801000000000000000000000000000000000000000000000000948816949094026001600160e01b031693909317600160e01b93871693909302929092179098556080808b0180516005805473ffffffffffffffffffffffffffffffffffffffff1916918d169190911790558451988952955185169688019690965290518316918601919091525116938301939093529151909216908201527fa55bd56595c45f517e5967a3067f3dca684445a3080e7c04a4e0d5a40cda627d9060a00160405180910390a150565b6060865167ffffffffffffffff811115611eb757611eb7613e1a565b604051908082528060200260200182016040528015611efc57816020015b6040805180820190915260008082526020820152815260200190600190039081611ed55790505b50905060005b8751811015611fae57611f89888281518110611f2057611f20614e80565b6020026020010151888888888887818110611f3d57611f3d614e80565b9050602002810190611f4f9190615994565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612e9e92505050565b828281518110611f9b57611f9b614e80565b6020908102919091010152600101611f02565b505b9695505050505050565b6000611fc583613211565b8015610df75750610df7838361325c565b336001600160a01b0382160361202e5760405162461bcd60e51b815260206004820152601760248201527f43616e6e6f74207472616e7366657220746f2073656c6600000000000000000060448201526064016106c6565b6001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0383811691821790925560008054604051929316917fed8889f560326eb138920d842192f0eb3dd22b4f139c87a2c57538e05bae12789190a350565b806040015160ff166000036120b7576000604051631b3fab5160e11b81526004016106c691906159db565b60208082015160ff80821660009081526002909352604083206001810154929390928392169003612108576060840151600182018054911515620100000262ff00001990921691909117905561215d565b6060840151600182015460ff620100009091041615159015151461215d576040517f87f6037c00000000000000000000000000000000000000000000000000000000815260ff841660048201526024016106c6565b60a084015180516101001015612189576001604051631b3fab5160e11b81526004016106c691906159db565b6121ef84846003018054806020026020016040519081016040528092919081815260200182805480156121e557602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116121c7575b50505050506132fe565b8460600151156122f95761225d84846002018054806020026020016040519081016040528092919081815260200182805480156121e5576020028201919060005260206000209081546001600160a01b031681526001909101906020018083116121c75750505050506132fe565b608085015180516101001015612289576002604051631b3fab5160e11b81526004016106c691906159db565b60408601516122999060036159f5565b60ff168151116122bf576003604051631b3fab5160e11b81526004016106c691906159db565b805160018401805461ff00191661010060ff8416021790556122ea9060028601906020840190613d93565b506122f785826001613367565b505b61230584826002613367565b805161231a9060038501906020840190613d93565b5060408581015160018401805460ff191660ff8316179055865180855560a088015192517fab8b1b57514019638d7b5ce9c638fe71366fe8e2be1c40a7a80f1733d0e9f547936123739389939260028a01929190615a11565b60405180910390a1611909846134db565b81518151604051632cbc26bb60e01b8152608083901b77ffffffffffffffff00000000000000000000000000000000166004820152901515907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690632cbc26bb90602401602060405180830381865afa15801561240e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612432919061540a565b156124a557801561246257604051637edeb53960e11b815267ffffffffffffffff831660048201526024016106c6565b60405167ffffffffffffffff831681527faab522ed53d887e56ed53dd37398a01aeef6a58e0fa77c2173beb9512d8949339060200160405180910390a150505050565b60006124b083611910565b60010180546124be90615427565b80601f01602080910402602001604051908101604052809291908181526020018280546124ea90615427565b80156125375780601f1061250c57610100808354040283529160200191612537565b820191906000526020600020905b81548152906001019060200180831161251a57829003601f168201915b505050602088015151929350505060008190036125665760405162bf199760e01b815260040160405180910390fd5b85604001515181146125a4576040517f57e0e08300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008167ffffffffffffffff8111156125bf576125bf613e1a565b6040519080825280602002602001820160405280156125e8578160200160208202803683370190505b50905060005b828110156127415760008860200151828151811061260e5761260e614e80565b602002602001015190507f000000000000000000000000000000000000000000000000000000000000000067ffffffffffffffff1681600001516040015167ffffffffffffffff16146126a157805160409081015190517f38432a2200000000000000000000000000000000000000000000000000000000815267ffffffffffffffff90911660048201526024016106c6565b8667ffffffffffffffff1681600001516020015167ffffffffffffffff1614612711578051602001516040517f6c95f1eb00000000000000000000000000000000000000000000000000000000815267ffffffffffffffff808a16600483015290911660248201526044016106c6565b61271b818661354b565b83838151811061272d5761272d614e80565b6020908102919091010152506001016125ee565b50600061275886838a606001518b6080015161366d565b9050806000036127a0576040517f7dd17a7e00000000000000000000000000000000000000000000000000000000815267ffffffffffffffff871660048201526024016106c6565b60005b83811015610d365760005a905060008a6020015183815181106127c8576127c8614e80565b6020026020010151905060006127e68a836000015160600151610daa565b905060008160038111156127fc576127fc6149ed565b148061281957506003816003811115612817576128176149ed565b145b612871578151606001516040805167ffffffffffffffff808e16825290921660208301527f3b575419319662b2a6f5e2467d84521517a3382b908eb3d557bb3fdb0c50e23c91015b60405180910390a1505050612cb1565b881561294157600454600090600160a01b900463ffffffff166128948742615551565b11905080806128b4575060038260038111156128b2576128b26149ed565b145b6128f6576040517fa9cfc86200000000000000000000000000000000000000000000000000000000815267ffffffffffffffff8c1660048201526024016106c6565b8b858151811061290857612908614e80565b602002602001015160001461293b578b858151811061292957612929614e80565b60200260200101518360800181815250505b506129a2565b6000816003811115612955576129556149ed565b146129a2578151606001516040805167ffffffffffffffff808e16825290921660208301527f3ef2a99c550a751d4b0b261268f05a803dfb049ab43616a1ffb388f61fe651209101612861565b81516080015167ffffffffffffffff1615612a915760008160038111156129cb576129cb6149ed565b03612a915781516080015160208301516040517fe0e03cae0000000000000000000000000000000000000000000000000000000081526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169263e0e03cae92612a42928f929190600401615abd565b6020604051808303816000875af1158015612a61573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a85919061540a565b612a9157505050612cb1565b60008c604001518581518110612aa957612aa9614e80565b6020026020010151905080518360a001515114612b0d578251606001516040517f1cfe6d8b00000000000000000000000000000000000000000000000000000000815267ffffffffffffffff808e16600483015290911660248201526044016106c6565b612b218b84600001516060015160016136ab565b600080612b2e8584613753565b91509150612b458d866000015160600151846136ab565b8b15612bb5576003826003811115612b5f57612b5f6149ed565b03612bb5576000846003811115612b7857612b786149ed565b14612bb5578451516040517f2b11b8d90000000000000000000000000000000000000000000000000000000081526106c691908390600401615aea565b6002826003811115612bc957612bc96149ed565b14612c23576003826003811115612be257612be26149ed565b14612c23578451606001516040517f926c5a3e0000000000000000000000000000000000000000000000000000000081526106c6918f918590600401615b03565b84600001516000015185600001516060015167ffffffffffffffff168e67ffffffffffffffff167f05665fe9ad095383d018353f4cbcba77e84db27dd215081bbf7cdf9ae6fbe48b8c8b81518110612c7d57612c7d614e80565b602002602001015186865a612c92908e615551565b604051612ca29493929190615b29565b60405180910390a45050505050505b6001016127a3565b8251600090815b81811015611238576000600188868460208110612cdf57612cdf614e80565b612cec91901a601b615930565b898581518110612cfe57612cfe614e80565b6020026020010151898681518110612d1857612d18614e80565b602002602001015160405160008152602001604052604051612d56949392919093845260ff9290921660208401526040830152606082015260800190565b6020604051602081039080840390855afa158015612d78573d6000803e3d6000fd5b505060408051601f1981015160ff808e166000908152600360209081528582206001600160a01b03851683528152858220858701909652855480841686529397509095509293928401916101009004166002811115612dd957612dd96149ed565b6002811115612dea57612dea6149ed565b9052509050600181602001516002811115612e0757612e076149ed565b14612e3e576040517fca31867a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8051600160ff9091161b851615612e81576040517ff67bc7c400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b806000015160ff166001901b851794505050806001019050612cc0565b60408051808201909152600080825260208201526000612ec1876020015161381d565b6040517fbbe4f6db0000000000000000000000000000000000000000000000000000000081526001600160a01b0380831660048301529192506000917f0000000000000000000000000000000000000000000000000000000000000000169063bbe4f6db90602401602060405180830381865afa158015612f46573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f6a9190615b60565b90506001600160a01b0381161580612fb25750612fb06001600160a01b0382167faff2afbf00000000000000000000000000000000000000000000000000000000611fba565b155b15612ff4576040517fae9b4ce90000000000000000000000000000000000000000000000000000000081526001600160a01b03821660048201526024016106c6565b60045460009081906130169089908690600160e01b900463ffffffff16613891565b9150915060008060006130e36040518061010001604052808e81526020018c67ffffffffffffffff1681526020018d6001600160a01b031681526020018f606001518152602001896001600160a01b031681526020018f6000015181526020018f6040015181526020018b8152506040516024016130949190615b7d565b60408051601f198184030181529190526020810180516001600160e01b03167f39077537000000000000000000000000000000000000000000000000000000001790528786611388608461398d565b92509250925082613109578160405163e1cd550960e01b81526004016106c69190614808565b8151602014613138578151604051631e3be00960e21b81526020600482015260248101919091526044016106c6565b60008280602001905181019061314e9190615c4a565b9050866001600160a01b03168c6001600160a01b0316146131e357600061317f8d8a61317a868a615551565b613891565b509050868110806131995750816131968883615551565b14155b156131e1576040517fa966e21f0000000000000000000000000000000000000000000000000000000081526004810183905260248101889052604481018290526064016106c6565b505b604080518082019091526001600160a01b039098168852602088015250949550505050505095945050505050565b6000613224826301ffc9a760e01b61325c565b8015610dfa5750613255827fffffffff0000000000000000000000000000000000000000000000000000000061325c565b1592915050565b6040517fffffffff0000000000000000000000000000000000000000000000000000000082166024820152600090819060440160408051601f19818403018152919052602080820180516001600160e01b03166301ffc9a760e01b178152825192935060009283928392909183918a617530fa92503d915060005190508280156132e7575060208210155b80156132f35750600081115b979650505050505050565b60005b81518110156106f25760ff83166000908152600360205260408120835190919084908490811061333357613333614e80565b6020908102919091018101516001600160a01b03168252810191909152604001600020805461ffff19169055600101613301565b60005b8251811015610da457600083828151811061338757613387614e80565b60200260200101519050600060028111156133a4576133a46149ed565b60ff80871660009081526003602090815260408083206001600160a01b038716845290915290205461010090041660028111156133e3576133e36149ed565b14613404576004604051631b3fab5160e11b81526004016106c691906159db565b6001600160a01b038116613444576040517fd6c62c9b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60405180604001604052808360ff16815260200184600281111561346a5761346a6149ed565b905260ff80871660009081526003602090815260408083206001600160a01b0387168452825290912083518154931660ff198416811782559184015190929091839161ffff1916176101008360028111156134c7576134c76149ed565b02179055509050505080600101905061336a565b60ff81166105815760ff80821660009081526002602052604090206001015462010000900416613537576040517f7a3b4c9400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6009805467ffffffffffffffff1916905550565b815160208082015160409283015192516000938493613591937f2425b0b9f9054c76ff151b0a175b18f37a4a4e82013a72e9f15c9caa095ed21f93909291889101615c63565b60408051601f1981840301815290829052805160209182012086518051888401516060808b0151908401516080808d015195015195976135da9794969395929491939101615c96565b604051602081830303815290604052805190602001208560400151805190602001208660a001516040516020016136119190615d9b565b60408051601f198184030181528282528051602091820120908301969096528101939093526060830191909152608082015260a081019190915260c0015b60405160208183030381529060405280519060200120905092915050565b60008061367b858585613ab3565b67ffffffffffffffff8716600090815260086020908152604080832093835292905220549150505b949350505050565b600060026136ba60808561557a565b67ffffffffffffffff166136ce91906155a1565b905060006136dc8585611cee565b9050816136eb60016004615551565b901b191681836003811115613702576137026149ed565b67ffffffffffffffff871660009081526007602052604081209190921b9290921791829161373160808861596d565b67ffffffffffffffff1681526020810191909152604001600020555050505050565b6040517fa80036b4000000000000000000000000000000000000000000000000000000008152600090606090309063a80036b4906137979087908790600401615dfb565b600060405180830381600087803b1580156137b157600080fd5b505af19250505080156137c2575060015b613801573d8080156137f0576040519150601f19603f3d011682016040523d82523d6000602084013e6137f5565b606091505b50600392509050613816565b50506040805160208101909152600081526002905b9250929050565b60008151602014613843578160405163046b337b60e51b81526004016106c69190614808565b6000828060200190518101906138599190615c4a565b90506001600160a01b03811180613871575061040081105b15610dfa578260405163046b337b60e51b81526004016106c69190614808565b600080600080600061390b886040516024016138bc91906001600160a01b0391909116815260200190565b60408051601f198184030181529190526020810180516001600160e01b03167f70a08231000000000000000000000000000000000000000000000000000000001790528888611388608461398d565b92509250925082613931578160405163e1cd550960e01b81526004016106c69190614808565b6020825114613960578151604051631e3be00960e21b81526020600482015260248101919091526044016106c6565b818060200190518101906139749190615c4a565b61397e8288615551565b94509450505050935093915050565b6000606060008361ffff1667ffffffffffffffff8111156139b0576139b0613e1a565b6040519080825280601f01601f1916602001820160405280156139da576020820181803683370190505b509150863b613a0d577f0c3b563c0000000000000000000000000000000000000000000000000000000060005260046000fd5b5a85811015613a40577fafa32a2c0000000000000000000000000000000000000000000000000000000060005260046000fd5b8590036040810481038710613a79577f37c3be290000000000000000000000000000000000000000000000000000000060005260046000fd5b505a6000808a5160208c0160008c8cf193505a900390503d84811115613a9c5750835b808352806000602085013e50955095509592505050565b8251825160009190818303613af4576040517f11a6b26400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6101018211801590613b0857506101018111155b613b25576040516309bde33960e01b815260040160405180910390fd5b60001982820101610100811115613b4f576040516309bde33960e01b815260040160405180910390fd5b80600003613b7c5786600081518110613b6a57613b6a614e80565b60200260200101519350505050613d4b565b60008167ffffffffffffffff811115613b9757613b97613e1a565b604051908082528060200260200182016040528015613bc0578160200160208202803683370190505b50905060008080805b85811015613cea5760006001821b8b811603613c245788851015613c0d578c5160018601958e918110613bfe57613bfe614e80565b60200260200101519050613c46565b8551600185019487918110613bfe57613bfe614e80565b8b5160018401938d918110613c3b57613c3b614e80565b602002602001015190505b600089861015613c76578d5160018701968f918110613c6757613c67614e80565b60200260200101519050613c98565b8651600186019588918110613c8d57613c8d614e80565b602002602001015190505b82851115613cb9576040516309bde33960e01b815260040160405180910390fd5b613cc38282613d52565b878481518110613cd557613cd5614e80565b60209081029190910101525050600101613bc9565b506001850382148015613cfc57508683145b8015613d0757508581145b613d24576040516309bde33960e01b815260040160405180910390fd5b836001860381518110613d3957613d39614e80565b60200260200101519750505050505050505b9392505050565b6000818310613d6a57613d658284613d70565b610df7565b610df783835b60408051600160208201529081018390526060810182905260009060800161364f565b828054828255906000526020600020908101928215613df5579160200282015b82811115613df5578251825473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03909116178255602090920191600190910190613db3565b50613e01929150613e05565b5090565b5b80821115613e015760008155600101613e06565b634e487b7160e01b600052604160045260246000fd5b6040516080810167ffffffffffffffff81118282101715613e5357613e53613e1a565b60405290565b60405160a0810167ffffffffffffffff81118282101715613e5357613e53613e1a565b60405160c0810167ffffffffffffffff81118282101715613e5357613e53613e1a565b6040805190810167ffffffffffffffff81118282101715613e5357613e53613e1a565b6040516060810167ffffffffffffffff81118282101715613e5357613e53613e1a565b604051601f8201601f1916810167ffffffffffffffff81118282101715613f0e57613f0e613e1a565b604052919050565b600067ffffffffffffffff821115613f3057613f30613e1a565b5060051b60200190565b6001600160a01b038116811461058157600080fd5b803567ffffffffffffffff81168114613f6757600080fd5b919050565b801515811461058157600080fd5b8035613f6781613f6c565b600067ffffffffffffffff821115613f9f57613f9f613e1a565b50601f01601f191660200190565b600082601f830112613fbe57600080fd5b8135613fd1613fcc82613f85565b613ee5565b818152846020838601011115613fe657600080fd5b816020850160208301376000918101602001919091529392505050565b6000602080838503121561401657600080fd5b823567ffffffffffffffff8082111561402e57600080fd5b818501915085601f83011261404257600080fd5b8135614050613fcc82613f16565b81815260059190911b8301840190848101908883111561406f57600080fd5b8585015b838110156141155780358581111561408b5760008081fd5b86016080818c03601f19018113156140a35760008081fd5b6140ab613e30565b898301356140b881613f3a565b815260406140c7848201613f4f565b8b8301526060808501356140da81613f6c565b838301529284013592898411156140f357600091508182fd5b6141018f8d86880101613fad565b908301525085525050918601918601614073565b5098975050505050505050565b600060a0828403121561413457600080fd5b61413c613e59565b90508135815261414e60208301613f4f565b602082015261415f60408301613f4f565b604082015261417060608301613f4f565b606082015261418160808301613f4f565b608082015292915050565b8035613f6781613f3a565b600082601f8301126141a857600080fd5b813560206141b8613fcc83613f16565b82815260059290921b840181019181810190868411156141d757600080fd5b8286015b84811015611fae57803567ffffffffffffffff808211156141fc5760008081fd5b9088019060a0828b03601f19018113156142165760008081fd5b61421e613e59565b87840135838111156142305760008081fd5b61423e8d8a83880101613fad565b825250604080850135848111156142555760008081fd5b6142638e8b83890101613fad565b8a840152506060808601358581111561427c5760008081fd5b61428a8f8c838a0101613fad565b838501525060809150818601358184015250828501359250838311156142b05760008081fd5b6142be8d8a85880101613fad565b9082015286525050509183019183016141db565b600061014082840312156142e557600080fd5b6142ed613e7c565b90506142f98383614122565b815260a082013567ffffffffffffffff8082111561431657600080fd5b61432285838601613fad565b602084015260c084013591508082111561433b57600080fd5b61434785838601613fad565b604084015261435860e0850161418c565b6060840152610100840135608084015261012084013591508082111561437d57600080fd5b5061438a84828501614197565b60a08301525092915050565b600082601f8301126143a757600080fd5b813560206143b7613fcc83613f16565b82815260059290921b840181019181810190868411156143d657600080fd5b8286015b84811015611fae57803567ffffffffffffffff8111156143fa5760008081fd5b6144088986838b01016142d2565b8452509183019183016143da565b600082601f83011261442757600080fd5b81356020614437613fcc83613f16565b82815260059290921b8401810191818101908684111561445657600080fd5b8286015b84811015611fae57803567ffffffffffffffff8082111561447a57600080fd5b818901915089603f83011261448e57600080fd5b8582013561449e613fcc82613f16565b81815260059190911b830160400190878101908c8311156144be57600080fd5b604085015b838110156144f7578035858111156144da57600080fd5b6144e98f6040838a0101613fad565b8452509189019189016144c3565b5087525050509284019250830161445a565b600082601f83011261451a57600080fd5b8135602061452a613fcc83613f16565b8083825260208201915060208460051b87010193508684111561454c57600080fd5b602086015b84811015611fae5780358352918301918301614551565b600082601f83011261457957600080fd5b81356020614589613fcc83613f16565b82815260059290921b840181019181810190868411156145a857600080fd5b8286015b84811015611fae57803567ffffffffffffffff808211156145cd5760008081fd5b9088019060a0828b03601f19018113156145e75760008081fd5b6145ef613e59565b6145fa888501613f4f565b8152604080850135848111156146105760008081fd5b61461e8e8b83890101614396565b8a84015250606080860135858111156146375760008081fd5b6146458f8c838a0101614416565b83850152506080915081860135858111156146605760008081fd5b61466e8f8c838a0101614509565b91840191909152509190930135908301525083529183019183016145ac565b60008060408084860312156146a157600080fd5b833567ffffffffffffffff808211156146b957600080fd5b6146c587838801614568565b94506020915081860135818111156146dc57600080fd5b8601601f810188136146ed57600080fd5b80356146fb613fcc82613f16565b81815260059190911b8201840190848101908a83111561471a57600080fd5b8584015b838110156147a6578035868111156147365760008081fd5b8501603f81018d136147485760008081fd5b87810135614758613fcc82613f16565b81815260059190911b82018a0190898101908f8311156147785760008081fd5b928b01925b828410156147965783358252928a0192908a019061477d565b865250505091860191860161471e565b50809750505050505050509250929050565b60005b838110156147d35781810151838201526020016147bb565b50506000910152565b600081518084526147f48160208601602086016147b8565b601f01601f19169290920160200192915050565b602081526000610df760208301846147dc565b8060608101831015610dfa57600080fd5b60008083601f84011261483e57600080fd5b50813567ffffffffffffffff81111561485657600080fd5b60208301915083602082850101111561381657600080fd5b60008083601f84011261488057600080fd5b50813567ffffffffffffffff81111561489857600080fd5b6020830191508360208260051b850101111561381657600080fd5b60008060008060008060008060e0898b0312156148cf57600080fd5b6148d98a8a61481b565b9750606089013567ffffffffffffffff808211156148f657600080fd5b6149028c838d0161482c565b909950975060808b013591508082111561491b57600080fd5b6149278c838d0161486e565b909750955060a08b013591508082111561494057600080fd5b5061494d8b828c0161486e565b999c989b50969995989497949560c00135949350505050565b60008060006080848603121561497b57600080fd5b614985858561481b565b9250606084013567ffffffffffffffff8111156149a157600080fd5b6149ad8682870161482c565b9497909650939450505050565b600080604083850312156149cd57600080fd5b6149d683613f4f565b91506149e460208401613f4f565b90509250929050565b634e487b7160e01b600052602160045260246000fd5b60048110614a1357614a136149ed565b9052565b60208101610dfa8284614a03565b600060208284031215614a3757600080fd5b813567ffffffffffffffff811115614a4e57600080fd5b820160a08185031215613d4b57600080fd5b803563ffffffff81168114613f6757600080fd5b600060a08284031215614a8657600080fd5b614a8e613e59565b8235614a9981613f3a565b8152614aa760208401614a60565b6020820152614ab860408401614a60565b6040820152614ac960608401614a60565b60608201526080830135614adc81613f3a565b60808201529392505050565b600080600060408486031215614afd57600080fd5b833567ffffffffffffffff80821115614b1557600080fd5b614b21878388016142d2565b94506020860135915080821115614b3757600080fd5b506149ad8682870161486e565b803560ff81168114613f6757600080fd5b600060208284031215614b6757600080fd5b610df782614b44565b60008151808452602080850194506020840160005b83811015614baa5781516001600160a01b031687529582019590820190600101614b85565b509495945050505050565b60208152600082518051602084015260ff602082015116604084015260ff604082015116606084015260608101511515608084015250602083015160c060a0840152614c0460e0840182614b70565b90506040840151601f198483030160c0850152614c218282614b70565b95945050505050565b60008060408385031215614c3d57600080fd5b614c4683613f4f565b946020939093013593505050565b600060208284031215614c6657600080fd5b610df782613f4f565b602081526001600160a01b03825116602082015260208201511515604082015267ffffffffffffffff6040830151166060820152600060608301516080808401526136a360a08401826147dc565b600060208284031215614ccf57600080fd5b8135613d4b81613f3a565b600082601f830112614ceb57600080fd5b81356020614cfb613fcc83613f16565b8083825260208201915060208460051b870101935086841115614d1d57600080fd5b602086015b84811015611fae578035614d3581613f3a565b8352918301918301614d22565b60006020808385031215614d5557600080fd5b823567ffffffffffffffff80821115614d6d57600080fd5b818501915085601f830112614d8157600080fd5b8135614d8f613fcc82613f16565b81815260059190911b83018401908481019088831115614dae57600080fd5b8585015b8381101561411557803585811115614dc957600080fd5b860160c0818c03601f19011215614de05760008081fd5b614de8613e7c565b8882013581526040614dfb818401614b44565b8a8301526060614e0c818501614b44565b8284015260809150614e1f828501613f7a565b9083015260a08381013589811115614e375760008081fd5b614e458f8d83880101614cda565b838501525060c0840135915088821115614e5f5760008081fd5b614e6d8e8c84870101614cda565b9083015250845250918601918601614db2565b634e487b7160e01b600052603260045260246000fd5b80356001600160e01b0381168114613f6757600080fd5b600082601f830112614ebe57600080fd5b81356020614ece613fcc83613f16565b82815260069290921b84018101918181019086841115614eed57600080fd5b8286015b84811015611fae5760408189031215614f0a5760008081fd5b614f12613e9f565b614f1b82613f4f565b8152614f28858301614e96565b81860152835291830191604001614ef1565b600082601f830112614f4b57600080fd5b81356020614f5b613fcc83613f16565b82815260059290921b84018101918181019086841115614f7a57600080fd5b8286015b84811015611fae57803567ffffffffffffffff80821115614f9f5760008081fd5b9088019060a0828b03601f1901811315614fb95760008081fd5b614fc1613e59565b614fcc888501613f4f565b815260408085013584811115614fe25760008081fd5b614ff08e8b83890101613fad565b8a8401525060609350615004848601613f4f565b908201526080615015858201613f4f565b93820193909352920135908201528352918301918301614f7e565b600082601f83011261504157600080fd5b81356020615051613fcc83613f16565b82815260069290921b8401810191818101908684111561507057600080fd5b8286015b84811015611fae576040818903121561508d5760008081fd5b615095613e9f565b813581528482013585820152835291830191604001615074565b600060208083850312156150c257600080fd5b823567ffffffffffffffff808211156150da57600080fd5b90840190606082870312156150ee57600080fd5b6150f6613ec2565b82358281111561510557600080fd5b8301604081890381131561511857600080fd5b615120613e9f565b82358581111561512f57600080fd5b8301601f81018b1361514057600080fd5b803561514e613fcc82613f16565b81815260069190911b8201890190898101908d83111561516d57600080fd5b928a01925b828410156151bd5785848f03121561518a5760008081fd5b615192613e9f565b843561519d81613f3a565b81526151aa858d01614e96565b818d0152825292850192908a0190615172565b8452505050828701359150848211156151d557600080fd5b6151e18a838501614ead565b818801528352505082840135828111156151fa57600080fd5b61520688828601614f3a565b8583015250604083013593508184111561521f57600080fd5b61522b87858501615030565b60408201529695505050505050565b600082825180855260208086019550808260051b84010181860160005b848110156152cc57601f19868403018952815160a067ffffffffffffffff808351168652868301518288880152615290838801826147dc565b60408581015184169089015260608086015190931692880192909252506080928301519290950191909152509783019790830190600101615257565b5090979650505050505050565b60008151808452602080850194506020840160005b83811015614baa5781518051885283015183880152604090960195908201906001016152ee565b604081526000615328604083018561523a565b8281036020840152614c2181856152d9565b805160408084528151848201819052600092602091908201906060870190855b8181101561539157835180516001600160a01b031684528501516001600160e01b031685840152928401929185019160010161535a565b50508583015187820388850152805180835290840192506000918401905b808310156153eb578351805167ffffffffffffffff1683528501516001600160e01b0316858301529284019260019290920191908501906153af565b50979650505050505050565b602081526000610df7602083018461533a565b60006020828403121561541c57600080fd5b8151613d4b81613f6c565b600181811c9082168061543b57607f821691505b60208210810361545b57634e487b7160e01b600052602260045260246000fd5b50919050565b60408152600061547460408301856147dc565b8281036020840152614c2181856147dc565b634e487b7160e01b600052601160045260246000fd5b67ffffffffffffffff8181168382160190808211156154bd576154bd615486565b5092915050565b6020815260008251606060208401526154e0608084018261533a565b90506020840151601f19808584030160408601526154fe838361523a565b9250604086015191508085840301606086015250614c2182826152d9565b60006020828403121561552e57600080fd5b813567ffffffffffffffff81111561554557600080fd5b6136a384828501614568565b81810381811115610dfa57610dfa615486565b634e487b7160e01b600052601260045260246000fd5b600067ffffffffffffffff8084168061559557615595615564565b92169190910692915050565b8082028115828204841417610dfa57610dfa615486565b805182526000602067ffffffffffffffff81840151168185015260408084015160a060408701526155ec60a08701826147dc565b90506060850151868203606088015261560582826147dc565b608087810151898303918a01919091528051808352908601935060009250908501905b808310156153eb57835180516001600160a01b0316835286015186830152928501926001929092019190840190615628565b602081526000610df760208301846155b8565b60808152600061568060808301876155b8565b61ffff9590951660208301525060408101929092526001600160a01b0316606090910152919050565b6000806000606084860312156156be57600080fd5b83516156c981613f6c565b602085015190935067ffffffffffffffff8111156156e657600080fd5b8401601f810186136156f757600080fd5b8051615705613fcc82613f85565b81815287602083850101111561571a57600080fd5b61572b8260208301602086016147b8565b809450505050604084015190509250925092565b601f8211156106f2576000816000526020600020601f850160051c810160208610156157685750805b601f850160051c820191505b8181101561578757828155600101615774565b505050505050565b815167ffffffffffffffff8111156157a9576157a9613e1a565b6157bd816157b78454615427565b8461573f565b602080601f8311600181146157f257600084156157da5750858301515b600019600386901b1c1916600185901b178555615787565b600085815260208120601f198616915b8281101561582157888601518255948401946001909101908401615802565b508582101561583f5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6000602080835283546001600160a01b038116602085015260ff8160a01c161515604085015267ffffffffffffffff8160a81c166060850152506001808501608080860152600081546158a181615427565b8060a089015260c060018316600081146158c257600181146158de5761590e565b60ff19841660c08b015260c083151560051b8b0101945061590e565b85600052602060002060005b848110156159055781548c82018501529088019089016158ea565b8b0160c0019550505b50929998505050505050505050565b80820180821115610dfa57610dfa615486565b60ff8181168382160190811115610dfa57610dfa615486565b8183823760009101908152919050565b828152606082602083013760800192915050565b600067ffffffffffffffff8084168061598857615988615564565b92169190910492915050565b6000808335601e198436030181126159ab57600080fd5b83018035915067ffffffffffffffff8211156159c657600080fd5b60200191503681900382131561381657600080fd5b60208101600583106159ef576159ef6149ed565b91905290565b60ff81811683821602908116908181146154bd576154bd615486565b600060a0820160ff881683526020878185015260a0604085015281875480845260c0860191508860005282600020935060005b81811015615a695784546001600160a01b031683526001948501949284019201615a44565b50508481036060860152865180825290820192508187019060005b81811015615aa95782516001600160a01b031685529383019391830191600101615a84565b50505060ff85166080850152509050611fb0565b600067ffffffffffffffff808616835280851660208401525060606040830152614c2160608301846147dc565b8281526040602082015260006136a360408301846147dc565b67ffffffffffffffff848116825283166020820152606081016136a36040830184614a03565b848152615b396020820185614a03565b608060408201526000615b4f60808301856147dc565b905082606083015295945050505050565b600060208284031215615b7257600080fd5b8151613d4b81613f3a565b6020815260008251610100806020850152615b9c6101208501836147dc565b91506020850151615bb9604086018267ffffffffffffffff169052565b5060408501516001600160a01b038116606086015250606085015160808501526080850151615bf360a08601826001600160a01b03169052565b5060a0850151601f19808685030160c0870152615c1084836147dc565b935060c08701519150808685030160e0870152615c2d84836147dc565b935060e0870151915080868503018387015250611fb083826147dc565b600060208284031215615c5c57600080fd5b5051919050565b848152600067ffffffffffffffff808616602084015280851660408401525060806060830152611fb060808301846147dc565b86815260c060208201526000615caf60c08301886147dc565b6001600160a01b039690961660408301525067ffffffffffffffff9384166060820152608081019290925290911660a09091015292915050565b600082825180855260208086019550808260051b84010181860160005b848110156152cc57601f19868403018952815160a08151818652615d2c828701826147dc565b9150508582015185820387870152615d4482826147dc565b91505060408083015186830382880152615d5e83826147dc565b92505050606080830151818701525060808083015192508582038187015250615d8781836147dc565b9a86019a9450505090830190600101615d06565b602081526000610df76020830184615ce9565b60008282518085526020808601955060208260051b8401016020860160005b848110156152cc57601f19868403018952615de98383516147dc565b98840198925090830190600101615dcd565b604081526000835180516040840152602081015167ffffffffffffffff80821660608601528060408401511660808601528060608401511660a08601528060808401511660c086015250505060208401516101408060e0850152615e636101808501836147dc565b91506040860151603f198086850301610100870152615e8284836147dc565b935060608801519150615ea16101208701836001600160a01b03169052565b60808801518387015260a0880151925080868503016101608701525050615ec88282615ce9565b9150508281036020840152614c218185615dae56fea164736f6c6343000818000a", } var OffRampABI = OffRampMetaData.ABI diff --git a/core/gethwrappers/ccip/generation/generated-wrapper-dependency-versions-do-not-edit.txt b/core/gethwrappers/ccip/generation/generated-wrapper-dependency-versions-do-not-edit.txt index d1b513c8ae..86ac325c44 100644 --- a/core/gethwrappers/ccip/generation/generated-wrapper-dependency-versions-do-not-edit.txt +++ b/core/gethwrappers/ccip/generation/generated-wrapper-dependency-versions-do-not-edit.txt @@ -23,7 +23,7 @@ multi_aggregate_rate_limiter: ../../../contracts/solc/v0.8.24/MultiAggregateRate multi_ocr3_helper: ../../../contracts/solc/v0.8.24/MultiOCR3Helper/MultiOCR3Helper.abi ../../../contracts/solc/v0.8.24/MultiOCR3Helper/MultiOCR3Helper.bin 6b56e0114a4d50797d30a34aecc2641ef340451d0c3fcb9d729bba4df2435122 nonce_manager: ../../../contracts/solc/v0.8.24/NonceManager/NonceManager.abi ../../../contracts/solc/v0.8.24/NonceManager/NonceManager.bin 6f64e1083b356c06ee66b9138e398b9c97a4cd3e8c9ec38cf3010cebc79af536 ocr3_config_encoder: ../../../contracts/solc/v0.8.24/IOCR3ConfigEncoder/IOCR3ConfigEncoder.abi ../../../contracts/solc/v0.8.24/IOCR3ConfigEncoder/IOCR3ConfigEncoder.bin 9254b35a86f00fde7b7193a033ca58f6521a66e87b9cf9da6ce5660082e79f5d -offramp: ../../../contracts/solc/v0.8.24/OffRamp/OffRamp.abi ../../../contracts/solc/v0.8.24/OffRamp/OffRamp.bin a8682c5301801ceca819e6e11d7f6094109d11c92df8300a859b2775ece5eb19 +offramp: ../../../contracts/solc/v0.8.24/OffRamp/OffRamp.abi ../../../contracts/solc/v0.8.24/OffRamp/OffRamp.bin 3b81bd7b38eb5051b8aef1462f838ff734eb9189073d9534cab443589201a1cc onramp: ../../../contracts/solc/v0.8.24/OnRamp/OnRamp.abi ../../../contracts/solc/v0.8.24/OnRamp/OnRamp.bin 594439983f963f4158f9c5009dee7cba4ee56be61900bb1d5b9108eaeac3d6a6 ping_pong_demo: ../../../contracts/solc/v0.8.24/PingPongDemo/PingPongDemo.abi ../../../contracts/solc/v0.8.24/PingPongDemo/PingPongDemo.bin c1c2f8a65c7ffd971899cae7fe62f2da57d09e936151e2b92163c4bebe699d6b price_registry: ../../../contracts/solc/v0.8.24/PriceRegistry/PriceRegistry.abi ../../../contracts/solc/v0.8.24/PriceRegistry/PriceRegistry.bin e7781d600c1bb7aa4620106af7f6e146a109b97f4cb6a7d06c9e15773340ecb2 From 1324349ae67da34098a506beec07240f22fa1066 Mon Sep 17 00:00:00 2001 From: Ryan <80392855+RayXpub@users.noreply.github.com> Date: Wed, 11 Sep 2024 13:47:24 +0400 Subject: [PATCH 09/19] chore: update gas snapshot --- contracts/gas-snapshots/ccip.gas-snapshot | 1434 ++++++++++----------- 1 file changed, 717 insertions(+), 717 deletions(-) diff --git a/contracts/gas-snapshots/ccip.gas-snapshot b/contracts/gas-snapshots/ccip.gas-snapshot index c91cd5d9f3..d8be89bc71 100644 --- a/contracts/gas-snapshots/ccip.gas-snapshot +++ b/contracts/gas-snapshots/ccip.gas-snapshot @@ -2,259 +2,259 @@ ARMProxyStandaloneTest:test_ARMCallEmptyContractRevert() (gas: 19675) ARMProxyStandaloneTest:test_Constructor() (gas: 315049) ARMProxyStandaloneTest:test_SetARM() (gas: 16581) ARMProxyStandaloneTest:test_SetARMzero() (gas: 11267) -ARMProxyTest:test_ARMCallRevertReasonForwarded() (gas: 47868) -ARMProxyTest:test_ARMIsBlessed_Success() (gas: 36334) +ARMProxyTest:test_ARMCallRevertReasonForwarded() (gas: 47874) +ARMProxyTest:test_ARMIsBlessed_Success() (gas: 36353) ARMProxyTest:test_ARMIsCursed_Success() (gas: 49833) -AggregateTokenLimiter_constructor:test_Constructor_Success() (gas: 26992) -AggregateTokenLimiter_getTokenBucket:test_GetTokenBucket_Success() (gas: 19835) -AggregateTokenLimiter_getTokenBucket:test_Refill_Success() (gas: 41499) -AggregateTokenLimiter_getTokenBucket:test_TimeUnderflow_Revert() (gas: 15446) +AggregateTokenLimiter_constructor:test_Constructor_Success() (gas: 26998) +AggregateTokenLimiter_getTokenBucket:test_GetTokenBucket_Success() (gas: 19841) +AggregateTokenLimiter_getTokenBucket:test_Refill_Success() (gas: 41523) +AggregateTokenLimiter_getTokenBucket:test_TimeUnderflow_Revert() (gas: 15452) AggregateTokenLimiter_getTokenLimitAdmin:test_GetTokenLimitAdmin_Success() (gas: 10531) -AggregateTokenLimiter_getTokenValue:test_GetTokenValue_Success() (gas: 19652) -AggregateTokenLimiter_getTokenValue:test_NoTokenPrice_Reverts() (gas: 21237) -AggregateTokenLimiter_rateLimitValue:test_AggregateValueMaxCapacityExceeded_Revert() (gas: 16508) -AggregateTokenLimiter_rateLimitValue:test_RateLimitValueSuccess_gas() (gas: 18348) -AggregateTokenLimiter_setAdmin:test_OnlyOwnerOrAdmin_Revert() (gas: 13054) +AggregateTokenLimiter_getTokenValue:test_GetTokenValue_Success() (gas: 19658) +AggregateTokenLimiter_getTokenValue:test_NoTokenPrice_Reverts() (gas: 21243) +AggregateTokenLimiter_rateLimitValue:test_AggregateValueMaxCapacityExceeded_Revert() (gas: 16520) +AggregateTokenLimiter_rateLimitValue:test_RateLimitValueSuccess_gas() (gas: 18354) +AggregateTokenLimiter_setAdmin:test_OnlyOwnerOrAdmin_Revert() (gas: 13066) AggregateTokenLimiter_setAdmin:test_Owner_Success() (gas: 18998) -AggregateTokenLimiter_setRateLimiterConfig:test_OnlyOnlyCallableByAdminOrOwner_Revert() (gas: 17510) -AggregateTokenLimiter_setRateLimiterConfig:test_Owner_Success() (gas: 30230) -AggregateTokenLimiter_setRateLimiterConfig:test_TokenLimitAdmin_Success() (gas: 32244) -BurnFromMintTokenPool_lockOrBurn:test_ChainNotAllowed_Revert() (gas: 28779) -BurnFromMintTokenPool_lockOrBurn:test_PoolBurnRevertNotHealthy_Revert() (gas: 55124) -BurnFromMintTokenPool_lockOrBurn:test_PoolBurn_Success() (gas: 243680) +AggregateTokenLimiter_setRateLimiterConfig:test_OnlyOnlyCallableByAdminOrOwner_Revert() (gas: 17522) +AggregateTokenLimiter_setRateLimiterConfig:test_Owner_Success() (gas: 30249) +AggregateTokenLimiter_setRateLimiterConfig:test_TokenLimitAdmin_Success() (gas: 32263) +BurnFromMintTokenPool_lockOrBurn:test_ChainNotAllowed_Revert() (gas: 28791) +BurnFromMintTokenPool_lockOrBurn:test_PoolBurnRevertNotHealthy_Revert() (gas: 55142) +BurnFromMintTokenPool_lockOrBurn:test_PoolBurn_Success() (gas: 243690) BurnFromMintTokenPool_lockOrBurn:test_Setup_Success() (gas: 23947) -BurnMintTokenPool_lockOrBurn:test_ChainNotAllowed_Revert() (gas: 27546) -BurnMintTokenPool_lockOrBurn:test_PoolBurnRevertNotHealthy_Revert() (gas: 55130) -BurnMintTokenPool_lockOrBurn:test_PoolBurn_Success() (gas: 241573) +BurnMintTokenPool_lockOrBurn:test_ChainNotAllowed_Revert() (gas: 27558) +BurnMintTokenPool_lockOrBurn:test_PoolBurnRevertNotHealthy_Revert() (gas: 55142) +BurnMintTokenPool_lockOrBurn:test_PoolBurn_Success() (gas: 241578) BurnMintTokenPool_lockOrBurn:test_Setup_Success() (gas: 17677) -BurnMintTokenPool_releaseOrMint:test_ChainNotAllowed_Revert() (gas: 28775) -BurnMintTokenPool_releaseOrMint:test_PoolMintNotHealthy_Revert() (gas: 56211) -BurnMintTokenPool_releaseOrMint:test_PoolMint_Success() (gas: 112343) -BurnWithFromMintTokenPool_lockOrBurn:test_ChainNotAllowed_Revert() (gas: 28779) -BurnWithFromMintTokenPool_lockOrBurn:test_PoolBurnRevertNotHealthy_Revert() (gas: 55124) -BurnWithFromMintTokenPool_lockOrBurn:test_PoolBurn_Success() (gas: 243707) +BurnMintTokenPool_releaseOrMint:test_ChainNotAllowed_Revert() (gas: 28787) +BurnMintTokenPool_releaseOrMint:test_PoolMintNotHealthy_Revert() (gas: 56223) +BurnMintTokenPool_releaseOrMint:test_PoolMint_Success() (gas: 112349) +BurnWithFromMintTokenPool_lockOrBurn:test_ChainNotAllowed_Revert() (gas: 28791) +BurnWithFromMintTokenPool_lockOrBurn:test_PoolBurnRevertNotHealthy_Revert() (gas: 55142) +BurnWithFromMintTokenPool_lockOrBurn:test_PoolBurn_Success() (gas: 243716) BurnWithFromMintTokenPool_lockOrBurn:test_Setup_Success() (gas: 23951) -CCIPClientExample_sanity:test_ImmutableExamples_Success() (gas: 2096747) +CCIPClientExample_sanity:test_ImmutableExamples_Success() (gas: 2097548) CCIPConfigSetup:test_getCapabilityConfiguration_Success() (gas: 9539) -CCIPConfig_ConfigStateMachine:test__computeConfigDigest_Success() (gas: 66000) -CCIPConfig_ConfigStateMachine:test__computeNewConfigWithMeta_InitToRunning_Success() (gas: 358041) -CCIPConfig_ConfigStateMachine:test__computeNewConfigWithMeta_RunningToStaging_Success() (gas: 474705) -CCIPConfig_ConfigStateMachine:test__computeNewConfigWithMeta_StagingToRunning_Success() (gas: 441908) -CCIPConfig_ConfigStateMachine:test__groupByPluginType_TooManyOCR3Configs_Reverts() (gas: 33848) -CCIPConfig_ConfigStateMachine:test__groupByPluginType_threeCommitConfigs_Reverts() (gas: 56914) -CCIPConfig_ConfigStateMachine:test__groupByPluginType_threeExecutionConfigs_Reverts() (gas: 56852) +CCIPConfig_ConfigStateMachine:test__computeConfigDigest_Success() (gas: 66156) +CCIPConfig_ConfigStateMachine:test__computeNewConfigWithMeta_InitToRunning_Success() (gas: 358893) +CCIPConfig_ConfigStateMachine:test__computeNewConfigWithMeta_RunningToStaging_Success() (gas: 476337) +CCIPConfig_ConfigStateMachine:test__computeNewConfigWithMeta_StagingToRunning_Success() (gas: 443036) +CCIPConfig_ConfigStateMachine:test__groupByPluginType_TooManyOCR3Configs_Reverts() (gas: 34154) +CCIPConfig_ConfigStateMachine:test__groupByPluginType_threeCommitConfigs_Reverts() (gas: 57226) +CCIPConfig_ConfigStateMachine:test__groupByPluginType_threeExecutionConfigs_Reverts() (gas: 57164) CCIPConfig_ConfigStateMachine:test__stateFromConfigLength_Success() (gas: 11719) CCIPConfig_ConfigStateMachine:test__validateConfigStateTransition_Success() (gas: 8849) -CCIPConfig_ConfigStateMachine:test__validateConfigTransition_InitToRunning_Success() (gas: 309722) -CCIPConfig_ConfigStateMachine:test__validateConfigTransition_InitToRunning_WrongConfigCount_Reverts() (gas: 45865) -CCIPConfig_ConfigStateMachine:test__validateConfigTransition_NonExistentConfigTransition_Reverts() (gas: 29690) -CCIPConfig_ConfigStateMachine:test__validateConfigTransition_RunningToStaging_Success() (gas: 370009) -CCIPConfig_ConfigStateMachine:test__validateConfigTransition_RunningToStaging_WrongConfigCount_Reverts() (gas: 111376) -CCIPConfig_ConfigStateMachine:test__validateConfigTransition_RunningToStaging_WrongConfigDigestBlueGreen_Reverts() (gas: 145446) -CCIPConfig_ConfigStateMachine:test__validateConfigTransition_StagingToRunning_Success() (gas: 369785) -CCIPConfig_ConfigStateMachine:test__validateConfigTransition_StagingToRunning_WrongConfigDigest_Reverts() (gas: 145513) -CCIPConfig_ConfigStateMachine:test_getCapabilityConfiguration_Success() (gas: 9627) -CCIPConfig_beforeCapabilityConfigSet:test_beforeCapabilityConfigSet_CommitAndExecConfig_Success() (gas: 1790808) -CCIPConfig_beforeCapabilityConfigSet:test_beforeCapabilityConfigSet_CommitConfigOnly_Success() (gas: 1038239) -CCIPConfig_beforeCapabilityConfigSet:test_beforeCapabilityConfigSet_ExecConfigOnly_Success() (gas: 1038270) +CCIPConfig_ConfigStateMachine:test__validateConfigTransition_InitToRunning_Success() (gas: 310010) +CCIPConfig_ConfigStateMachine:test__validateConfigTransition_InitToRunning_WrongConfigCount_Reverts() (gas: 46015) +CCIPConfig_ConfigStateMachine:test__validateConfigTransition_NonExistentConfigTransition_Reverts() (gas: 29840) +CCIPConfig_ConfigStateMachine:test__validateConfigTransition_RunningToStaging_Success() (gas: 370477) +CCIPConfig_ConfigStateMachine:test__validateConfigTransition_RunningToStaging_WrongConfigCount_Reverts() (gas: 111736) +CCIPConfig_ConfigStateMachine:test__validateConfigTransition_RunningToStaging_WrongConfigDigestBlueGreen_Reverts() (gas: 145866) +CCIPConfig_ConfigStateMachine:test__validateConfigTransition_StagingToRunning_Success() (gas: 370253) +CCIPConfig_ConfigStateMachine:test__validateConfigTransition_StagingToRunning_WrongConfigDigest_Reverts() (gas: 145933) +CCIPConfig_ConfigStateMachine:test_getCapabilityConfiguration_Success() (gas: 9663) +CCIPConfig_beforeCapabilityConfigSet:test_beforeCapabilityConfigSet_CommitAndExecConfig_Success() (gas: 1790958) +CCIPConfig_beforeCapabilityConfigSet:test_beforeCapabilityConfigSet_CommitConfigOnly_Success() (gas: 1038383) +CCIPConfig_beforeCapabilityConfigSet:test_beforeCapabilityConfigSet_ExecConfigOnly_Success() (gas: 1038420) CCIPConfig_beforeCapabilityConfigSet:test_beforeCapabilityConfigSet_OnlyCapabilitiesRegistryCanCall_Reverts() (gas: 9611) -CCIPConfig_beforeCapabilityConfigSet:test_beforeCapabilityConfigSet_ZeroLengthConfig_Success() (gas: 15996) +CCIPConfig_beforeCapabilityConfigSet:test_beforeCapabilityConfigSet_ZeroLengthConfig_Success() (gas: 16008) CCIPConfig_beforeCapabilityConfigSet:test_getCapabilityConfiguration_Success() (gas: 9627) -CCIPConfig_chainConfig:test__applyChainConfigUpdates_FChainNotPositive_Reverts() (gas: 184771) +CCIPConfig_chainConfig:test__applyChainConfigUpdates_FChainNotPositive_Reverts() (gas: 184777) CCIPConfig_chainConfig:test_applyChainConfigUpdates_addChainConfigs_Success() (gas: 346687) -CCIPConfig_chainConfig:test_applyChainConfigUpdates_nodeNotInRegistry_Reverts() (gas: 20340) +CCIPConfig_chainConfig:test_applyChainConfigUpdates_nodeNotInRegistry_Reverts() (gas: 20346) CCIPConfig_chainConfig:test_applyChainConfigUpdates_removeChainConfigs_Success() (gas: 270334) -CCIPConfig_chainConfig:test_applyChainConfigUpdates_selectorNotFound_Reverts() (gas: 14819) +CCIPConfig_chainConfig:test_applyChainConfigUpdates_selectorNotFound_Reverts() (gas: 14825) CCIPConfig_chainConfig:test_getCapabilityConfiguration_Success() (gas: 9648) -CCIPConfig_chainConfig:test_getPaginatedCCIPConfigs_Success() (gas: 370293) -CCIPConfig_constructor:test_constructor_Success() (gas: 3363163) -CCIPConfig_constructor:test_constructor_ZeroAddressNotAllowed_Revert() (gas: 61471) +CCIPConfig_chainConfig:test_getPaginatedCCIPConfigs_Success() (gas: 370299) +CCIPConfig_constructor:test_constructor_Success() (gas: 3333086) +CCIPConfig_constructor:test_constructor_ZeroAddressNotAllowed_Revert() (gas: 61438) CCIPConfig_updatePluginConfig:test__updatePluginConfig_InvalidConfigLength_Reverts() (gas: 25819) -CCIPConfig_updatePluginConfig:test__updatePluginConfig_InvalidConfigStateTransition_Reverts() (gas: 21913) +CCIPConfig_updatePluginConfig:test__updatePluginConfig_InvalidConfigStateTransition_Reverts() (gas: 21919) CCIPConfig_updatePluginConfig:test_getCapabilityConfiguration_Success() (gas: 9649) -CCIPConfig_updatePluginConfig:test_updatePluginConfig_InitToRunning_Success() (gas: 1087677) -CCIPConfig_updatePluginConfig:test_updatePluginConfig_RunningToStaging_Success() (gas: 2032286) -CCIPConfig_updatePluginConfig:test_updatePluginConfig_StagingToRunning_Success() (gas: 2032320) -CCIPConfig_validateConfig:test__validateConfig_ABIEncodedAddress_OfframpAddressCannotBeZero_Reverts() (gas: 290828) -CCIPConfig_validateConfig:test__validateConfig_ChainSelectorNotFound_Reverts() (gas: 293559) -CCIPConfig_validateConfig:test__validateConfig_ChainSelectorNotSet_Reverts() (gas: 290461) -CCIPConfig_validateConfig:test__validateConfig_FMustBePositive_Reverts() (gas: 291668) -CCIPConfig_validateConfig:test__validateConfig_FTooHigh_Reverts() (gas: 291766) -CCIPConfig_validateConfig:test__validateConfig_NodeNotInRegistry_Reverts() (gas: 344947) -CCIPConfig_validateConfig:test__validateConfig_NotEnoughTransmitters_Reverts() (gas: 1208593) -CCIPConfig_validateConfig:test__validateConfig_OfframpAddressCannotBeZero_Reverts() (gas: 290544) -CCIPConfig_validateConfig:test__validateConfig_P2PIdsLengthNotMatching_Reverts() (gas: 292459) -CCIPConfig_validateConfig:test__validateConfig_Success() (gas: 299632) -CCIPConfig_validateConfig:test__validateConfig_TooManySigners_Reverts() (gas: 493084) +CCIPConfig_updatePluginConfig:test_updatePluginConfig_InitToRunning_Success() (gas: 1087725) +CCIPConfig_updatePluginConfig:test_updatePluginConfig_RunningToStaging_Success() (gas: 2032324) +CCIPConfig_updatePluginConfig:test_updatePluginConfig_StagingToRunning_Success() (gas: 2032358) +CCIPConfig_validateConfig:test__validateConfig_ABIEncodedAddress_OfframpAddressCannotBeZero_Reverts() (gas: 290870) +CCIPConfig_validateConfig:test__validateConfig_ChainSelectorNotFound_Reverts() (gas: 293601) +CCIPConfig_validateConfig:test__validateConfig_ChainSelectorNotSet_Reverts() (gas: 290497) +CCIPConfig_validateConfig:test__validateConfig_FMustBePositive_Reverts() (gas: 291704) +CCIPConfig_validateConfig:test__validateConfig_FTooHigh_Reverts() (gas: 291802) +CCIPConfig_validateConfig:test__validateConfig_NodeNotInRegistry_Reverts() (gas: 345019) +CCIPConfig_validateConfig:test__validateConfig_NotEnoughTransmitters_Reverts() (gas: 1209247) +CCIPConfig_validateConfig:test__validateConfig_OfframpAddressCannotBeZero_Reverts() (gas: 290586) +CCIPConfig_validateConfig:test__validateConfig_P2PIdsLengthNotMatching_Reverts() (gas: 292495) +CCIPConfig_validateConfig:test__validateConfig_Success() (gas: 299668) +CCIPConfig_validateConfig:test__validateConfig_TooManySigners_Reverts() (gas: 493120) CCIPConfig_validateConfig:test_getCapabilityConfiguration_Success() (gas: 9606) -CommitStore_constructor:test_Constructor_Success() (gas: 3013980) -CommitStore_isUnpausedAndRMNHealthy:test_RMN_Success() (gas: 73477) -CommitStore_report:test_InvalidIntervalMinLargerThanMax_Revert() (gas: 28676) -CommitStore_report:test_InvalidInterval_Revert() (gas: 28616) -CommitStore_report:test_InvalidRootRevert() (gas: 27849) -CommitStore_report:test_OnlyGasPriceUpdates_Success() (gas: 53290) -CommitStore_report:test_OnlyPriceUpdateStaleReport_Revert() (gas: 59092) -CommitStore_report:test_OnlyTokenPriceUpdates_Success() (gas: 53288) -CommitStore_report:test_Paused_Revert() (gas: 21262) -CommitStore_report:test_ReportAndPriceUpdate_Success() (gas: 84276) -CommitStore_report:test_ReportOnlyRootSuccess_gas() (gas: 56258) -CommitStore_report:test_RootAlreadyCommitted_Revert() (gas: 63984) -CommitStore_report:test_StaleReportWithRoot_Success() (gas: 119350) -CommitStore_report:test_Unhealthy_Revert() (gas: 44754) -CommitStore_report:test_ValidPriceUpdateThenStaleReportWithRoot_Success() (gas: 100760) -CommitStore_report:test_ZeroEpochAndRound_Revert() (gas: 27632) -CommitStore_resetUnblessedRoots:test_OnlyOwner_Revert() (gas: 11331) -CommitStore_resetUnblessedRoots:test_ResetUnblessedRoots_Success() (gas: 143814) +CommitStore_constructor:test_Constructor_Success() (gas: 2973887) +CommitStore_isUnpausedAndRMNHealthy:test_RMN_Success() (gas: 73567) +CommitStore_report:test_InvalidIntervalMinLargerThanMax_Revert() (gas: 28688) +CommitStore_report:test_InvalidInterval_Revert() (gas: 28628) +CommitStore_report:test_InvalidRootRevert() (gas: 27861) +CommitStore_report:test_OnlyGasPriceUpdates_Success() (gas: 53302) +CommitStore_report:test_OnlyPriceUpdateStaleReport_Revert() (gas: 59122) +CommitStore_report:test_OnlyTokenPriceUpdates_Success() (gas: 53300) +CommitStore_report:test_Paused_Revert() (gas: 21280) +CommitStore_report:test_ReportAndPriceUpdate_Success() (gas: 84288) +CommitStore_report:test_ReportOnlyRootSuccess_gas() (gas: 56270) +CommitStore_report:test_RootAlreadyCommitted_Revert() (gas: 64008) +CommitStore_report:test_StaleReportWithRoot_Success() (gas: 119386) +CommitStore_report:test_Unhealthy_Revert() (gas: 44766) +CommitStore_report:test_ValidPriceUpdateThenStaleReportWithRoot_Success() (gas: 100790) +CommitStore_report:test_ZeroEpochAndRound_Revert() (gas: 27650) +CommitStore_resetUnblessedRoots:test_OnlyOwner_Revert() (gas: 11337) +CommitStore_resetUnblessedRoots:test_ResetUnblessedRoots_Success() (gas: 143871) CommitStore_setDynamicConfig:test_InvalidCommitStoreConfig_Revert() (gas: 37263) CommitStore_setDynamicConfig:test_OnlyOwner_Revert() (gas: 37405) CommitStore_setDynamicConfig:test_PriceEpochCleared_Success() (gas: 129131) -CommitStore_setLatestPriceEpochAndRound:test_OnlyOwner_Revert() (gas: 11054) -CommitStore_setLatestPriceEpochAndRound:test_SetLatestPriceEpochAndRound_Success() (gas: 20645) -CommitStore_setMinSeqNr:test_OnlyOwner_Revert() (gas: 11053) -CommitStore_verify:test_Blessed_Success() (gas: 96452) -CommitStore_verify:test_NotBlessed_Success() (gas: 61398) -CommitStore_verify:test_Paused_Revert() (gas: 18505) -CommitStore_verify:test_TooManyLeaves_Revert() (gas: 36797) -DefensiveExampleTest:test_HappyPath_Success() (gas: 200047) -DefensiveExampleTest:test_Recovery() (gas: 424294) -E2E:test_E2E_3MessagesSuccess_gas() (gas: 1101745) -EVM2EVMOffRamp__releaseOrMintToken:test__releaseOrMintToken_NotACompatiblePool_Revert() (gas: 37818) -EVM2EVMOffRamp__releaseOrMintToken:test__releaseOrMintToken_Success() (gas: 103820) -EVM2EVMOffRamp__releaseOrMintToken:test__releaseOrMintToken_TokenHandlingError_transfer_Revert() (gas: 85333) -EVM2EVMOffRamp__releaseOrMintToken:test_releaseOrMintToken_InvalidDataLength_Revert() (gas: 36843) -EVM2EVMOffRamp__releaseOrMintToken:test_releaseOrMintToken_ReleaseOrMintBalanceMismatch_Revert() (gas: 94389) -EVM2EVMOffRamp__releaseOrMintToken:test_releaseOrMintToken_TokenHandlingError_BalanceOf_Revert() (gas: 39813) -EVM2EVMOffRamp__releaseOrMintToken:test_releaseOrMintToken_skip_ReleaseOrMintBalanceMismatch_if_pool_Revert() (gas: 86631) -EVM2EVMOffRamp__releaseOrMintTokens:test_OverValueWithARLOff_Success() (gas: 385690) -EVM2EVMOffRamp__releaseOrMintTokens:test_PriceNotFoundForToken_Reverts() (gas: 141997) -EVM2EVMOffRamp__releaseOrMintTokens:test_RateLimitErrors_Reverts() (gas: 804041) -EVM2EVMOffRamp__releaseOrMintTokens:test_TokenHandlingError_Reverts() (gas: 179438) -EVM2EVMOffRamp__releaseOrMintTokens:test__releaseOrMintTokens_NotACompatiblePool_Reverts() (gas: 29243) -EVM2EVMOffRamp__releaseOrMintTokens:test_releaseOrMintTokens_InvalidDataLengthReturnData_Revert() (gas: 66504) -EVM2EVMOffRamp__releaseOrMintTokens:test_releaseOrMintTokens_InvalidEVMAddress_Revert() (gas: 43320) -EVM2EVMOffRamp__releaseOrMintTokens:test_releaseOrMintTokens_Success() (gas: 211236) -EVM2EVMOffRamp__releaseOrMintTokens:test_releaseOrMintTokens_destDenominatedDecimals_Success() (gas: 222488) -EVM2EVMOffRamp__report:test_Report_Success() (gas: 126703) -EVM2EVMOffRamp__trialExecute:test_RateLimitError_Success() (gas: 237982) -EVM2EVMOffRamp__trialExecute:test_TokenHandlingErrorIsCaught_Success() (gas: 246582) -EVM2EVMOffRamp__trialExecute:test_TokenPoolIsNotAContract_Success() (gas: 330144) -EVM2EVMOffRamp__trialExecute:test_trialExecute_Success() (gas: 312575) +CommitStore_setLatestPriceEpochAndRound:test_OnlyOwner_Revert() (gas: 11060) +CommitStore_setLatestPriceEpochAndRound:test_SetLatestPriceEpochAndRound_Success() (gas: 20651) +CommitStore_setMinSeqNr:test_OnlyOwner_Revert() (gas: 11059) +CommitStore_verify:test_Blessed_Success() (gas: 96485) +CommitStore_verify:test_NotBlessed_Success() (gas: 61422) +CommitStore_verify:test_Paused_Revert() (gas: 18529) +CommitStore_verify:test_TooManyLeaves_Revert() (gas: 36809) +DefensiveExampleTest:test_HappyPath_Success() (gas: 200052) +DefensiveExampleTest:test_Recovery() (gas: 424299) +E2E:test_E2E_3MessagesSuccess_gas() (gas: 1103419) +EVM2EVMOffRamp__releaseOrMintToken:test__releaseOrMintToken_NotACompatiblePool_Revert() (gas: 37854) +EVM2EVMOffRamp__releaseOrMintToken:test__releaseOrMintToken_Success() (gas: 104060) +EVM2EVMOffRamp__releaseOrMintToken:test__releaseOrMintToken_TokenHandlingError_transfer_Revert() (gas: 85597) +EVM2EVMOffRamp__releaseOrMintToken:test_releaseOrMintToken_InvalidDataLength_Revert() (gas: 37068) +EVM2EVMOffRamp__releaseOrMintToken:test_releaseOrMintToken_ReleaseOrMintBalanceMismatch_Revert() (gas: 94629) +EVM2EVMOffRamp__releaseOrMintToken:test_releaseOrMintToken_TokenHandlingError_BalanceOf_Revert() (gas: 40050) +EVM2EVMOffRamp__releaseOrMintToken:test_releaseOrMintToken_skip_ReleaseOrMintBalanceMismatch_if_pool_Revert() (gas: 86871) +EVM2EVMOffRamp__releaseOrMintTokens:test_OverValueWithARLOff_Success() (gas: 386248) +EVM2EVMOffRamp__releaseOrMintTokens:test_PriceNotFoundForToken_Reverts() (gas: 142243) +EVM2EVMOffRamp__releaseOrMintTokens:test_RateLimitErrors_Reverts() (gas: 805427) +EVM2EVMOffRamp__releaseOrMintTokens:test_TokenHandlingError_Reverts() (gas: 179714) +EVM2EVMOffRamp__releaseOrMintTokens:test__releaseOrMintTokens_NotACompatiblePool_Reverts() (gas: 29249) +EVM2EVMOffRamp__releaseOrMintTokens:test_releaseOrMintTokens_InvalidDataLengthReturnData_Revert() (gas: 66741) +EVM2EVMOffRamp__releaseOrMintTokens:test_releaseOrMintTokens_InvalidEVMAddress_Revert() (gas: 43332) +EVM2EVMOffRamp__releaseOrMintTokens:test_releaseOrMintTokens_Success() (gas: 211512) +EVM2EVMOffRamp__releaseOrMintTokens:test_releaseOrMintTokens_destDenominatedDecimals_Success() (gas: 222764) +EVM2EVMOffRamp__report:test_Report_Success() (gas: 126727) +EVM2EVMOffRamp__trialExecute:test_RateLimitError_Success() (gas: 238264) +EVM2EVMOffRamp__trialExecute:test_TokenHandlingErrorIsCaught_Success() (gas: 246864) +EVM2EVMOffRamp__trialExecute:test_TokenPoolIsNotAContract_Success() (gas: 330450) +EVM2EVMOffRamp__trialExecute:test_trialExecute_Success() (gas: 312875) EVM2EVMOffRamp_ccipReceive:test_Reverts() (gas: 17033) -EVM2EVMOffRamp_constructor:test_CommitStoreAlreadyInUse_Revert() (gas: 153548) -EVM2EVMOffRamp_constructor:test_Constructor_Success() (gas: 5549627) -EVM2EVMOffRamp_constructor:test_ZeroOnRampAddress_Revert() (gas: 144282) -EVM2EVMOffRamp_execute:test_EmptyReport_Revert() (gas: 21321) -EVM2EVMOffRamp_execute:test_InvalidMessageId_Revert() (gas: 36558) -EVM2EVMOffRamp_execute:test_InvalidSourceChain_Revert() (gas: 51775) -EVM2EVMOffRamp_execute:test_InvalidSourcePoolAddress_Success() (gas: 473981) -EVM2EVMOffRamp_execute:test_ManualExecutionNotYetEnabled_Revert() (gas: 47830) +EVM2EVMOffRamp_constructor:test_CommitStoreAlreadyInUse_Revert() (gas: 153451) +EVM2EVMOffRamp_constructor:test_Constructor_Success() (gas: 5479225) +EVM2EVMOffRamp_constructor:test_ZeroOnRampAddress_Revert() (gas: 144185) +EVM2EVMOffRamp_execute:test_EmptyReport_Revert() (gas: 21354) +EVM2EVMOffRamp_execute:test_InvalidMessageId_Revert() (gas: 36591) +EVM2EVMOffRamp_execute:test_InvalidSourceChain_Revert() (gas: 51808) +EVM2EVMOffRamp_execute:test_InvalidSourcePoolAddress_Success() (gas: 474545) +EVM2EVMOffRamp_execute:test_ManualExecutionNotYetEnabled_Revert() (gas: 47902) EVM2EVMOffRamp_execute:test_MessageTooLarge_Revert() (gas: 152518) -EVM2EVMOffRamp_execute:test_Paused_Revert() (gas: 103046) -EVM2EVMOffRamp_execute:test_ReceiverError_Success() (gas: 164107) -EVM2EVMOffRamp_execute:test_RetryFailedMessageWithoutManualExecution_Success() (gas: 178568) -EVM2EVMOffRamp_execute:test_RootNotCommitted_Revert() (gas: 42701) -EVM2EVMOffRamp_execute:test_SingleMessageNoTokensUnordered_Success() (gas: 157899) -EVM2EVMOffRamp_execute:test_SingleMessageNoTokens_Success() (gas: 173184) -EVM2EVMOffRamp_execute:test_SingleMessageToNonCCIPReceiver_Success() (gas: 247246) -EVM2EVMOffRamp_execute:test_SingleMessagesNoTokensSuccess_gas() (gas: 113971) -EVM2EVMOffRamp_execute:test_SkippedIncorrectNonceStillExecutes_Success() (gas: 408103) +EVM2EVMOffRamp_execute:test_Paused_Revert() (gas: 103079) +EVM2EVMOffRamp_execute:test_ReceiverError_Success() (gas: 164230) +EVM2EVMOffRamp_execute:test_RetryFailedMessageWithoutManualExecution_Success() (gas: 178625) +EVM2EVMOffRamp_execute:test_RootNotCommitted_Revert() (gas: 42773) +EVM2EVMOffRamp_execute:test_SingleMessageNoTokensUnordered_Success() (gas: 158079) +EVM2EVMOffRamp_execute:test_SingleMessageNoTokens_Success() (gas: 173331) +EVM2EVMOffRamp_execute:test_SingleMessageToNonCCIPReceiver_Success() (gas: 237073) +EVM2EVMOffRamp_execute:test_SingleMessagesNoTokensSuccess_gas() (gas: 113995) +EVM2EVMOffRamp_execute:test_SkippedIncorrectNonceStillExecutes_Success() (gas: 408436) EVM2EVMOffRamp_execute:test_SkippedIncorrectNonce_Success() (gas: 54294) -EVM2EVMOffRamp_execute:test_StrictUntouchedToSuccess_Success() (gas: 131317) +EVM2EVMOffRamp_execute:test_StrictUntouchedToSuccess_Success() (gas: 131440) EVM2EVMOffRamp_execute:test_TokenDataMismatch_Revert() (gas: 52249) -EVM2EVMOffRamp_execute:test_TwoMessagesWithTokensAndGE_Success() (gas: 564401) -EVM2EVMOffRamp_execute:test_TwoMessagesWithTokensSuccess_gas() (gas: 494916) -EVM2EVMOffRamp_execute:test_UnexpectedTokenData_Revert() (gas: 35497) -EVM2EVMOffRamp_execute:test_Unhealthy_Revert() (gas: 545666) +EVM2EVMOffRamp_execute:test_TwoMessagesWithTokensAndGE_Success() (gas: 565133) +EVM2EVMOffRamp_execute:test_TwoMessagesWithTokensSuccess_gas() (gas: 495516) +EVM2EVMOffRamp_execute:test_UnexpectedTokenData_Revert() (gas: 35530) +EVM2EVMOffRamp_execute:test_Unhealthy_Revert() (gas: 546311) EVM2EVMOffRamp_execute:test_UnsupportedNumberOfTokens_Revert() (gas: 64497) -EVM2EVMOffRamp_execute:test__execute_SkippedAlreadyExecutedMessageUnordered_Success() (gas: 122676) -EVM2EVMOffRamp_execute:test__execute_SkippedAlreadyExecutedMessage_Success() (gas: 142850) -EVM2EVMOffRamp_execute:test_execute_RouterYULCall_Success() (gas: 427538) +EVM2EVMOffRamp_execute:test__execute_SkippedAlreadyExecutedMessageUnordered_Success() (gas: 122733) +EVM2EVMOffRamp_execute:test__execute_SkippedAlreadyExecutedMessage_Success() (gas: 142907) +EVM2EVMOffRamp_execute:test_execute_RouterYULCall_Success() (gas: 427595) EVM2EVMOffRamp_executeSingleMessage:test_MessageSender_Revert() (gas: 18502) -EVM2EVMOffRamp_executeSingleMessage:test_NonContractWithTokens_Success() (gas: 278362) +EVM2EVMOffRamp_executeSingleMessage:test_NonContractWithTokens_Success() (gas: 278638) EVM2EVMOffRamp_executeSingleMessage:test_NonContract_Success() (gas: 18668) -EVM2EVMOffRamp_executeSingleMessage:test_TokenHandlingError_Revert() (gas: 224109) -EVM2EVMOffRamp_executeSingleMessage:test_ZeroGasDONExecution_Revert() (gas: 47926) -EVM2EVMOffRamp_executeSingleMessage:test_executeSingleMessage_NoTokens_Success() (gas: 47403) -EVM2EVMOffRamp_executeSingleMessage:test_executeSingleMessage_WithTokens_Success() (gas: 314224) -EVM2EVMOffRamp_executeSingleMessage:test_executeSingleMessage_ZeroGasZeroData_Success() (gas: 70065) -EVM2EVMOffRamp_execute_upgrade:test_V2NonceNewSenderStartsAtZero_Success() (gas: 229454) -EVM2EVMOffRamp_execute_upgrade:test_V2NonceStartsAtV1Nonce_Success() (gas: 276982) -EVM2EVMOffRamp_execute_upgrade:test_V2OffRampNonceSkipsIfMsgInFlight_Success() (gas: 258834) -EVM2EVMOffRamp_execute_upgrade:test_V2SenderNoncesReadsPreviousRamp_Success() (gas: 226442) -EVM2EVMOffRamp_execute_upgrade:test_V2_Success() (gas: 130811) +EVM2EVMOffRamp_executeSingleMessage:test_TokenHandlingError_Revert() (gas: 224385) +EVM2EVMOffRamp_executeSingleMessage:test_ZeroGasDONExecution_Revert() (gas: 47950) +EVM2EVMOffRamp_executeSingleMessage:test_executeSingleMessage_NoTokens_Success() (gas: 47427) +EVM2EVMOffRamp_executeSingleMessage:test_executeSingleMessage_WithTokens_Success() (gas: 314524) +EVM2EVMOffRamp_executeSingleMessage:test_executeSingleMessage_ZeroGasZeroData_Success() (gas: 70101) +EVM2EVMOffRamp_execute_upgrade:test_V2NonceNewSenderStartsAtZero_Success() (gas: 229526) +EVM2EVMOffRamp_execute_upgrade:test_V2NonceStartsAtV1Nonce_Success() (gas: 277072) +EVM2EVMOffRamp_execute_upgrade:test_V2OffRampNonceSkipsIfMsgInFlight_Success() (gas: 258912) +EVM2EVMOffRamp_execute_upgrade:test_V2SenderNoncesReadsPreviousRamp_Success() (gas: 226538) +EVM2EVMOffRamp_execute_upgrade:test_V2_Success() (gas: 130841) EVM2EVMOffRamp_getAllRateLimitTokens:test_GetAllRateLimitTokens_Success() (gas: 38446) EVM2EVMOffRamp_getExecutionState:test_FillExecutionState_Success() (gas: 3251974) EVM2EVMOffRamp_getExecutionState:test_GetExecutionState_Success() (gas: 83387) -EVM2EVMOffRamp_manuallyExecute:test_ManualExecFailedTx_Revert() (gas: 185967) +EVM2EVMOffRamp_manuallyExecute:test_ManualExecFailedTx_Revert() (gas: 186015) EVM2EVMOffRamp_manuallyExecute:test_ManualExecForkedChain_Revert() (gas: 27052) EVM2EVMOffRamp_manuallyExecute:test_ManualExecGasLimitMismatch_Revert() (gas: 45200) EVM2EVMOffRamp_manuallyExecute:test_ManualExecInvalidGasLimit_Revert() (gas: 27471) -EVM2EVMOffRamp_manuallyExecute:test_ManualExecWithMultipleMessagesAndSourceTokens_Success() (gas: 530789) -EVM2EVMOffRamp_manuallyExecute:test_ManualExecWithSourceTokens_Success() (gas: 346083) -EVM2EVMOffRamp_manuallyExecute:test_ManualExec_Success() (gas: 187459) -EVM2EVMOffRamp_manuallyExecute:test_ReentrancyManualExecuteFails_Success() (gas: 2258366) -EVM2EVMOffRamp_manuallyExecute:test_manuallyExecute_DestinationGasAmountCountMismatch_Revert() (gas: 363296) -EVM2EVMOffRamp_manuallyExecute:test_manuallyExecute_DoesNotRevertIfUntouched_Success() (gas: 143972) -EVM2EVMOffRamp_manuallyExecute:test_manuallyExecute_InvalidTokenGasOverride_Revert() (gas: 366435) -EVM2EVMOffRamp_manuallyExecute:test_manuallyExecute_LowGasLimitManualExec_Success() (gas: 482796) -EVM2EVMOffRamp_manuallyExecute:test_manuallyExecute_WithGasOverride_Success() (gas: 189862) -EVM2EVMOffRamp_manuallyExecute:test_manuallyExecute_WithInvalidReceiverExecutionGasOverride_Revert() (gas: 153716) +EVM2EVMOffRamp_manuallyExecute:test_ManualExecWithMultipleMessagesAndSourceTokens_Success() (gas: 531389) +EVM2EVMOffRamp_manuallyExecute:test_ManualExecWithSourceTokens_Success() (gas: 346383) +EVM2EVMOffRamp_manuallyExecute:test_ManualExec_Success() (gas: 187507) +EVM2EVMOffRamp_manuallyExecute:test_ReentrancyManualExecuteFails_Success() (gas: 2258636) +EVM2EVMOffRamp_manuallyExecute:test_manuallyExecute_DestinationGasAmountCountMismatch_Revert() (gas: 363596) +EVM2EVMOffRamp_manuallyExecute:test_manuallyExecute_DoesNotRevertIfUntouched_Success() (gas: 143996) +EVM2EVMOffRamp_manuallyExecute:test_manuallyExecute_InvalidTokenGasOverride_Revert() (gas: 366735) +EVM2EVMOffRamp_manuallyExecute:test_manuallyExecute_LowGasLimitManualExec_Success() (gas: 482844) +EVM2EVMOffRamp_manuallyExecute:test_manuallyExecute_WithGasOverride_Success() (gas: 189910) +EVM2EVMOffRamp_manuallyExecute:test_manuallyExecute_WithInvalidReceiverExecutionGasOverride_Revert() (gas: 153740) EVM2EVMOffRamp_manuallyExecute:test_manuallyExecute_WithInvalidSourceTokenDataCount_Revert() (gas: 59897) EVM2EVMOffRamp_metadataHash:test_MetadataHash_Success() (gas: 8865) -EVM2EVMOffRamp_setDynamicConfig:test_NonOwner_Revert() (gas: 40162) +EVM2EVMOffRamp_setDynamicConfig:test_NonOwner_Revert() (gas: 40168) EVM2EVMOffRamp_setDynamicConfig:test_RouterZeroAddress_Revert() (gas: 38239) EVM2EVMOffRamp_setDynamicConfig:test_SetDynamicConfig_Success() (gas: 141938) -EVM2EVMOffRamp_updateRateLimitTokens:test_updateRateLimitTokens_AddsAndRemoves_Success() (gas: 162528) -EVM2EVMOffRamp_updateRateLimitTokens:test_updateRateLimitTokens_NonOwner_Revert() (gas: 16699) +EVM2EVMOffRamp_updateRateLimitTokens:test_updateRateLimitTokens_AddsAndRemoves_Success() (gas: 162532) +EVM2EVMOffRamp_updateRateLimitTokens:test_updateRateLimitTokens_NonOwner_Revert() (gas: 16711) EVM2EVMOffRamp_updateRateLimitTokens:test_updateRateLimitTokens_Success() (gas: 197728) -EVM2EVMOnRamp_constructor:test_Constructor_Success() (gas: 5431520) -EVM2EVMOnRamp_forwardFromRouter:test_CannotSendZeroTokens_Revert() (gas: 35835) -EVM2EVMOnRamp_forwardFromRouter:test_EnforceOutOfOrder_Revert() (gas: 98584) -EVM2EVMOnRamp_forwardFromRouter:test_ForwardFromRouterExtraArgsV2AllowOutOfOrderTrue_Success() (gas: 114231) -EVM2EVMOnRamp_forwardFromRouter:test_ForwardFromRouterExtraArgsV2_Success() (gas: 114273) -EVM2EVMOnRamp_forwardFromRouter:test_ForwardFromRouterSuccessCustomExtraArgs() (gas: 130246) -EVM2EVMOnRamp_forwardFromRouter:test_ForwardFromRouterSuccessLegacyExtraArgs() (gas: 138686) -EVM2EVMOnRamp_forwardFromRouter:test_ForwardFromRouter_Success() (gas: 129865) -EVM2EVMOnRamp_forwardFromRouter:test_InvalidAddressEncodePacked_Revert() (gas: 38314) -EVM2EVMOnRamp_forwardFromRouter:test_InvalidAddress_Revert() (gas: 38497) -EVM2EVMOnRamp_forwardFromRouter:test_InvalidChainSelector_Revert() (gas: 25534) -EVM2EVMOnRamp_forwardFromRouter:test_InvalidExtraArgsTag_Revert() (gas: 25320) -EVM2EVMOnRamp_forwardFromRouter:test_MaxCapacityExceeded_Revert() (gas: 86138) -EVM2EVMOnRamp_forwardFromRouter:test_MaxFeeBalanceReached_Revert() (gas: 36514) -EVM2EVMOnRamp_forwardFromRouter:test_MessageGasLimitTooHigh_Revert() (gas: 29078) -EVM2EVMOnRamp_forwardFromRouter:test_MessageTooLarge_Revert() (gas: 107622) +EVM2EVMOnRamp_constructor:test_Constructor_Success() (gas: 5322415) +EVM2EVMOnRamp_forwardFromRouter:test_CannotSendZeroTokens_Revert() (gas: 35880) +EVM2EVMOnRamp_forwardFromRouter:test_EnforceOutOfOrder_Revert() (gas: 98614) +EVM2EVMOnRamp_forwardFromRouter:test_ForwardFromRouterExtraArgsV2AllowOutOfOrderTrue_Success() (gas: 114321) +EVM2EVMOnRamp_forwardFromRouter:test_ForwardFromRouterExtraArgsV2_Success() (gas: 114363) +EVM2EVMOnRamp_forwardFromRouter:test_ForwardFromRouterSuccessCustomExtraArgs() (gas: 130351) +EVM2EVMOnRamp_forwardFromRouter:test_ForwardFromRouterSuccessLegacyExtraArgs() (gas: 138791) +EVM2EVMOnRamp_forwardFromRouter:test_ForwardFromRouter_Success() (gas: 129970) +EVM2EVMOnRamp_forwardFromRouter:test_InvalidAddressEncodePacked_Revert() (gas: 38431) +EVM2EVMOnRamp_forwardFromRouter:test_InvalidAddress_Revert() (gas: 38614) +EVM2EVMOnRamp_forwardFromRouter:test_InvalidChainSelector_Revert() (gas: 25540) +EVM2EVMOnRamp_forwardFromRouter:test_InvalidExtraArgsTag_Revert() (gas: 25365) +EVM2EVMOnRamp_forwardFromRouter:test_MaxCapacityExceeded_Revert() (gas: 86189) +EVM2EVMOnRamp_forwardFromRouter:test_MaxFeeBalanceReached_Revert() (gas: 36619) +EVM2EVMOnRamp_forwardFromRouter:test_MessageGasLimitTooHigh_Revert() (gas: 29123) +EVM2EVMOnRamp_forwardFromRouter:test_MessageTooLarge_Revert() (gas: 107667) EVM2EVMOnRamp_forwardFromRouter:test_OriginalSender_Revert() (gas: 22724) -EVM2EVMOnRamp_forwardFromRouter:test_OverValueWithARLOff_Success() (gas: 227439) -EVM2EVMOnRamp_forwardFromRouter:test_Paused_Revert() (gas: 53150) -EVM2EVMOnRamp_forwardFromRouter:test_Permissions_Revert() (gas: 25559) -EVM2EVMOnRamp_forwardFromRouter:test_PriceNotFoundForToken_Revert() (gas: 59478) -EVM2EVMOnRamp_forwardFromRouter:test_ShouldIncrementNonceOnlyOnOrdered_Success() (gas: 179442) -EVM2EVMOnRamp_forwardFromRouter:test_ShouldIncrementSeqNumAndNonce_Success() (gas: 177724) -EVM2EVMOnRamp_forwardFromRouter:test_ShouldStoreNonLinkFees() (gas: 137333) -EVM2EVMOnRamp_forwardFromRouter:test_SourceTokenDataTooLarge_Revert() (gas: 3772676) -EVM2EVMOnRamp_forwardFromRouter:test_TooManyTokens_Revert() (gas: 30244) +EVM2EVMOnRamp_forwardFromRouter:test_OverValueWithARLOff_Success() (gas: 227661) +EVM2EVMOnRamp_forwardFromRouter:test_Paused_Revert() (gas: 53180) +EVM2EVMOnRamp_forwardFromRouter:test_Permissions_Revert() (gas: 25565) +EVM2EVMOnRamp_forwardFromRouter:test_PriceNotFoundForToken_Revert() (gas: 59523) +EVM2EVMOnRamp_forwardFromRouter:test_ShouldIncrementNonceOnlyOnOrdered_Success() (gas: 179712) +EVM2EVMOnRamp_forwardFromRouter:test_ShouldIncrementSeqNumAndNonce_Success() (gas: 178039) +EVM2EVMOnRamp_forwardFromRouter:test_ShouldStoreNonLinkFees() (gas: 137465) +EVM2EVMOnRamp_forwardFromRouter:test_SourceTokenDataTooLarge_Revert() (gas: 3713189) +EVM2EVMOnRamp_forwardFromRouter:test_TooManyTokens_Revert() (gas: 30289) EVM2EVMOnRamp_forwardFromRouter:test_Unhealthy_Revert() (gas: 43342) -EVM2EVMOnRamp_forwardFromRouter:test_UnsupportedToken_Revert() (gas: 109440) -EVM2EVMOnRamp_forwardFromRouter:test_ZeroAddressReceiver_Revert() (gas: 313095) -EVM2EVMOnRamp_forwardFromRouter:test_forwardFromRouter_ShouldStoreLinkFees_Success() (gas: 112430) -EVM2EVMOnRamp_forwardFromRouter:test_forwardFromRouter_UnsupportedToken_Revert() (gas: 72269) -EVM2EVMOnRamp_forwardFromRouter:test_forwardFromRouter_correctSourceTokenData_Success() (gas: 713846) -EVM2EVMOnRamp_forwardFromRouter_upgrade:test_V2NonceNewSenderStartsAtZero_Success() (gas: 147709) -EVM2EVMOnRamp_forwardFromRouter_upgrade:test_V2NonceStartsAtV1Nonce_Success() (gas: 190616) -EVM2EVMOnRamp_forwardFromRouter_upgrade:test_V2SenderNoncesReadsPreviousRamp_Success() (gas: 121404) -EVM2EVMOnRamp_forwardFromRouter_upgrade:test_V2_Success() (gas: 95376) +EVM2EVMOnRamp_forwardFromRouter:test_UnsupportedToken_Revert() (gas: 109557) +EVM2EVMOnRamp_forwardFromRouter:test_ZeroAddressReceiver_Revert() (gas: 314265) +EVM2EVMOnRamp_forwardFromRouter:test_forwardFromRouter_ShouldStoreLinkFees_Success() (gas: 112547) +EVM2EVMOnRamp_forwardFromRouter:test_forwardFromRouter_UnsupportedToken_Revert() (gas: 72386) +EVM2EVMOnRamp_forwardFromRouter:test_forwardFromRouter_correctSourceTokenData_Success() (gas: 714230) +EVM2EVMOnRamp_forwardFromRouter_upgrade:test_V2NonceNewSenderStartsAtZero_Success() (gas: 147925) +EVM2EVMOnRamp_forwardFromRouter_upgrade:test_V2NonceStartsAtV1Nonce_Success() (gas: 190949) +EVM2EVMOnRamp_forwardFromRouter_upgrade:test_V2SenderNoncesReadsPreviousRamp_Success() (gas: 121743) +EVM2EVMOnRamp_forwardFromRouter_upgrade:test_V2_Success() (gas: 95487) EVM2EVMOnRamp_getDataAvailabilityCost:test_EmptyMessageCalculatesDataAvailabilityCost_Success() (gas: 20568) EVM2EVMOnRamp_getDataAvailabilityCost:test_SimpleMessageCalculatesDataAvailabilityCost_Success() (gas: 20936) -EVM2EVMOnRamp_getFee:test_EmptyMessage_Success() (gas: 78401) -EVM2EVMOnRamp_getFee:test_GetFeeOfZeroForTokenMessage_Success() (gas: 81897) -EVM2EVMOnRamp_getFee:test_HighGasMessage_Success() (gas: 234249) -EVM2EVMOnRamp_getFee:test_MessageGasLimitTooHigh_Revert() (gas: 16733) -EVM2EVMOnRamp_getFee:test_MessageTooLarge_Revert() (gas: 95283) -EVM2EVMOnRamp_getFee:test_MessageWithDataAndTokenTransfer_Success() (gas: 160123) -EVM2EVMOnRamp_getFee:test_NotAFeeToken_Revert() (gas: 24113) -EVM2EVMOnRamp_getFee:test_SingleTokenMessage_Success() (gas: 118345) -EVM2EVMOnRamp_getFee:test_TooManyTokens_Revert() (gas: 19914) -EVM2EVMOnRamp_getFee:test_ZeroDataAvailabilityMultiplier_Success() (gas: 64726) +EVM2EVMOnRamp_getFee:test_EmptyMessage_Success() (gas: 78521) +EVM2EVMOnRamp_getFee:test_GetFeeOfZeroForTokenMessage_Success() (gas: 82047) +EVM2EVMOnRamp_getFee:test_HighGasMessage_Success() (gas: 234369) +EVM2EVMOnRamp_getFee:test_MessageGasLimitTooHigh_Revert() (gas: 16778) +EVM2EVMOnRamp_getFee:test_MessageTooLarge_Revert() (gas: 95328) +EVM2EVMOnRamp_getFee:test_MessageWithDataAndTokenTransfer_Success() (gas: 160243) +EVM2EVMOnRamp_getFee:test_NotAFeeToken_Revert() (gas: 24158) +EVM2EVMOnRamp_getFee:test_SingleTokenMessage_Success() (gas: 118465) +EVM2EVMOnRamp_getFee:test_TooManyTokens_Revert() (gas: 19959) +EVM2EVMOnRamp_getFee:test_ZeroDataAvailabilityMultiplier_Success() (gas: 64816) EVM2EVMOnRamp_getSupportedTokens:test_GetSupportedTokens_Revert() (gas: 10460) EVM2EVMOnRamp_getTokenPool:test_GetTokenPool_Success() (gas: 35195) EVM2EVMOnRamp_getTokenTransferCost:test_CustomTokenBpsFee_Success() (gas: 45198) @@ -263,135 +263,135 @@ EVM2EVMOnRamp_getTokenTransferCost:test_LargeTokenTransferChargesMaxFeeAndGas_Su EVM2EVMOnRamp_getTokenTransferCost:test_MixedTokenTransferFee_Success() (gas: 126939) EVM2EVMOnRamp_getTokenTransferCost:test_NoTokenTransferChargesZeroFee_Success() (gas: 15250) EVM2EVMOnRamp_getTokenTransferCost:test_SmallTokenTransferChargesMinFeeAndGas_Success() (gas: 28164) -EVM2EVMOnRamp_getTokenTransferCost:test_UnsupportedToken_Revert() (gas: 21260) +EVM2EVMOnRamp_getTokenTransferCost:test_UnsupportedToken_Revert() (gas: 21266) EVM2EVMOnRamp_getTokenTransferCost:test_ZeroAmountTokenTransferChargesMinFeeAndGas_Success() (gas: 28187) EVM2EVMOnRamp_getTokenTransferCost:test_ZeroFeeConfigChargesMinFee_Success() (gas: 38638) EVM2EVMOnRamp_getTokenTransferCost:test__getTokenTransferCost_selfServeUsesDefaults_Success() (gas: 29440) -EVM2EVMOnRamp_linkAvailableForPayment:test_InsufficientLinkBalance_Success() (gas: 32621) -EVM2EVMOnRamp_linkAvailableForPayment:test_LinkAvailableForPayment_Success() (gas: 134884) -EVM2EVMOnRamp_payNops:test_AdminPayNops_Success() (gas: 143210) -EVM2EVMOnRamp_payNops:test_InsufficientBalance_Revert() (gas: 29055) -EVM2EVMOnRamp_payNops:test_NoFeesToPay_Revert() (gas: 127424) -EVM2EVMOnRamp_payNops:test_NoNopsToPay_Revert() (gas: 133318) -EVM2EVMOnRamp_payNops:test_NopPayNops_Success() (gas: 146497) -EVM2EVMOnRamp_payNops:test_OwnerPayNops_Success() (gas: 141072) -EVM2EVMOnRamp_payNops:test_PayNopsSuccessAfterSetNops() (gas: 297651) +EVM2EVMOnRamp_linkAvailableForPayment:test_InsufficientLinkBalance_Success() (gas: 32651) +EVM2EVMOnRamp_linkAvailableForPayment:test_LinkAvailableForPayment_Success() (gas: 135118) +EVM2EVMOnRamp_payNops:test_AdminPayNops_Success() (gas: 143408) +EVM2EVMOnRamp_payNops:test_InsufficientBalance_Revert() (gas: 29085) +EVM2EVMOnRamp_payNops:test_NoFeesToPay_Revert() (gas: 127622) +EVM2EVMOnRamp_payNops:test_NoNopsToPay_Revert() (gas: 133481) +EVM2EVMOnRamp_payNops:test_NopPayNops_Success() (gas: 146695) +EVM2EVMOnRamp_payNops:test_OwnerPayNops_Success() (gas: 141270) +EVM2EVMOnRamp_payNops:test_PayNopsSuccessAfterSetNops() (gas: 298116) EVM2EVMOnRamp_payNops:test_WrongPermissions_Revert() (gas: 15300) -EVM2EVMOnRamp_setDynamicConfig:test_SetConfigInvalidConfig_Revert() (gas: 42377) -EVM2EVMOnRamp_setDynamicConfig:test_SetConfigOnlyOwner_Revert() (gas: 21258) -EVM2EVMOnRamp_setDynamicConfig:test_SetDynamicConfig_Success() (gas: 53782) -EVM2EVMOnRamp_setFeeTokenConfig:test_OnlyCallableByOwnerOrAdmin_Revert() (gas: 13470) -EVM2EVMOnRamp_setFeeTokenConfig:test_SetFeeTokenConfigByAdmin_Success() (gas: 16455) -EVM2EVMOnRamp_setFeeTokenConfig:test_SetFeeTokenConfig_Success() (gas: 13994) -EVM2EVMOnRamp_setNops:test_AdminCanSetNops_Success() (gas: 61785) -EVM2EVMOnRamp_setNops:test_IncludesPayment_Success() (gas: 469353) -EVM2EVMOnRamp_setNops:test_LinkTokenCannotBeNop_Revert() (gas: 57276) +EVM2EVMOnRamp_setDynamicConfig:test_SetConfigInvalidConfig_Revert() (gas: 42401) +EVM2EVMOnRamp_setDynamicConfig:test_SetConfigOnlyOwner_Revert() (gas: 21270) +EVM2EVMOnRamp_setDynamicConfig:test_SetDynamicConfig_Success() (gas: 53830) +EVM2EVMOnRamp_setFeeTokenConfig:test_OnlyCallableByOwnerOrAdmin_Revert() (gas: 13476) +EVM2EVMOnRamp_setFeeTokenConfig:test_SetFeeTokenConfigByAdmin_Success() (gas: 16461) +EVM2EVMOnRamp_setFeeTokenConfig:test_SetFeeTokenConfig_Success() (gas: 14000) +EVM2EVMOnRamp_setNops:test_AdminCanSetNops_Success() (gas: 61795) +EVM2EVMOnRamp_setNops:test_IncludesPayment_Success() (gas: 469668) +EVM2EVMOnRamp_setNops:test_LinkTokenCannotBeNop_Revert() (gas: 57291) EVM2EVMOnRamp_setNops:test_NonOwnerOrAdmin_Revert() (gas: 14677) -EVM2EVMOnRamp_setNops:test_NotEnoughFundsForPayout_Revert() (gas: 84528) -EVM2EVMOnRamp_setNops:test_SetNopsRemovesOldNopsCompletely_Success() (gas: 60673) -EVM2EVMOnRamp_setNops:test_SetNops_Success() (gas: 173821) +EVM2EVMOnRamp_setNops:test_NotEnoughFundsForPayout_Revert() (gas: 84675) +EVM2EVMOnRamp_setNops:test_SetNopsRemovesOldNopsCompletely_Success() (gas: 60683) +EVM2EVMOnRamp_setNops:test_SetNops_Success() (gas: 173833) EVM2EVMOnRamp_setNops:test_TooManyNops_Revert() (gas: 190350) -EVM2EVMOnRamp_setNops:test_ZeroAddressCannotBeNop_Revert() (gas: 53617) +EVM2EVMOnRamp_setNops:test_ZeroAddressCannotBeNop_Revert() (gas: 53632) EVM2EVMOnRamp_setTokenTransferFeeConfig:test__setTokenTransferFeeConfig_InvalidDestBytesOverhead_Revert() (gas: 14499) EVM2EVMOnRamp_setTokenTransferFeeConfig:test__setTokenTransferFeeConfig_OnlyCallableByOwnerOrAdmin_Revert() (gas: 14283) EVM2EVMOnRamp_setTokenTransferFeeConfig:test__setTokenTransferFeeConfig_Success() (gas: 84107) EVM2EVMOnRamp_setTokenTransferFeeConfig:test__setTokenTransferFeeConfig_byAdmin_Success() (gas: 17375) -EVM2EVMOnRamp_withdrawNonLinkFees:test_LinkBalanceNotSettled_Revert() (gas: 83035) +EVM2EVMOnRamp_withdrawNonLinkFees:test_LinkBalanceNotSettled_Revert() (gas: 83158) EVM2EVMOnRamp_withdrawNonLinkFees:test_NonOwnerOrAdmin_Revert() (gas: 15275) -EVM2EVMOnRamp_withdrawNonLinkFees:test_SettlingBalance_Success() (gas: 272083) -EVM2EVMOnRamp_withdrawNonLinkFees:test_WithdrawNonLinkFees_Success() (gas: 53458) +EVM2EVMOnRamp_withdrawNonLinkFees:test_SettlingBalance_Success() (gas: 272200) +EVM2EVMOnRamp_withdrawNonLinkFees:test_WithdrawNonLinkFees_Success() (gas: 53482) EVM2EVMOnRamp_withdrawNonLinkFees:test_WithdrawToZeroAddress_Revert() (gas: 12830) EtherSenderReceiverTest_ccipReceive:test_ccipReceive_fallbackToWethTransfer() (gas: 96892) EtherSenderReceiverTest_ccipReceive:test_ccipReceive_happyPath() (gas: 49770) EtherSenderReceiverTest_ccipReceive:test_ccipReceive_wrongToken() (gas: 17423) -EtherSenderReceiverTest_ccipReceive:test_ccipReceive_wrongTokenAmount() (gas: 15716) -EtherSenderReceiverTest_ccipSend:test_ccipSend_reverts_insufficientFee_feeToken() (gas: 99831) -EtherSenderReceiverTest_ccipSend:test_ccipSend_reverts_insufficientFee_native() (gas: 76099) -EtherSenderReceiverTest_ccipSend:test_ccipSend_reverts_insufficientFee_weth() (gas: 99853) -EtherSenderReceiverTest_ccipSend:test_ccipSend_success_feeToken() (gas: 144833) -EtherSenderReceiverTest_ccipSend:test_ccipSend_success_native() (gas: 80262) -EtherSenderReceiverTest_ccipSend:test_ccipSend_success_nativeExcess() (gas: 80449) -EtherSenderReceiverTest_ccipSend:test_ccipSend_success_weth() (gas: 95902) +EtherSenderReceiverTest_ccipReceive:test_ccipReceive_wrongTokenAmount() (gas: 15722) +EtherSenderReceiverTest_ccipSend:test_ccipSend_reverts_insufficientFee_feeToken() (gas: 99837) +EtherSenderReceiverTest_ccipSend:test_ccipSend_reverts_insufficientFee_native() (gas: 76105) +EtherSenderReceiverTest_ccipSend:test_ccipSend_reverts_insufficientFee_weth() (gas: 99859) +EtherSenderReceiverTest_ccipSend:test_ccipSend_success_feeToken() (gas: 144845) +EtherSenderReceiverTest_ccipSend:test_ccipSend_success_native() (gas: 80268) +EtherSenderReceiverTest_ccipSend:test_ccipSend_success_nativeExcess() (gas: 80455) +EtherSenderReceiverTest_ccipSend:test_ccipSend_success_weth() (gas: 95914) EtherSenderReceiverTest_constructor:test_constructor() (gas: 17535) -EtherSenderReceiverTest_getFee:test_getFee() (gas: 27316) +EtherSenderReceiverTest_getFee:test_getFee() (gas: 27328) EtherSenderReceiverTest_validateFeeToken:test_validateFeeToken_reverts_feeToken_tokenAmountNotEqualToMsgValue() (gas: 20363) EtherSenderReceiverTest_validateFeeToken:test_validateFeeToken_valid_feeToken() (gas: 16718) EtherSenderReceiverTest_validateFeeToken:test_validateFeeToken_valid_native() (gas: 16657) EtherSenderReceiverTest_validatedMessage:test_validatedMessage_dataOverwrittenToMsgSender() (gas: 25415) EtherSenderReceiverTest_validatedMessage:test_validatedMessage_emptyDataOverwrittenToMsgSender() (gas: 25265) -EtherSenderReceiverTest_validatedMessage:test_validatedMessage_invalidTokenAmounts() (gas: 17907) +EtherSenderReceiverTest_validatedMessage:test_validatedMessage_invalidTokenAmounts() (gas: 17913) EtherSenderReceiverTest_validatedMessage:test_validatedMessage_tokenOverwrittenToWeth() (gas: 25287) -EtherSenderReceiverTest_validatedMessage:test_validatedMessage_validMessage_extraArgs() (gas: 26316) -FeeQuoter_applyDestChainConfigUpdates:test_InvalidChainFamilySelector_Revert() (gas: 16509) -FeeQuoter_applyDestChainConfigUpdates:test_InvalidDestChainConfigDestChainSelectorEqZero_Revert() (gas: 16423) -FeeQuoter_applyDestChainConfigUpdates:test_applyDestChainConfigUpdatesDefaultTxGasLimitEqZero_Revert() (gas: 16465) -FeeQuoter_applyDestChainConfigUpdates:test_applyDestChainConfigUpdatesDefaultTxGasLimitGtMaxPerMessageGasLimit_Revert() (gas: 39969) +EtherSenderReceiverTest_validatedMessage:test_validatedMessage_validMessage_extraArgs() (gas: 26328) +FeeQuoter_applyDestChainConfigUpdates:test_InvalidChainFamilySelector_Revert() (gas: 16515) +FeeQuoter_applyDestChainConfigUpdates:test_InvalidDestChainConfigDestChainSelectorEqZero_Revert() (gas: 16429) +FeeQuoter_applyDestChainConfigUpdates:test_applyDestChainConfigUpdatesDefaultTxGasLimitEqZero_Revert() (gas: 16471) +FeeQuoter_applyDestChainConfigUpdates:test_applyDestChainConfigUpdatesDefaultTxGasLimitGtMaxPerMessageGasLimit_Revert() (gas: 39975) FeeQuoter_applyDestChainConfigUpdates:test_applyDestChainConfigUpdatesZeroIntput_Success() (gas: 12342) -FeeQuoter_applyDestChainConfigUpdates:test_applyDestChainConfigUpdates_Success() (gas: 135942) -FeeQuoter_applyFeeTokensUpdates:test_ApplyFeeTokensUpdates_Success() (gas: 80117) -FeeQuoter_applyFeeTokensUpdates:test_OnlyCallableByOwner_Revert() (gas: 12615) -FeeQuoter_applyPremiumMultiplierWeiPerEthUpdates:test_OnlyCallableByOwnerOrAdmin_Revert() (gas: 11456) -FeeQuoter_applyPremiumMultiplierWeiPerEthUpdates:test_applyPremiumMultiplierWeiPerEthUpdatesMultipleTokens_Success() (gas: 54236) -FeeQuoter_applyPremiumMultiplierWeiPerEthUpdates:test_applyPremiumMultiplierWeiPerEthUpdatesSingleToken_Success() (gas: 44880) +FeeQuoter_applyDestChainConfigUpdates:test_applyDestChainConfigUpdates_Success() (gas: 135960) +FeeQuoter_applyFeeTokensUpdates:test_ApplyFeeTokensUpdates_Success() (gas: 80127) +FeeQuoter_applyFeeTokensUpdates:test_OnlyCallableByOwner_Revert() (gas: 12621) +FeeQuoter_applyPremiumMultiplierWeiPerEthUpdates:test_OnlyCallableByOwnerOrAdmin_Revert() (gas: 11462) +FeeQuoter_applyPremiumMultiplierWeiPerEthUpdates:test_applyPremiumMultiplierWeiPerEthUpdatesMultipleTokens_Success() (gas: 54242) +FeeQuoter_applyPremiumMultiplierWeiPerEthUpdates:test_applyPremiumMultiplierWeiPerEthUpdatesSingleToken_Success() (gas: 44886) FeeQuoter_applyPremiumMultiplierWeiPerEthUpdates:test_applyPremiumMultiplierWeiPerEthUpdatesZeroInput() (gas: 12280) -FeeQuoter_applyTokenTransferFeeConfigUpdates:test_ApplyTokenTransferFeeConfig_Success() (gas: 86968) +FeeQuoter_applyTokenTransferFeeConfigUpdates:test_ApplyTokenTransferFeeConfig_Success() (gas: 87004) FeeQuoter_applyTokenTransferFeeConfigUpdates:test_ApplyTokenTransferFeeZeroInput() (gas: 13089) FeeQuoter_applyTokenTransferFeeConfigUpdates:test_InvalidDestBytesOverhead_Revert() (gas: 17071) -FeeQuoter_applyTokenTransferFeeConfigUpdates:test_OnlyCallableByOwnerOrAdmin_Revert() (gas: 12246) -FeeQuoter_constructor:test_InvalidLinkTokenEqZeroAddress_Revert() (gas: 106820) -FeeQuoter_constructor:test_InvalidMaxFeeJuelsPerMsg_Revert() (gas: 111170) -FeeQuoter_constructor:test_InvalidStalenessThreshold_Revert() (gas: 111223) -FeeQuoter_constructor:test_Setup_Success() (gas: 5205186) +FeeQuoter_applyTokenTransferFeeConfigUpdates:test_OnlyCallableByOwnerOrAdmin_Revert() (gas: 12252) +FeeQuoter_constructor:test_InvalidLinkTokenEqZeroAddress_Revert() (gas: 106761) +FeeQuoter_constructor:test_InvalidMaxFeeJuelsPerMsg_Revert() (gas: 111111) +FeeQuoter_constructor:test_InvalidStalenessThreshold_Revert() (gas: 111164) +FeeQuoter_constructor:test_Setup_Success() (gas: 5164117) FeeQuoter_convertTokenAmount:test_ConvertTokenAmount_Success() (gas: 72751) -FeeQuoter_convertTokenAmount:test_LinkTokenNotSupported_Revert() (gas: 30981) -FeeQuoter_getDataAvailabilityCost:test_EmptyMessageCalculatesDataAvailabilityCost_Success() (gas: 94441) +FeeQuoter_convertTokenAmount:test_LinkTokenNotSupported_Revert() (gas: 31017) +FeeQuoter_getDataAvailabilityCost:test_EmptyMessageCalculatesDataAvailabilityCost_Success() (gas: 94447) FeeQuoter_getDataAvailabilityCost:test_SimpleMessageCalculatesDataAvailabilityCostUnsupportedDestChainSelector_Success() (gas: 14650) FeeQuoter_getDataAvailabilityCost:test_SimpleMessageCalculatesDataAvailabilityCost_Success() (gas: 20482) FeeQuoter_getTokenAndGasPrices:test_GetFeeTokenAndGasPrices_Success() (gas: 70464) FeeQuoter_getTokenAndGasPrices:test_StaleGasPrice_Revert() (gas: 16838) FeeQuoter_getTokenAndGasPrices:test_UnsupportedChain_Revert() (gas: 16140) -FeeQuoter_getTokenAndGasPrices:test_ZeroGasPrice_Success() (gas: 45771) +FeeQuoter_getTokenAndGasPrices:test_ZeroGasPrice_Success() (gas: 45777) FeeQuoter_getTokenPrice:test_GetTokenPriceFromFeed_Success() (gas: 62227) FeeQuoter_getTokenPrices:test_GetTokenPrices_Success() (gas: 84818) -FeeQuoter_getTokenTransferCost:test_CustomTokenBpsFee_Success() (gas: 41281) -FeeQuoter_getTokenTransferCost:test_FeeTokenBpsFee_Success() (gas: 34730) -FeeQuoter_getTokenTransferCost:test_LargeTokenTransferChargesMaxFeeAndGas_Success() (gas: 27804) -FeeQuoter_getTokenTransferCost:test_MixedTokenTransferFee_Success() (gas: 101864) +FeeQuoter_getTokenTransferCost:test_CustomTokenBpsFee_Success() (gas: 41293) +FeeQuoter_getTokenTransferCost:test_FeeTokenBpsFee_Success() (gas: 34742) +FeeQuoter_getTokenTransferCost:test_LargeTokenTransferChargesMaxFeeAndGas_Success() (gas: 27816) +FeeQuoter_getTokenTransferCost:test_MixedTokenTransferFee_Success() (gas: 101954) FeeQuoter_getTokenTransferCost:test_NoTokenTransferChargesZeroFee_Success() (gas: 20390) -FeeQuoter_getTokenTransferCost:test_SmallTokenTransferChargesMinFeeAndGas_Success() (gas: 27679) -FeeQuoter_getTokenTransferCost:test_ZeroAmountTokenTransferChargesMinFeeAndGas_Success() (gas: 27635) -FeeQuoter_getTokenTransferCost:test_ZeroFeeConfigChargesMinFee_Success() (gas: 40064) -FeeQuoter_getTokenTransferCost:test_getTokenTransferCost_selfServeUsesDefaults_Success() (gas: 29347) +FeeQuoter_getTokenTransferCost:test_SmallTokenTransferChargesMinFeeAndGas_Success() (gas: 27691) +FeeQuoter_getTokenTransferCost:test_ZeroAmountTokenTransferChargesMinFeeAndGas_Success() (gas: 27647) +FeeQuoter_getTokenTransferCost:test_ZeroFeeConfigChargesMinFee_Success() (gas: 40076) +FeeQuoter_getTokenTransferCost:test_getTokenTransferCost_selfServeUsesDefaults_Success() (gas: 29359) FeeQuoter_getValidatedFee:test_DestinationChainNotEnabled_Revert() (gas: 18210) FeeQuoter_getValidatedFee:test_EmptyMessage_Success() (gas: 86123) -FeeQuoter_getValidatedFee:test_EnforceOutOfOrder_Revert() (gas: 54405) +FeeQuoter_getValidatedFee:test_EnforceOutOfOrder_Revert() (gas: 54411) FeeQuoter_getValidatedFee:test_HighGasMessage_Success() (gas: 242541) -FeeQuoter_getValidatedFee:test_InvalidEVMAddress_Revert() (gas: 22420) -FeeQuoter_getValidatedFee:test_MessageGasLimitTooHigh_Revert() (gas: 31833) +FeeQuoter_getValidatedFee:test_InvalidEVMAddress_Revert() (gas: 22426) +FeeQuoter_getValidatedFee:test_MessageGasLimitTooHigh_Revert() (gas: 31839) FeeQuoter_getValidatedFee:test_MessageTooLarge_Revert() (gas: 100163) -FeeQuoter_getValidatedFee:test_MessageWithDataAndTokenTransfer_Success() (gas: 148076) -FeeQuoter_getValidatedFee:test_NotAFeeToken_Revert() (gas: 21073) -FeeQuoter_getValidatedFee:test_SingleTokenMessage_Success() (gas: 117032) +FeeQuoter_getValidatedFee:test_MessageWithDataAndTokenTransfer_Success() (gas: 148172) +FeeQuoter_getValidatedFee:test_NotAFeeToken_Revert() (gas: 21079) +FeeQuoter_getValidatedFee:test_SingleTokenMessage_Success() (gas: 117080) FeeQuoter_getValidatedFee:test_TooManyTokens_Revert() (gas: 22562) FeeQuoter_getValidatedFee:test_ZeroDataAvailabilityMultiplier_Success() (gas: 64442) -FeeQuoter_getValidatedTokenPrice:test_GetValidatedTokenPriceFromFeedErc20Above18Decimals_Success() (gas: 2076322) -FeeQuoter_getValidatedTokenPrice:test_GetValidatedTokenPriceFromFeedErc20Below18Decimals_Success() (gas: 2076280) -FeeQuoter_getValidatedTokenPrice:test_GetValidatedTokenPriceFromFeedFeedAt0Decimals_Success() (gas: 2056399) -FeeQuoter_getValidatedTokenPrice:test_GetValidatedTokenPriceFromFeedFeedAt18Decimals_Success() (gas: 2076054) -FeeQuoter_getValidatedTokenPrice:test_GetValidatedTokenPriceFromFeedFlippedDecimals_Success() (gas: 2076258) -FeeQuoter_getValidatedTokenPrice:test_GetValidatedTokenPriceFromFeedMaxInt224Value_Success() (gas: 2076070) +FeeQuoter_getValidatedTokenPrice:test_GetValidatedTokenPriceFromFeedErc20Above18Decimals_Success() (gas: 2066317) +FeeQuoter_getValidatedTokenPrice:test_GetValidatedTokenPriceFromFeedErc20Below18Decimals_Success() (gas: 2066275) +FeeQuoter_getValidatedTokenPrice:test_GetValidatedTokenPriceFromFeedFeedAt0Decimals_Success() (gas: 2046394) +FeeQuoter_getValidatedTokenPrice:test_GetValidatedTokenPriceFromFeedFeedAt18Decimals_Success() (gas: 2066049) +FeeQuoter_getValidatedTokenPrice:test_GetValidatedTokenPriceFromFeedFlippedDecimals_Success() (gas: 2066253) +FeeQuoter_getValidatedTokenPrice:test_GetValidatedTokenPriceFromFeedMaxInt224Value_Success() (gas: 2066065) FeeQuoter_getValidatedTokenPrice:test_GetValidatedTokenPriceFromFeedOverStalenessPeriod_Success() (gas: 62001) FeeQuoter_getValidatedTokenPrice:test_GetValidatedTokenPriceFromFeed_Success() (gas: 61881) FeeQuoter_getValidatedTokenPrice:test_GetValidatedTokenPrice_Success() (gas: 61042) -FeeQuoter_getValidatedTokenPrice:test_OverflowFeedPrice_Revert() (gas: 2075757) +FeeQuoter_getValidatedTokenPrice:test_OverflowFeedPrice_Revert() (gas: 2065758) FeeQuoter_getValidatedTokenPrice:test_StaleFeeToken_Success() (gas: 61569) -FeeQuoter_getValidatedTokenPrice:test_TokenNotSupportedFeed_Revert() (gas: 109117) -FeeQuoter_getValidatedTokenPrice:test_TokenNotSupported_Revert() (gas: 13863) -FeeQuoter_getValidatedTokenPrice:test_UnderflowFeedPrice_Revert() (gas: 2074434) -FeeQuoter_onReport:test_OnReport_StaleUpdate_Revert() (gas: 43336) -FeeQuoter_onReport:test_onReport_InvalidForwarder_Reverts() (gas: 23306) -FeeQuoter_onReport:test_onReport_Success() (gas: 80582) -FeeQuoter_onReport:test_onReport_UnsupportedToken_Reverts() (gas: 26692) +FeeQuoter_getValidatedTokenPrice:test_TokenNotSupportedFeed_Revert() (gas: 109135) +FeeQuoter_getValidatedTokenPrice:test_TokenNotSupported_Revert() (gas: 13881) +FeeQuoter_getValidatedTokenPrice:test_UnderflowFeedPrice_Revert() (gas: 2064435) +FeeQuoter_onReport:test_OnReport_StaleUpdate_Revert() (gas: 43342) +FeeQuoter_onReport:test_onReport_InvalidForwarder_Reverts() (gas: 23312) +FeeQuoter_onReport:test_onReport_Success() (gas: 80588) +FeeQuoter_onReport:test_onReport_UnsupportedToken_Reverts() (gas: 26704) FeeQuoter_parseEVMExtraArgsFromBytes:test_EVMExtraArgsDefault_Success() (gas: 17191) FeeQuoter_parseEVMExtraArgsFromBytes:test_EVMExtraArgsEnforceOutOfOrder_Revert() (gas: 21302) FeeQuoter_parseEVMExtraArgsFromBytes:test_EVMExtraArgsGasLimitTooHigh_Revert() (gas: 18399) @@ -399,542 +399,542 @@ FeeQuoter_parseEVMExtraArgsFromBytes:test_EVMExtraArgsInvalidExtraArgsTag_Revert FeeQuoter_parseEVMExtraArgsFromBytes:test_EVMExtraArgsV1_Success() (gas: 18291) FeeQuoter_parseEVMExtraArgsFromBytes:test_EVMExtraArgsV2_Success() (gas: 18407) FeeQuoter_processMessageArgs:test_InvalidExtraArgs_Revert() (gas: 18339) -FeeQuoter_processMessageArgs:test_MalformedEVMExtraArgs_Revert() (gas: 18885) +FeeQuoter_processMessageArgs:test_MalformedEVMExtraArgs_Revert() (gas: 18891) FeeQuoter_processMessageArgs:test_MessageFeeTooHigh_Revert() (gas: 16404) -FeeQuoter_processMessageArgs:test_WitEVMExtraArgsV2_Success() (gas: 26277) +FeeQuoter_processMessageArgs:test_WitEVMExtraArgsV2_Success() (gas: 26295) FeeQuoter_processMessageArgs:test_WithConvertedTokenAmount_Success() (gas: 32443) -FeeQuoter_processMessageArgs:test_WithEVMExtraArgsV1_Success() (gas: 25889) -FeeQuoter_processMessageArgs:test_WithEmptyEVMExtraArgs_Success() (gas: 23704) +FeeQuoter_processMessageArgs:test_WithEVMExtraArgsV1_Success() (gas: 25901) +FeeQuoter_processMessageArgs:test_WithEmptyEVMExtraArgs_Success() (gas: 23716) FeeQuoter_processMessageArgs:test_WithLinkTokenAmount_Success() (gas: 17353) FeeQuoter_updatePrices:test_OnlyCallableByUpdater_Revert() (gas: 12114) FeeQuoter_updatePrices:test_OnlyGasPrice_Success() (gas: 23599) FeeQuoter_updatePrices:test_OnlyTokenPrice_Success() (gas: 30615) -FeeQuoter_updatePrices:test_UpdatableByAuthorizedCaller_Success() (gas: 76009) +FeeQuoter_updatePrices:test_UpdatableByAuthorizedCaller_Success() (gas: 76019) FeeQuoter_updatePrices:test_UpdateMultiplePrices_Success() (gas: 151345) FeeQuoter_updateTokenPriceFeeds:test_FeedNotUpdated() (gas: 50523) FeeQuoter_updateTokenPriceFeeds:test_FeedUnset_Success() (gas: 63574) -FeeQuoter_updateTokenPriceFeeds:test_FeedUpdatedByNonOwner_Revert() (gas: 19938) +FeeQuoter_updateTokenPriceFeeds:test_FeedUpdatedByNonOwner_Revert() (gas: 19944) FeeQuoter_updateTokenPriceFeeds:test_MultipleFeedUpdate_Success() (gas: 88920) FeeQuoter_updateTokenPriceFeeds:test_SingleFeedUpdate_Success() (gas: 50795) FeeQuoter_updateTokenPriceFeeds:test_ZeroFeeds_Success() (gas: 12296) -FeeQuoter_validateDestFamilyAddress:test_InvalidEVMAddressEncodePacked_Revert() (gas: 10622) -FeeQuoter_validateDestFamilyAddress:test_InvalidEVMAddressPrecompiles_Revert() (gas: 3967790) -FeeQuoter_validateDestFamilyAddress:test_InvalidEVMAddress_Revert() (gas: 10806) +FeeQuoter_validateDestFamilyAddress:test_InvalidEVMAddressEncodePacked_Revert() (gas: 10634) +FeeQuoter_validateDestFamilyAddress:test_InvalidEVMAddressPrecompiles_Revert() (gas: 3980078) +FeeQuoter_validateDestFamilyAddress:test_InvalidEVMAddress_Revert() (gas: 10818) FeeQuoter_validateDestFamilyAddress:test_ValidEVMAddress_Success() (gas: 6710) FeeQuoter_validateDestFamilyAddress:test_ValidNonEVMAddress_Success() (gas: 6484) -FeeQuoter_validatePoolReturnData:test_InvalidEVMAddressDestToken_Revert() (gas: 42769) -FeeQuoter_validatePoolReturnData:test_ProcessPoolReturnData_Success() (gas: 73306) -FeeQuoter_validatePoolReturnData:test_SourceTokenDataTooLarge_Revert() (gas: 107855) -FeeQuoter_validatePoolReturnData:test_TokenAmountArraysMismatching_Revert() (gas: 40106) -HybridUSDCTokenPoolMigrationTests:test_LockOrBurn_LocKReleaseMechanism_then_switchToPrimary_Success() (gas: 208384) -HybridUSDCTokenPoolMigrationTests:test_LockOrBurn_PrimaryMechanism_Success() (gas: 135502) +FeeQuoter_validatePoolReturnData:test_InvalidEVMAddressDestToken_Revert() (gas: 42781) +FeeQuoter_validatePoolReturnData:test_ProcessPoolReturnData_Success() (gas: 73330) +FeeQuoter_validatePoolReturnData:test_SourceTokenDataTooLarge_Revert() (gas: 107927) +FeeQuoter_validatePoolReturnData:test_TokenAmountArraysMismatching_Revert() (gas: 40112) +HybridUSDCTokenPoolMigrationTests:test_LockOrBurn_LocKReleaseMechanism_then_switchToPrimary_Success() (gas: 208394) +HybridUSDCTokenPoolMigrationTests:test_LockOrBurn_PrimaryMechanism_Success() (gas: 135507) HybridUSDCTokenPoolMigrationTests:test_LockOrBurn_WhileMigrationPause_Revert() (gas: 106651) -HybridUSDCTokenPoolMigrationTests:test_LockOrBurn_onLockReleaseMechanism_Success() (gas: 143944) -HybridUSDCTokenPoolMigrationTests:test_MintOrRelease_OnLockReleaseMechanism_Success() (gas: 230450) -HybridUSDCTokenPoolMigrationTests:test_MintOrRelease_OnLockReleaseMechanism_then_switchToPrimary_Success() (gas: 438517) -HybridUSDCTokenPoolMigrationTests:test_MintOrRelease_incomingMessageWithPrimaryMechanism() (gas: 270081) -HybridUSDCTokenPoolMigrationTests:test_burnLockedUSDC_invalidPermissions_Revert() (gas: 39130) +HybridUSDCTokenPoolMigrationTests:test_LockOrBurn_onLockReleaseMechanism_Success() (gas: 143950) +HybridUSDCTokenPoolMigrationTests:test_MintOrRelease_OnLockReleaseMechanism_Success() (gas: 230474) +HybridUSDCTokenPoolMigrationTests:test_MintOrRelease_OnLockReleaseMechanism_then_switchToPrimary_Success() (gas: 438559) +HybridUSDCTokenPoolMigrationTests:test_MintOrRelease_incomingMessageWithPrimaryMechanism() (gas: 270086) +HybridUSDCTokenPoolMigrationTests:test_burnLockedUSDC_invalidPermissions_Revert() (gas: 39154) HybridUSDCTokenPoolMigrationTests:test_cancelExistingCCTPMigrationProposal() (gas: 31181) HybridUSDCTokenPoolMigrationTests:test_cannotCancelANonExistentMigrationProposal() (gas: 12628) -HybridUSDCTokenPoolMigrationTests:test_cannotModifyLiquidityWithoutPermissions_Revert() (gas: 17158) -HybridUSDCTokenPoolMigrationTests:test_lockOrBurn_then_BurnInCCTPMigration_Success() (gas: 252682) -HybridUSDCTokenPoolMigrationTests:test_transferLiquidity_Success() (gas: 157130) -HybridUSDCTokenPoolMigrationTests:test_withdrawLiquidity_Success() (gas: 140828) -HybridUSDCTokenPoolTests:test_LockOrBurn_LocKReleaseMechanism_then_switchToPrimary_Success() (gas: 208164) -HybridUSDCTokenPoolTests:test_LockOrBurn_PrimaryMechanism_Success() (gas: 135396) +HybridUSDCTokenPoolMigrationTests:test_cannotModifyLiquidityWithoutPermissions_Revert() (gas: 17176) +HybridUSDCTokenPoolMigrationTests:test_lockOrBurn_then_BurnInCCTPMigration_Success() (gas: 252706) +HybridUSDCTokenPoolMigrationTests:test_transferLiquidity_Success() (gas: 157154) +HybridUSDCTokenPoolMigrationTests:test_withdrawLiquidity_Success() (gas: 140852) +HybridUSDCTokenPoolTests:test_LockOrBurn_LocKReleaseMechanism_then_switchToPrimary_Success() (gas: 208174) +HybridUSDCTokenPoolTests:test_LockOrBurn_PrimaryMechanism_Success() (gas: 135401) HybridUSDCTokenPoolTests:test_LockOrBurn_WhileMigrationPause_Revert() (gas: 106628) -HybridUSDCTokenPoolTests:test_LockOrBurn_onLockReleaseMechanism_Success() (gas: 143865) -HybridUSDCTokenPoolTests:test_MintOrRelease_OnLockReleaseMechanism_Success() (gas: 230383) -HybridUSDCTokenPoolTests:test_MintOrRelease_OnLockReleaseMechanism_then_switchToPrimary_Success() (gas: 438318) -HybridUSDCTokenPoolTests:test_MintOrRelease_incomingMessageWithPrimaryMechanism() (gas: 270011) -HybridUSDCTokenPoolTests:test_withdrawLiquidity_Success() (gas: 140783) -LockReleaseTokenPoolAndProxy_setRebalancer:test_SetRebalancer_Revert() (gas: 10977) -LockReleaseTokenPoolAndProxy_setRebalancer:test_SetRebalancer_Success() (gas: 17998) -LockReleaseTokenPoolPoolAndProxy_canAcceptLiquidity:test_CanAcceptLiquidity_Success() (gas: 3315195) -LockReleaseTokenPoolPoolAndProxy_provideLiquidity:test_LiquidityNotAccepted_Revert() (gas: 3311601) -LockReleaseTokenPoolPoolAndProxy_provideLiquidity:test_Unauthorized_Revert() (gas: 11405) -LockReleaseTokenPoolPoolAndProxy_supportsInterface:test_SupportsInterface_Success() (gas: 9977) -LockReleaseTokenPoolPoolAndProxy_withdrawalLiquidity:test_InsufficientLiquidity_Revert() (gas: 60060) +HybridUSDCTokenPoolTests:test_LockOrBurn_onLockReleaseMechanism_Success() (gas: 143871) +HybridUSDCTokenPoolTests:test_MintOrRelease_OnLockReleaseMechanism_Success() (gas: 230419) +HybridUSDCTokenPoolTests:test_MintOrRelease_OnLockReleaseMechanism_then_switchToPrimary_Success() (gas: 438372) +HybridUSDCTokenPoolTests:test_MintOrRelease_incomingMessageWithPrimaryMechanism() (gas: 270016) +HybridUSDCTokenPoolTests:test_withdrawLiquidity_Success() (gas: 140825) +LockReleaseTokenPoolAndProxy_setRebalancer:test_SetRebalancer_Revert() (gas: 10983) +LockReleaseTokenPoolAndProxy_setRebalancer:test_SetRebalancer_Success() (gas: 18010) +LockReleaseTokenPoolPoolAndProxy_canAcceptLiquidity:test_CanAcceptLiquidity_Success() (gas: 3195288) +LockReleaseTokenPoolPoolAndProxy_provideLiquidity:test_LiquidityNotAccepted_Revert() (gas: 3191694) +LockReleaseTokenPoolPoolAndProxy_provideLiquidity:test_Unauthorized_Revert() (gas: 11417) +LockReleaseTokenPoolPoolAndProxy_supportsInterface:test_SupportsInterface_Success() (gas: 10124) +LockReleaseTokenPoolPoolAndProxy_withdrawalLiquidity:test_InsufficientLiquidity_Revert() (gas: 60081) LockReleaseTokenPoolPoolAndProxy_withdrawalLiquidity:test_Unauthorized_Revert() (gas: 11386) -LockReleaseTokenPool_canAcceptLiquidity:test_CanAcceptLiquidity_Success() (gas: 3071906) -LockReleaseTokenPool_lockOrBurn:test_LockOrBurnWithAllowList_Revert() (gas: 29960) -LockReleaseTokenPool_lockOrBurn:test_LockOrBurnWithAllowList_Success() (gas: 79868) -LockReleaseTokenPool_lockOrBurn:test_PoolBurnRevertNotHealthy_Revert() (gas: 59479) -LockReleaseTokenPool_provideLiquidity:test_LiquidityNotAccepted_Revert() (gas: 3068356) -LockReleaseTokenPool_provideLiquidity:test_Unauthorized_Revert() (gas: 11405) -LockReleaseTokenPool_releaseOrMint:test_ChainNotAllowed_Revert() (gas: 72666) -LockReleaseTokenPool_releaseOrMint:test_PoolMintNotHealthy_Revert() (gas: 56211) -LockReleaseTokenPool_releaseOrMint:test_ReleaseOrMint_Success() (gas: 225296) -LockReleaseTokenPool_setRebalancer:test_SetRebalancer_Revert() (gas: 10999) +LockReleaseTokenPool_canAcceptLiquidity:test_CanAcceptLiquidity_Success() (gas: 2982884) +LockReleaseTokenPool_lockOrBurn:test_LockOrBurnWithAllowList_Revert() (gas: 29972) +LockReleaseTokenPool_lockOrBurn:test_LockOrBurnWithAllowList_Success() (gas: 79880) +LockReleaseTokenPool_lockOrBurn:test_PoolBurnRevertNotHealthy_Revert() (gas: 59491) +LockReleaseTokenPool_provideLiquidity:test_LiquidityNotAccepted_Revert() (gas: 2979334) +LockReleaseTokenPool_provideLiquidity:test_Unauthorized_Revert() (gas: 11417) +LockReleaseTokenPool_releaseOrMint:test_ChainNotAllowed_Revert() (gas: 72680) +LockReleaseTokenPool_releaseOrMint:test_PoolMintNotHealthy_Revert() (gas: 56223) +LockReleaseTokenPool_releaseOrMint:test_ReleaseOrMint_Success() (gas: 225332) +LockReleaseTokenPool_setRebalancer:test_SetRebalancer_Revert() (gas: 11005) LockReleaseTokenPool_setRebalancer:test_SetRebalancer_Success() (gas: 18064) -LockReleaseTokenPool_supportsInterface:test_SupportsInterface_Success() (gas: 9977) -LockReleaseTokenPool_transferLiquidity:test_transferLiquidity_Success() (gas: 83177) +LockReleaseTokenPool_supportsInterface:test_SupportsInterface_Success() (gas: 10124) +LockReleaseTokenPool_transferLiquidity:test_transferLiquidity_Success() (gas: 83192) LockReleaseTokenPool_transferLiquidity:test_transferLiquidity_transferTooMuch_Revert() (gas: 55899) -LockReleaseTokenPool_withdrawalLiquidity:test_InsufficientLiquidity_Revert() (gas: 60060) +LockReleaseTokenPool_withdrawalLiquidity:test_InsufficientLiquidity_Revert() (gas: 60081) LockReleaseTokenPool_withdrawalLiquidity:test_Unauthorized_Revert() (gas: 11386) -LockRelease_setRateLimitAdmin:test_SetRateLimitAdmin_Revert() (gas: 11036) -LockRelease_setRateLimitAdmin:test_SetRateLimitAdmin_Success() (gas: 35030) -MerkleMultiProofTest:test_CVE_2023_34459() (gas: 5454) -MerkleMultiProofTest:test_EmptyLeaf_Revert() (gas: 3555) +LockRelease_setRateLimitAdmin:test_SetRateLimitAdmin_Revert() (gas: 11048) +LockRelease_setRateLimitAdmin:test_SetRateLimitAdmin_Success() (gas: 35036) +MerkleMultiProofTest:test_CVE_2023_34459() (gas: 5460) +MerkleMultiProofTest:test_EmptyLeaf_Revert() (gas: 3573) MerkleMultiProofTest:test_MerkleRoot256() (gas: 394879) MerkleMultiProofTest:test_MerkleRootSingleLeaf_Success() (gas: 3649) MerkleMultiProofTest:test_SpecSync_gas() (gas: 34123) -MockRouterTest:test_ccipSendWithInsufficientNativeTokens_Revert() (gas: 34019) -MockRouterTest:test_ccipSendWithInvalidMsgValue_Revert() (gas: 60812) -MockRouterTest:test_ccipSendWithLinkFeeTokenAndValidMsgValue_Success() (gas: 126480) -MockRouterTest:test_ccipSendWithLinkFeeTokenbutInsufficientAllowance_Revert() (gas: 63419) +MockRouterTest:test_ccipSendWithInsufficientNativeTokens_Revert() (gas: 34025) +MockRouterTest:test_ccipSendWithInvalidMsgValue_Revert() (gas: 60830) +MockRouterTest:test_ccipSendWithLinkFeeTokenAndValidMsgValue_Success() (gas: 126492) +MockRouterTest:test_ccipSendWithLinkFeeTokenbutInsufficientAllowance_Revert() (gas: 63431) MockRouterTest:test_ccipSendWithSufficientNativeFeeTokens_Success() (gas: 43952) MultiAggregateRateLimiter_applyRateLimiterConfigUpdates:test_MultipleConfigsBothLanes_Success() (gas: 132457) MultiAggregateRateLimiter_applyRateLimiterConfigUpdates:test_MultipleConfigs_Success() (gas: 313023) -MultiAggregateRateLimiter_applyRateLimiterConfigUpdates:test_OnlyCallableByOwner_Revert() (gas: 17750) +MultiAggregateRateLimiter_applyRateLimiterConfigUpdates:test_OnlyCallableByOwner_Revert() (gas: 17756) MultiAggregateRateLimiter_applyRateLimiterConfigUpdates:test_SingleConfigOutbound_Success() (gas: 76030) MultiAggregateRateLimiter_applyRateLimiterConfigUpdates:test_SingleConfig_Success() (gas: 75946) MultiAggregateRateLimiter_applyRateLimiterConfigUpdates:test_UpdateExistingConfigWithNoDifference_Success() (gas: 38436) MultiAggregateRateLimiter_applyRateLimiterConfigUpdates:test_UpdateExistingConfig_Success() (gas: 53473) MultiAggregateRateLimiter_applyRateLimiterConfigUpdates:test_ZeroChainSelector_Revert() (gas: 17046) MultiAggregateRateLimiter_applyRateLimiterConfigUpdates:test_ZeroConfigs_Success() (gas: 12361) -MultiAggregateRateLimiter_constructor:test_ConstructorNoAuthorizedCallers_Success() (gas: 2050112) -MultiAggregateRateLimiter_constructor:test_Constructor_Success() (gas: 2166413) +MultiAggregateRateLimiter_constructor:test_ConstructorNoAuthorizedCallers_Success() (gas: 2050118) +MultiAggregateRateLimiter_constructor:test_Constructor_Success() (gas: 2166419) MultiAggregateRateLimiter_getTokenBucket:test_GetTokenBucket_Success() (gas: 30404) -MultiAggregateRateLimiter_getTokenBucket:test_Refill_Success() (gas: 47673) +MultiAggregateRateLimiter_getTokenBucket:test_Refill_Success() (gas: 47679) MultiAggregateRateLimiter_getTokenBucket:test_TimeUnderflow_Revert() (gas: 15863) -MultiAggregateRateLimiter_getTokenValue:test_GetTokenValue_Success() (gas: 19646) -MultiAggregateRateLimiter_getTokenValue:test_NoTokenPrice_Reverts() (gas: 21231) -MultiAggregateRateLimiter_onInboundMessage:test_ValidateMessageFromUnauthorizedCaller_Revert() (gas: 14533) -MultiAggregateRateLimiter_onInboundMessage:test_ValidateMessageWithDifferentTokensOnDifferentChains_Success() (gas: 214200) -MultiAggregateRateLimiter_onInboundMessage:test_ValidateMessageWithDisabledRateLimitToken_Success() (gas: 60457) -MultiAggregateRateLimiter_onInboundMessage:test_ValidateMessageWithNoTokens_Success() (gas: 17599) -MultiAggregateRateLimiter_onInboundMessage:test_ValidateMessageWithRateLimitDisabled_Success() (gas: 45006) -MultiAggregateRateLimiter_onInboundMessage:test_ValidateMessageWithRateLimitExceeded_Revert() (gas: 50540) -MultiAggregateRateLimiter_onInboundMessage:test_ValidateMessageWithRateLimitReset_Success() (gas: 78784) -MultiAggregateRateLimiter_onInboundMessage:test_ValidateMessageWithTokensOnDifferentChains_Success() (gas: 312459) -MultiAggregateRateLimiter_onInboundMessage:test_ValidateMessageWithTokens_Success() (gas: 54732) +MultiAggregateRateLimiter_getTokenValue:test_GetTokenValue_Success() (gas: 19652) +MultiAggregateRateLimiter_getTokenValue:test_NoTokenPrice_Reverts() (gas: 21237) +MultiAggregateRateLimiter_onInboundMessage:test_ValidateMessageFromUnauthorizedCaller_Revert() (gas: 14539) +MultiAggregateRateLimiter_onInboundMessage:test_ValidateMessageWithDifferentTokensOnDifferentChains_Success() (gas: 214278) +MultiAggregateRateLimiter_onInboundMessage:test_ValidateMessageWithDisabledRateLimitToken_Success() (gas: 60480) +MultiAggregateRateLimiter_onInboundMessage:test_ValidateMessageWithNoTokens_Success() (gas: 17605) +MultiAggregateRateLimiter_onInboundMessage:test_ValidateMessageWithRateLimitDisabled_Success() (gas: 45057) +MultiAggregateRateLimiter_onInboundMessage:test_ValidateMessageWithRateLimitExceeded_Revert() (gas: 50558) +MultiAggregateRateLimiter_onInboundMessage:test_ValidateMessageWithRateLimitReset_Success() (gas: 78910) +MultiAggregateRateLimiter_onInboundMessage:test_ValidateMessageWithTokensOnDifferentChains_Success() (gas: 312537) +MultiAggregateRateLimiter_onInboundMessage:test_ValidateMessageWithTokens_Success() (gas: 54755) MultiAggregateRateLimiter_onOutboundMessage:test_RateLimitValueDifferentLanes_Success() (gas: 1073667462) MultiAggregateRateLimiter_onOutboundMessage:test_ValidateMessageWithNoTokens_Success() (gas: 19158) MultiAggregateRateLimiter_onOutboundMessage:test_onOutboundMessage_ValidateMessageFromUnauthorizedCaller_Revert() (gas: 15829) MultiAggregateRateLimiter_onOutboundMessage:test_onOutboundMessage_ValidateMessageWithDifferentTokensOnDifferentChains_Success() (gas: 214044) MultiAggregateRateLimiter_onOutboundMessage:test_onOutboundMessage_ValidateMessageWithDisabledRateLimitToken_Success() (gas: 62240) -MultiAggregateRateLimiter_onOutboundMessage:test_onOutboundMessage_ValidateMessageWithRateLimitDisabled_Success() (gas: 46818) +MultiAggregateRateLimiter_onOutboundMessage:test_onOutboundMessage_ValidateMessageWithRateLimitDisabled_Success() (gas: 46824) MultiAggregateRateLimiter_onOutboundMessage:test_onOutboundMessage_ValidateMessageWithRateLimitExceeded_Revert() (gas: 52361) -MultiAggregateRateLimiter_onOutboundMessage:test_onOutboundMessage_ValidateMessageWithRateLimitReset_Success() (gas: 80041) +MultiAggregateRateLimiter_onOutboundMessage:test_onOutboundMessage_ValidateMessageWithRateLimitReset_Success() (gas: 80053) MultiAggregateRateLimiter_onOutboundMessage:test_onOutboundMessage_ValidateMessageWithTokensOnDifferentChains_Success() (gas: 312529) MultiAggregateRateLimiter_onOutboundMessage:test_onOutboundMessage_ValidateMessageWithTokens_Success() (gas: 56537) -MultiAggregateRateLimiter_setFeeQuoter:test_OnlyOwner_Revert() (gas: 11325) +MultiAggregateRateLimiter_setFeeQuoter:test_OnlyOwner_Revert() (gas: 11331) MultiAggregateRateLimiter_setFeeQuoter:test_Owner_Success() (gas: 19072) MultiAggregateRateLimiter_setFeeQuoter:test_ZeroAddress_Revert() (gas: 10597) -MultiAggregateRateLimiter_updateRateLimitTokens:test_NonOwner_Revert() (gas: 18800) +MultiAggregateRateLimiter_updateRateLimitTokens:test_NonOwner_Revert() (gas: 18806) MultiAggregateRateLimiter_updateRateLimitTokens:test_UpdateRateLimitTokensMultipleChains_Success() (gas: 279944) MultiAggregateRateLimiter_updateRateLimitTokens:test_UpdateRateLimitTokensSingleChain_Success() (gas: 254495) -MultiAggregateRateLimiter_updateRateLimitTokens:test_UpdateRateLimitTokens_AddsAndRemoves_Success() (gas: 204465) -MultiAggregateRateLimiter_updateRateLimitTokens:test_UpdateRateLimitTokens_RemoveNonExistentToken_Success() (gas: 28703) +MultiAggregateRateLimiter_updateRateLimitTokens:test_UpdateRateLimitTokens_AddsAndRemoves_Success() (gas: 204470) +MultiAggregateRateLimiter_updateRateLimitTokens:test_UpdateRateLimitTokens_RemoveNonExistentToken_Success() (gas: 28709) MultiAggregateRateLimiter_updateRateLimitTokens:test_ZeroDestToken_Revert() (gas: 18279) MultiAggregateRateLimiter_updateRateLimitTokens:test_ZeroSourceToken_Revert() (gas: 18208) MultiOCR3Base_setOCR3Configs:test_FMustBePositive_Revert() (gas: 59255) -MultiOCR3Base_setOCR3Configs:test_FTooHigh_Revert() (gas: 43629) -MultiOCR3Base_setOCR3Configs:test_RepeatSignerAddress_Revert() (gas: 283636) -MultiOCR3Base_setOCR3Configs:test_RepeatTransmitterAddress_Revert() (gas: 422261) -MultiOCR3Base_setOCR3Configs:test_SetConfigIgnoreSigners_Success() (gas: 511281) -MultiOCR3Base_setOCR3Configs:test_SetConfigWithSigners_Success() (gas: 828440) -MultiOCR3Base_setOCR3Configs:test_SetConfigWithoutSigners_Success() (gas: 456886) +MultiOCR3Base_setOCR3Configs:test_FTooHigh_Revert() (gas: 43632) +MultiOCR3Base_setOCR3Configs:test_RepeatSignerAddress_Revert() (gas: 283639) +MultiOCR3Base_setOCR3Configs:test_RepeatTransmitterAddress_Revert() (gas: 422264) +MultiOCR3Base_setOCR3Configs:test_SetConfigIgnoreSigners_Success() (gas: 511308) +MultiOCR3Base_setOCR3Configs:test_SetConfigWithSigners_Success() (gas: 828467) +MultiOCR3Base_setOCR3Configs:test_SetConfigWithoutSigners_Success() (gas: 456913) MultiOCR3Base_setOCR3Configs:test_SetConfigsZeroInput_Success() (gas: 12382) -MultiOCR3Base_setOCR3Configs:test_SetMultipleConfigs_Success() (gas: 2140159) -MultiOCR3Base_setOCR3Configs:test_SignerCannotBeZeroAddress_Revert() (gas: 141717) -MultiOCR3Base_setOCR3Configs:test_StaticConfigChange_Revert() (gas: 807340) -MultiOCR3Base_setOCR3Configs:test_TooManySigners_Revert() (gas: 158799) -MultiOCR3Base_setOCR3Configs:test_TooManyTransmitters_Revert() (gas: 112293) -MultiOCR3Base_setOCR3Configs:test_TransmitterCannotBeZeroAddress_Revert() (gas: 254083) -MultiOCR3Base_setOCR3Configs:test_UpdateConfigSigners_Success() (gas: 860224) -MultiOCR3Base_setOCR3Configs:test_UpdateConfigTransmittersWithoutSigners_Success() (gas: 475193) +MultiOCR3Base_setOCR3Configs:test_SetMultipleConfigs_Success() (gas: 2140246) +MultiOCR3Base_setOCR3Configs:test_SignerCannotBeZeroAddress_Revert() (gas: 141720) +MultiOCR3Base_setOCR3Configs:test_StaticConfigChange_Revert() (gas: 807349) +MultiOCR3Base_setOCR3Configs:test_TooManySigners_Revert() (gas: 158802) +MultiOCR3Base_setOCR3Configs:test_TooManyTransmitters_Revert() (gas: 112296) +MultiOCR3Base_setOCR3Configs:test_TransmitterCannotBeZeroAddress_Revert() (gas: 254086) +MultiOCR3Base_setOCR3Configs:test_UpdateConfigSigners_Success() (gas: 860245) +MultiOCR3Base_setOCR3Configs:test_UpdateConfigTransmittersWithoutSigners_Success() (gas: 475215) MultiOCR3Base_transmit:test_ConfigDigestMismatch_Revert() (gas: 42845) MultiOCR3Base_transmit:test_ForkedChain_Revert() (gas: 48450) -MultiOCR3Base_transmit:test_InsufficientSignatures_Revert() (gas: 76928) +MultiOCR3Base_transmit:test_InsufficientSignatures_Revert() (gas: 76934) MultiOCR3Base_transmit:test_NonUniqueSignature_Revert() (gas: 65768) MultiOCR3Base_transmit:test_SignatureOutOfRegistration_Revert() (gas: 33417) -MultiOCR3Base_transmit:test_TooManySignatures_Revert() (gas: 79519) +MultiOCR3Base_transmit:test_TooManySignatures_Revert() (gas: 79525) MultiOCR3Base_transmit:test_TransmitSigners_gas_Success() (gas: 33631) -MultiOCR3Base_transmit:test_TransmitWithExtraCalldataArgs_Revert() (gas: 47122) -MultiOCR3Base_transmit:test_TransmitWithLessCalldataArgs_Revert() (gas: 25690) +MultiOCR3Base_transmit:test_TransmitWithExtraCalldataArgs_Revert() (gas: 47128) +MultiOCR3Base_transmit:test_TransmitWithLessCalldataArgs_Revert() (gas: 25696) MultiOCR3Base_transmit:test_TransmitWithoutSignatureVerification_gas_Success() (gas: 18712) -MultiOCR3Base_transmit:test_UnAuthorizedTransmitter_Revert() (gas: 24189) +MultiOCR3Base_transmit:test_UnAuthorizedTransmitter_Revert() (gas: 24195) MultiOCR3Base_transmit:test_UnauthorizedSigner_Revert() (gas: 61131) -MultiOCR3Base_transmit:test_UnconfiguredPlugin_Revert() (gas: 39888) -MultiOCR3Base_transmit:test_ZeroSignatures_Revert() (gas: 32971) -MultiOnRampTokenPoolReentrancy:test_OnRampTokenPoolReentrancy_Success() (gas: 411709) -MultiRampsE2E:test_E2E_3MessagesMMultiOffRampSuccess_gas() (gas: 1529863) -NonceManager_NonceIncrementation:test_getIncrementedOutboundNonce_Success() (gas: 37916) +MultiOCR3Base_transmit:test_UnconfiguredPlugin_Revert() (gas: 39894) +MultiOCR3Base_transmit:test_ZeroSignatures_Revert() (gas: 32977) +MultiOnRampTokenPoolReentrancy:test_OnRampTokenPoolReentrancy_Success() (gas: 411751) +MultiRampsE2E:test_E2E_3MessagesMMultiOffRampSuccess_gas() (gas: 1539109) +NonceManager_NonceIncrementation:test_getIncrementedOutboundNonce_Success() (gas: 37922) NonceManager_NonceIncrementation:test_incrementInboundNonce_Skip() (gas: 23709) NonceManager_NonceIncrementation:test_incrementInboundNonce_Success() (gas: 38799) -NonceManager_NonceIncrementation:test_incrementNoncesInboundAndOutbound_Success() (gas: 71898) -NonceManager_OffRampUpgrade:test_NoPrevOffRampForChain_Success() (gas: 259965) -NonceManager_OffRampUpgrade:test_UpgradedNonceNewSenderStartsAtZero_Success() (gas: 264107) -NonceManager_OffRampUpgrade:test_UpgradedNonceStartsAtV1Nonce_Success() (gas: 326950) -NonceManager_OffRampUpgrade:test_UpgradedOffRampNonceSkipsIfMsgInFlight_Success() (gas: 299064) -NonceManager_OffRampUpgrade:test_UpgradedSenderNoncesReadsPreviousRampTransitive_Success() (gas: 244871) -NonceManager_OffRampUpgrade:test_UpgradedSenderNoncesReadsPreviousRamp_Success() (gas: 232986) -NonceManager_OffRampUpgrade:test_Upgraded_Success() (gas: 152870) -NonceManager_OnRampUpgrade:test_UpgradeNonceNewSenderStartsAtZero_Success() (gas: 168358) -NonceManager_OnRampUpgrade:test_UpgradeNonceStartsAtV1Nonce_Success() (gas: 220193) -NonceManager_OnRampUpgrade:test_UpgradeSenderNoncesReadsPreviousRamp_Success() (gas: 125157) +NonceManager_NonceIncrementation:test_incrementNoncesInboundAndOutbound_Success() (gas: 71904) +NonceManager_OffRampUpgrade:test_NoPrevOffRampForChain_Success() (gas: 261687) +NonceManager_OffRampUpgrade:test_UpgradedNonceNewSenderStartsAtZero_Success() (gas: 265805) +NonceManager_OffRampUpgrade:test_UpgradedNonceStartsAtV1Nonce_Success() (gas: 330322) +NonceManager_OffRampUpgrade:test_UpgradedOffRampNonceSkipsIfMsgInFlight_Success() (gas: 301596) +NonceManager_OffRampUpgrade:test_UpgradedSenderNoncesReadsPreviousRampTransitive_Success() (gas: 245579) +NonceManager_OffRampUpgrade:test_UpgradedSenderNoncesReadsPreviousRamp_Success() (gas: 233670) +NonceManager_OffRampUpgrade:test_Upgraded_Success() (gas: 154364) +NonceManager_OnRampUpgrade:test_UpgradeNonceNewSenderStartsAtZero_Success() (gas: 168463) +NonceManager_OnRampUpgrade:test_UpgradeNonceStartsAtV1Nonce_Success() (gas: 220298) +NonceManager_OnRampUpgrade:test_UpgradeSenderNoncesReadsPreviousRamp_Success() (gas: 125472) NonceManager_OnRampUpgrade:test_Upgrade_Success() (gas: 107566) -NonceManager_applyPreviousRampsUpdates:test_MultipleRampsUpdates() (gas: 122955) -NonceManager_applyPreviousRampsUpdates:test_PreviousRampAlreadySetOffRamp_Revert() (gas: 42965) -NonceManager_applyPreviousRampsUpdates:test_PreviousRampAlreadySetOnRampAndOffRamp_Revert() (gas: 64288) -NonceManager_applyPreviousRampsUpdates:test_PreviousRampAlreadySetOnRamp_Revert() (gas: 42829) -NonceManager_applyPreviousRampsUpdates:test_SingleRampUpdate() (gas: 66576) +NonceManager_applyPreviousRampsUpdates:test_MultipleRampsUpdates() (gas: 122961) +NonceManager_applyPreviousRampsUpdates:test_PreviousRampAlreadySetOffRamp_Revert() (gas: 42983) +NonceManager_applyPreviousRampsUpdates:test_PreviousRampAlreadySetOnRampAndOffRamp_Revert() (gas: 64312) +NonceManager_applyPreviousRampsUpdates:test_PreviousRampAlreadySetOnRamp_Revert() (gas: 42847) +NonceManager_applyPreviousRampsUpdates:test_SingleRampUpdate() (gas: 66594) NonceManager_applyPreviousRampsUpdates:test_ZeroInput() (gas: 12025) NonceManager_typeAndVersion:test_typeAndVersion() (gas: 9699) -OCR2BaseNoChecks_setOCR2Config:test_FMustBePositive_Revert() (gas: 12183) -OCR2BaseNoChecks_setOCR2Config:test_RepeatAddress_Revert() (gas: 42404) -OCR2BaseNoChecks_setOCR2Config:test_SetConfigSuccess_gas() (gas: 84585) -OCR2BaseNoChecks_setOCR2Config:test_TooManyTransmitter_Revert() (gas: 38150) +OCR2BaseNoChecks_setOCR2Config:test_FMustBePositive_Revert() (gas: 12195) +OCR2BaseNoChecks_setOCR2Config:test_RepeatAddress_Revert() (gas: 42416) +OCR2BaseNoChecks_setOCR2Config:test_SetConfigSuccess_gas() (gas: 84590) +OCR2BaseNoChecks_setOCR2Config:test_TooManyTransmitter_Revert() (gas: 38162) OCR2BaseNoChecks_setOCR2Config:test_TransmitterCannotBeZeroAddress_Revert() (gas: 24290) -OCR2BaseNoChecks_transmit:test_ConfigDigestMismatch_Revert() (gas: 17469) -OCR2BaseNoChecks_transmit:test_ForkedChain_Revert() (gas: 26762) +OCR2BaseNoChecks_transmit:test_ConfigDigestMismatch_Revert() (gas: 17475) +OCR2BaseNoChecks_transmit:test_ForkedChain_Revert() (gas: 26768) OCR2BaseNoChecks_transmit:test_TransmitSuccess_gas() (gas: 27499) OCR2BaseNoChecks_transmit:test_UnAuthorizedTransmitter_Revert() (gas: 21317) OCR2Base_setOCR2Config:test_FMustBePositive_Revert() (gas: 12201) OCR2Base_setOCR2Config:test_FTooHigh_Revert() (gas: 12357) OCR2Base_setOCR2Config:test_OracleOutOfRegister_Revert() (gas: 14904) OCR2Base_setOCR2Config:test_RepeatAddress_Revert() (gas: 45454) -OCR2Base_setOCR2Config:test_SetConfigSuccess_gas() (gas: 155211) -OCR2Base_setOCR2Config:test_SingerCannotBeZeroAddress_Revert() (gas: 24407) +OCR2Base_setOCR2Config:test_SetConfigSuccess_gas() (gas: 155216) +OCR2Base_setOCR2Config:test_SingerCannotBeZeroAddress_Revert() (gas: 24413) OCR2Base_setOCR2Config:test_TooManySigners_Revert() (gas: 20520) -OCR2Base_setOCR2Config:test_TransmitterCannotBeZeroAddress_Revert() (gas: 47298) -OCR2Base_transmit:test_ConfigDigestMismatch_Revert() (gas: 19638) -OCR2Base_transmit:test_ForkedChain_Revert() (gas: 37713) +OCR2Base_setOCR2Config:test_TransmitterCannotBeZeroAddress_Revert() (gas: 47304) +OCR2Base_transmit:test_ConfigDigestMismatch_Revert() (gas: 19644) +OCR2Base_transmit:test_ForkedChain_Revert() (gas: 37719) OCR2Base_transmit:test_NonUniqueSignature_Revert() (gas: 55324) OCR2Base_transmit:test_SignatureOutOfRegistration_Revert() (gas: 20977) OCR2Base_transmit:test_Transmit2SignersSuccess_gas() (gas: 51689) OCR2Base_transmit:test_UnAuthorizedTransmitter_Revert() (gas: 23499) OCR2Base_transmit:test_UnauthorizedSigner_Revert() (gas: 39695) OCR2Base_transmit:test_WrongNumberOfSignatures_Revert() (gas: 20572) -OffRamp_afterOC3ConfigSet:test_afterOCR3ConfigSet_SignatureVerificationDisabled_Revert() (gas: 5883366) -OffRamp_applySourceChainConfigUpdates:test_AddMultipleChains_Success() (gas: 468008) -OffRamp_applySourceChainConfigUpdates:test_AddNewChain_Success() (gas: 99183) -OffRamp_applySourceChainConfigUpdates:test_ApplyZeroUpdates_Success() (gas: 12392) -OffRamp_applySourceChainConfigUpdates:test_ReplaceExistingChainOnRamp_Success() (gas: 101102) -OffRamp_applySourceChainConfigUpdates:test_ReplaceExistingChain_Success() (gas: 110477) -OffRamp_applySourceChainConfigUpdates:test_RouterAddress_Revert() (gas: 13278) -OffRamp_applySourceChainConfigUpdates:test_ZeroOnRampAddress_Revert() (gas: 72310) -OffRamp_applySourceChainConfigUpdates:test_ZeroSourceChainSelector_Revert() (gas: 15344) -OffRamp_batchExecute:test_MultipleReportsDifferentChainsSkipCursedChain_Success() (gas: 176901) -OffRamp_batchExecute:test_MultipleReportsDifferentChains_Success() (gas: 332739) -OffRamp_batchExecute:test_MultipleReportsSameChain_Success() (gas: 276107) -OffRamp_batchExecute:test_MultipleReportsSkipDuplicate_Success() (gas: 168045) -OffRamp_batchExecute:test_OutOfBoundsGasLimitsAccess_Revert() (gas: 187572) -OffRamp_batchExecute:test_SingleReport_Success() (gas: 155963) -OffRamp_batchExecute:test_Unhealthy_Success() (gas: 573311) -OffRamp_batchExecute:test_ZeroReports_Revert() (gas: 10440) -OffRamp_ccipReceive:test_Reverts() (gas: 15705) -OffRamp_commit:test_FailedRMNVerification_Reverts() (gas: 63388) -OffRamp_commit:test_InvalidIntervalMinLargerThanMax_Revert() (gas: 67501) -OffRamp_commit:test_InvalidInterval_Revert() (gas: 63782) -OffRamp_commit:test_InvalidOnRamp_Revert() (gas: 91933) -OffRamp_commit:test_InvalidRootRevert() (gas: 62855) -OffRamp_commit:test_NoConfigWithOtherConfigPresent_Revert() (gas: 6487509) -OffRamp_commit:test_NoConfig_Revert() (gas: 6071300) -OffRamp_commit:test_OnlyGasPriceUpdates_Success() (gas: 113421) -OffRamp_commit:test_OnlyPriceUpdateStaleReport_Revert() (gas: 121466) -OffRamp_commit:test_OnlyTokenPriceUpdates_Success() (gas: 113398) -OffRamp_commit:test_PriceSequenceNumberCleared_Success() (gas: 355496) -OffRamp_commit:test_ReportAndPriceUpdate_Success() (gas: 165270) -OffRamp_commit:test_ReportOnlyRootSuccess_gas() (gas: 140426) -OffRamp_commit:test_RootAlreadyCommitted_Revert() (gas: 146378) -OffRamp_commit:test_SourceChainNotEnabled_Revert() (gas: 59142) -OffRamp_commit:test_StaleReportWithRoot_Success() (gas: 237268) -OffRamp_commit:test_UnauthorizedTransmitter_Revert() (gas: 125741) -OffRamp_commit:test_Unhealthy_Revert() (gas: 57871) -OffRamp_commit:test_ValidPriceUpdateThenStaleReportWithRoot_Success() (gas: 210618) -OffRamp_commit:test_ZeroEpochAndRound_Revert() (gas: 51264) -OffRamp_constructor:test_Constructor_Success() (gas: 6072607) -OffRamp_constructor:test_SourceChainSelector_Revert() (gas: 136937) -OffRamp_constructor:test_ZeroChainSelector_Revert() (gas: 103665) -OffRamp_constructor:test_ZeroNonceManager_Revert() (gas: 101542) -OffRamp_constructor:test_ZeroOnRampAddress_Revert() (gas: 162457) -OffRamp_constructor:test_ZeroRMNRemote_Revert() (gas: 101471) -OffRamp_constructor:test_ZeroTokenAdminRegistry_Revert() (gas: 101486) -OffRamp_execute:test_IncorrectArrayType_Revert() (gas: 17281) -OffRamp_execute:test_LargeBatch_Success() (gas: 3378308) -OffRamp_execute:test_MultipleReportsWithPartialValidationFailures_Success() (gas: 372457) -OffRamp_execute:test_MultipleReports_Success() (gas: 298416) -OffRamp_execute:test_NoConfigWithOtherConfigPresent_Revert() (gas: 6894898) -OffRamp_execute:test_NoConfig_Revert() (gas: 6119696) -OffRamp_execute:test_NonArray_Revert() (gas: 27721) -OffRamp_execute:test_SingleReport_Success() (gas: 175215) -OffRamp_execute:test_UnauthorizedTransmitter_Revert() (gas: 147455) -OffRamp_execute:test_WrongConfigWithSigners_Revert() (gas: 6897641) -OffRamp_execute:test_ZeroReports_Revert() (gas: 17162) -OffRamp_executeSingleMessage:test_MessageSender_Revert() (gas: 18212) -OffRamp_executeSingleMessage:test_NonContractWithTokens_Success() (gas: 249178) -OffRamp_executeSingleMessage:test_NonContract_Success() (gas: 20494) -OffRamp_executeSingleMessage:test_TokenHandlingError_Revert() (gas: 210308) -OffRamp_executeSingleMessage:test_ZeroGasDONExecution_Revert() (gas: 48776) -OffRamp_executeSingleMessage:test_executeSingleMessage_NoTokens_Success() (gas: 48260) -OffRamp_executeSingleMessage:test_executeSingleMessage_WithFailingValidationNoRouterCall_Revert() (gas: 229570) -OffRamp_executeSingleMessage:test_executeSingleMessage_WithFailingValidation_Revert() (gas: 86208) -OffRamp_executeSingleMessage:test_executeSingleMessage_WithTokens_Success() (gas: 281045) -OffRamp_executeSingleMessage:test_executeSingleMessage_WithValidation_Success() (gas: 92487) -OffRamp_executeSingleReport:test_DisabledSourceChain_Revert() (gas: 28232) -OffRamp_executeSingleReport:test_EmptyReport_Revert() (gas: 21860) -OffRamp_executeSingleReport:test_InvalidSourcePoolAddress_Success() (gas: 502009) -OffRamp_executeSingleReport:test_ManualExecutionNotYetEnabled_Revert() (gas: 47635) -OffRamp_executeSingleReport:test_MismatchingDestChainSelector_Revert() (gas: 33895) -OffRamp_executeSingleReport:test_NonExistingSourceChain_Revert() (gas: 28436) -OffRamp_executeSingleReport:test_ReceiverError_Success() (gas: 187632) -OffRamp_executeSingleReport:test_RetryFailedMessageWithoutManualExecution_Revert() (gas: 198117) -OffRamp_executeSingleReport:test_RootNotCommitted_Revert() (gas: 40136) -OffRamp_executeSingleReport:test_RouterYULCall_Revert() (gas: 447468) -OffRamp_executeSingleReport:test_SingleMessageNoTokensOtherChain_Success() (gas: 247969) -OffRamp_executeSingleReport:test_SingleMessageNoTokensUnordered_Success() (gas: 192275) -OffRamp_executeSingleReport:test_SingleMessageNoTokens_Success() (gas: 211874) -OffRamp_executeSingleReport:test_SingleMessageToNonCCIPReceiver_Success() (gas: 259731) -OffRamp_executeSingleReport:test_SingleMessagesNoTokensSuccess_gas() (gas: 140942) -OffRamp_executeSingleReport:test_SkippedIncorrectNonceStillExecutes_Success() (gas: 424578) -OffRamp_executeSingleReport:test_SkippedIncorrectNonce_Success() (gas: 59052) -OffRamp_executeSingleReport:test_TokenDataMismatch_Revert() (gas: 74143) -OffRamp_executeSingleReport:test_TwoMessagesWithTokensAndGE_Success() (gas: 596338) -OffRamp_executeSingleReport:test_TwoMessagesWithTokensSuccess_gas() (gas: 544190) -OffRamp_executeSingleReport:test_UnexpectedTokenData_Revert() (gas: 33656) -OffRamp_executeSingleReport:test_UnhealthySingleChainCurse_Revert() (gas: 569320) -OffRamp_executeSingleReport:test_Unhealthy_Success() (gas: 569334) -OffRamp_executeSingleReport:test_WithCurseOnAnotherSourceChain_Success() (gas: 474664) -OffRamp_executeSingleReport:test__execute_SkippedAlreadyExecutedMessageUnordered_Success() (gas: 135476) -OffRamp_executeSingleReport:test__execute_SkippedAlreadyExecutedMessage_Success() (gas: 164703) -OffRamp_getExecutionState:test_FillExecutionState_Success() (gas: 3635486) -OffRamp_getExecutionState:test_GetDifferentChainExecutionState_Success() (gas: 118398) -OffRamp_getExecutionState:test_GetExecutionState_Success() (gas: 87417) -OffRamp_manuallyExecute:test_ManualExecGasLimitMismatchSingleReport_Revert() (gas: 75569) -OffRamp_manuallyExecute:test_ManualExecInvalidGasLimit_Revert() (gas: 26442) -OffRamp_manuallyExecute:test_manuallyExecute_DoesNotRevertIfUntouched_Success() (gas: 171318) -OffRamp_manuallyExecute:test_manuallyExecute_FailedTx_Revert() (gas: 211218) -OffRamp_manuallyExecute:test_manuallyExecute_ForkedChain_Revert() (gas: 26060) -OffRamp_manuallyExecute:test_manuallyExecute_GasLimitMismatchMultipleReports_Revert() (gas: 152860) -OffRamp_manuallyExecute:test_manuallyExecute_LowGasLimit_Success() (gas: 529914) -OffRamp_manuallyExecute:test_manuallyExecute_MultipleReportsWithSingleCursedLane_Revert() (gas: 310504) -OffRamp_manuallyExecute:test_manuallyExecute_ReentrancyFails_Success() (gas: 2327501) -OffRamp_manuallyExecute:test_manuallyExecute_SourceChainSelectorMismatch_Revert() (gas: 162246) -OffRamp_manuallyExecute:test_manuallyExecute_Success() (gas: 224130) -OffRamp_manuallyExecute:test_manuallyExecute_WithGasOverride_Success() (gas: 224711) -OffRamp_manuallyExecute:test_manuallyExecute_WithMultiReportGasOverride_Success() (gas: 768287) -OffRamp_manuallyExecute:test_manuallyExecute_WithPartialMessages_Success() (gas: 343255) -OffRamp_releaseOrMintSingleToken:test__releaseOrMintSingleToken_NotACompatiblePool_Revert() (gas: 40194) -OffRamp_releaseOrMintSingleToken:test__releaseOrMintSingleToken_Success() (gas: 107223) -OffRamp_releaseOrMintSingleToken:test__releaseOrMintSingleToken_TokenHandlingError_transfer_Revert() (gas: 88434) -OffRamp_releaseOrMintSingleToken:test_releaseOrMintToken_InvalidDataLength_Revert() (gas: 39933) -OffRamp_releaseOrMintSingleToken:test_releaseOrMintToken_ReleaseOrMintBalanceMismatch_Revert() (gas: 97495) -OffRamp_releaseOrMintSingleToken:test_releaseOrMintToken_TokenHandlingError_BalanceOf_Revert() (gas: 42919) -OffRamp_releaseOrMintSingleToken:test_releaseOrMintToken_skip_ReleaseOrMintBalanceMismatch_if_pool_Revert() (gas: 89679) -OffRamp_releaseOrMintTokens:test_TokenHandlingError_Reverts() (gas: 166024) -OffRamp_releaseOrMintTokens:test__releaseOrMintTokens_PoolIsNotAPool_Reverts() (gas: 24628) -OffRamp_releaseOrMintTokens:test_releaseOrMintTokens_InvalidDataLengthReturnData_Revert() (gas: 66391) -OffRamp_releaseOrMintTokens:test_releaseOrMintTokens_InvalidEVMAddress_Revert() (gas: 41350) -OffRamp_releaseOrMintTokens:test_releaseOrMintTokens_PoolDoesNotSupportDest_Reverts() (gas: 83403) -OffRamp_releaseOrMintTokens:test_releaseOrMintTokens_Success() (gas: 178169) -OffRamp_releaseOrMintTokens:test_releaseOrMintTokens_destDenominatedDecimals_Success() (gas: 191356) -OffRamp_setDynamicConfig:test_FeeQuoterZeroAddress_Revert() (gas: 11610) -OffRamp_setDynamicConfig:test_NonOwner_Revert() (gas: 14177) -OffRamp_setDynamicConfig:test_SetDynamicConfigWithValidator_Success() (gas: 49192) -OffRamp_setDynamicConfig:test_SetDynamicConfig_Success() (gas: 27137) -OffRamp_trialExecute:test_RateLimitError_Success() (gas: 225885) -OffRamp_trialExecute:test_TokenHandlingErrorIsCaught_Success() (gas: 234506) -OffRamp_trialExecute:test_TokenPoolIsNotAContract_Success() (gas: 309185) -OffRamp_trialExecute:test_trialExecute_Success() (gas: 284141) -OnRampTokenPoolReentrancy:test_OnRampTokenPoolReentrancy_Success() (gas: 390910) -OnRamp_applyAllowListUpdates:test_applyAllowListUpdates_InvalidAllowListRequestDisabledAllowListWithAdds() (gas: 17746) -OnRamp_applyAllowListUpdates:test_applyAllowListUpdates_Revert() (gas: 66535) -OnRamp_applyAllowListUpdates:test_applyAllowListUpdates_Success() (gas: 323600) +OffRamp_afterOC3ConfigSet:test_afterOCR3ConfigSet_SignatureVerificationDisabled_Revert() (gas: 5775758) +OffRamp_applySourceChainConfigUpdates:test_AddMultipleChains_Success() (gas: 468548) +OffRamp_applySourceChainConfigUpdates:test_AddNewChain_Success() (gas: 99393) +OffRamp_applySourceChainConfigUpdates:test_ApplyZeroUpdates_Success() (gas: 12428) +OffRamp_applySourceChainConfigUpdates:test_ReplaceExistingChainOnRamp_Success() (gas: 101426) +OffRamp_applySourceChainConfigUpdates:test_ReplaceExistingChain_Success() (gas: 110843) +OffRamp_applySourceChainConfigUpdates:test_RouterAddress_Revert() (gas: 13374) +OffRamp_applySourceChainConfigUpdates:test_ZeroOnRampAddress_Revert() (gas: 72550) +OffRamp_applySourceChainConfigUpdates:test_ZeroSourceChainSelector_Revert() (gas: 15440) +OffRamp_batchExecute:test_MultipleReportsDifferentChainsSkipCursedChain_Success() (gas: 178686) +OffRamp_batchExecute:test_MultipleReportsDifferentChains_Success() (gas: 335829) +OffRamp_batchExecute:test_MultipleReportsSameChain_Success() (gas: 279197) +OffRamp_batchExecute:test_MultipleReportsSkipDuplicate_Success() (gas: 169788) +OffRamp_batchExecute:test_OutOfBoundsGasLimitsAccess_Revert() (gas: 189903) +OffRamp_batchExecute:test_SingleReport_Success() (gas: 157139) +OffRamp_batchExecute:test_Unhealthy_Success() (gas: 578750) +OffRamp_batchExecute:test_ZeroReports_Revert() (gas: 10530) +OffRamp_ccipReceive:test_Reverts() (gas: 15717) +OffRamp_commit:test_FailedRMNVerification_Reverts() (gas: 63790) +OffRamp_commit:test_InvalidIntervalMinLargerThanMax_Revert() (gas: 68029) +OffRamp_commit:test_InvalidInterval_Revert() (gas: 64196) +OffRamp_commit:test_InvalidOnRamp_Revert() (gas: 92371) +OffRamp_commit:test_InvalidRootRevert() (gas: 63269) +OffRamp_commit:test_NoConfigWithOtherConfigPresent_Revert() (gas: 6381065) +OffRamp_commit:test_NoConfig_Revert() (gas: 5964757) +OffRamp_commit:test_OnlyGasPriceUpdates_Success() (gas: 113787) +OffRamp_commit:test_OnlyPriceUpdateStaleReport_Revert() (gas: 122036) +OffRamp_commit:test_OnlyTokenPriceUpdates_Success() (gas: 113764) +OffRamp_commit:test_PriceSequenceNumberCleared_Success() (gas: 356414) +OffRamp_commit:test_ReportAndPriceUpdate_Success() (gas: 166014) +OffRamp_commit:test_ReportOnlyRootSuccess_gas() (gas: 141134) +OffRamp_commit:test_RootAlreadyCommitted_Revert() (gas: 147374) +OffRamp_commit:test_SourceChainNotEnabled_Revert() (gas: 59556) +OffRamp_commit:test_StaleReportWithRoot_Success() (gas: 238732) +OffRamp_commit:test_UnauthorizedTransmitter_Revert() (gas: 126251) +OffRamp_commit:test_Unhealthy_Revert() (gas: 58297) +OffRamp_commit:test_ValidPriceUpdateThenStaleReportWithRoot_Success() (gas: 211728) +OffRamp_commit:test_ZeroEpochAndRound_Revert() (gas: 51534) +OffRamp_constructor:test_Constructor_Success() (gas: 5965141) +OffRamp_constructor:test_SourceChainSelector_Revert() (gas: 136786) +OffRamp_constructor:test_ZeroChainSelector_Revert() (gas: 103515) +OffRamp_constructor:test_ZeroNonceManager_Revert() (gas: 101386) +OffRamp_constructor:test_ZeroOnRampAddress_Revert() (gas: 162301) +OffRamp_constructor:test_ZeroRMNRemote_Revert() (gas: 101315) +OffRamp_constructor:test_ZeroTokenAdminRegistry_Revert() (gas: 101330) +OffRamp_execute:test_IncorrectArrayType_Revert() (gas: 17386) +OffRamp_execute:test_LargeBatch_Success() (gas: 3406019) +OffRamp_execute:test_MultipleReportsWithPartialValidationFailures_Success() (gas: 375436) +OffRamp_execute:test_MultipleReports_Success() (gas: 301503) +OffRamp_execute:test_NoConfigWithOtherConfigPresent_Revert() (gas: 6788826) +OffRamp_execute:test_NoConfig_Revert() (gas: 6013525) +OffRamp_execute:test_NonArray_Revert() (gas: 27895) +OffRamp_execute:test_SingleReport_Success() (gas: 176412) +OffRamp_execute:test_UnauthorizedTransmitter_Revert() (gas: 148541) +OffRamp_execute:test_WrongConfigWithSigners_Revert() (gas: 6791602) +OffRamp_execute:test_ZeroReports_Revert() (gas: 17228) +OffRamp_executeSingleMessage:test_MessageSender_Revert() (gas: 18392) +OffRamp_executeSingleMessage:test_NonContractWithTokens_Success() (gas: 250060) +OffRamp_executeSingleMessage:test_NonContract_Success() (gas: 20686) +OffRamp_executeSingleMessage:test_TokenHandlingError_Revert() (gas: 211172) +OffRamp_executeSingleMessage:test_ZeroGasDONExecution_Revert() (gas: 49052) +OffRamp_executeSingleMessage:test_executeSingleMessage_NoTokens_Success() (gas: 48536) +OffRamp_executeSingleMessage:test_executeSingleMessage_WithFailingValidationNoRouterCall_Revert() (gas: 219586) +OffRamp_executeSingleMessage:test_executeSingleMessage_WithFailingValidation_Revert() (gas: 86442) +OffRamp_executeSingleMessage:test_executeSingleMessage_WithTokens_Success() (gas: 282011) +OffRamp_executeSingleMessage:test_executeSingleMessage_WithValidation_Success() (gas: 92787) +OffRamp_executeSingleReport:test_DisabledSourceChain_Revert() (gas: 28742) +OffRamp_executeSingleReport:test_EmptyReport_Revert() (gas: 22046) +OffRamp_executeSingleReport:test_InvalidSourcePoolAddress_Success() (gas: 506788) +OffRamp_executeSingleReport:test_ManualExecutionNotYetEnabled_Revert() (gas: 48325) +OffRamp_executeSingleReport:test_MismatchingDestChainSelector_Revert() (gas: 34465) +OffRamp_executeSingleReport:test_NonExistingSourceChain_Revert() (gas: 28970) +OffRamp_executeSingleReport:test_ReceiverError_Success() (gas: 189168) +OffRamp_executeSingleReport:test_RetryFailedMessageWithoutManualExecution_Revert() (gas: 200187) +OffRamp_executeSingleReport:test_RootNotCommitted_Revert() (gas: 40778) +OffRamp_executeSingleReport:test_RouterYULCall_Revert() (gas: 448836) +OffRamp_executeSingleReport:test_SingleMessageNoTokensOtherChain_Success() (gas: 250465) +OffRamp_executeSingleReport:test_SingleMessageNoTokensUnordered_Success() (gas: 195431) +OffRamp_executeSingleReport:test_SingleMessageNoTokens_Success() (gas: 214958) +OffRamp_executeSingleReport:test_SingleMessageToNonCCIPReceiver_Success() (gas: 250839) +OffRamp_executeSingleReport:test_SingleMessagesNoTokensSuccess_gas() (gas: 142328) +OffRamp_executeSingleReport:test_SkippedIncorrectNonceStillExecutes_Success() (gas: 428376) +OffRamp_executeSingleReport:test_SkippedIncorrectNonce_Success() (gas: 59796) +OffRamp_executeSingleReport:test_TokenDataMismatch_Revert() (gas: 74881) +OffRamp_executeSingleReport:test_TwoMessagesWithTokensAndGE_Success() (gas: 602020) +OffRamp_executeSingleReport:test_TwoMessagesWithTokensSuccess_gas() (gas: 549578) +OffRamp_executeSingleReport:test_UnexpectedTokenData_Revert() (gas: 34196) +OffRamp_executeSingleReport:test_UnhealthySingleChainCurse_Revert() (gas: 576064) +OffRamp_executeSingleReport:test_Unhealthy_Success() (gas: 576078) +OffRamp_executeSingleReport:test_WithCurseOnAnotherSourceChain_Success() (gas: 478840) +OffRamp_executeSingleReport:test__execute_SkippedAlreadyExecutedMessageUnordered_Success() (gas: 137612) +OffRamp_executeSingleReport:test__execute_SkippedAlreadyExecutedMessage_Success() (gas: 166803) +OffRamp_getExecutionState:test_FillExecutionState_Success() (gas: 3792374) +OffRamp_getExecutionState:test_GetDifferentChainExecutionState_Success() (gas: 119814) +OffRamp_getExecutionState:test_GetExecutionState_Success() (gas: 88809) +OffRamp_manuallyExecute:test_ManualExecGasLimitMismatchSingleReport_Revert() (gas: 78017) +OffRamp_manuallyExecute:test_ManualExecInvalidGasLimit_Revert() (gas: 26862) +OffRamp_manuallyExecute:test_manuallyExecute_DoesNotRevertIfUntouched_Success() (gas: 172428) +OffRamp_manuallyExecute:test_manuallyExecute_FailedTx_Revert() (gas: 213402) +OffRamp_manuallyExecute:test_manuallyExecute_ForkedChain_Revert() (gas: 26468) +OffRamp_manuallyExecute:test_manuallyExecute_GasLimitMismatchMultipleReports_Revert() (gas: 158584) +OffRamp_manuallyExecute:test_manuallyExecute_LowGasLimit_Success() (gas: 532122) +OffRamp_manuallyExecute:test_manuallyExecute_MultipleReportsWithSingleCursedLane_Revert() (gas: 313924) +OffRamp_manuallyExecute:test_manuallyExecute_ReentrancyFails_Success() (gas: 2329997) +OffRamp_manuallyExecute:test_manuallyExecute_SourceChainSelectorMismatch_Revert() (gas: 163794) +OffRamp_manuallyExecute:test_manuallyExecute_Success() (gas: 226338) +OffRamp_manuallyExecute:test_manuallyExecute_WithGasOverride_Success() (gas: 226919) +OffRamp_manuallyExecute:test_manuallyExecute_WithMultiReportGasOverride_Success() (gas: 777731) +OffRamp_manuallyExecute:test_manuallyExecute_WithPartialMessages_Success() (gas: 347191) +OffRamp_releaseOrMintSingleToken:test__releaseOrMintSingleToken_NotACompatiblePool_Revert() (gas: 40566) +OffRamp_releaseOrMintSingleToken:test__releaseOrMintSingleToken_Success() (gas: 107691) +OffRamp_releaseOrMintSingleToken:test__releaseOrMintSingleToken_TokenHandlingError_transfer_Revert() (gas: 88914) +OffRamp_releaseOrMintSingleToken:test_releaseOrMintToken_InvalidDataLength_Revert() (gas: 40338) +OffRamp_releaseOrMintSingleToken:test_releaseOrMintToken_ReleaseOrMintBalanceMismatch_Revert() (gas: 97963) +OffRamp_releaseOrMintSingleToken:test_releaseOrMintToken_TokenHandlingError_BalanceOf_Revert() (gas: 43336) +OffRamp_releaseOrMintSingleToken:test_releaseOrMintToken_skip_ReleaseOrMintBalanceMismatch_if_pool_Revert() (gas: 90135) +OffRamp_releaseOrMintTokens:test_TokenHandlingError_Reverts() (gas: 166798) +OffRamp_releaseOrMintTokens:test__releaseOrMintTokens_PoolIsNotAPool_Reverts() (gas: 24874) +OffRamp_releaseOrMintTokens:test_releaseOrMintTokens_InvalidDataLengthReturnData_Revert() (gas: 67042) +OffRamp_releaseOrMintTokens:test_releaseOrMintTokens_InvalidEVMAddress_Revert() (gas: 41734) +OffRamp_releaseOrMintTokens:test_releaseOrMintTokens_PoolDoesNotSupportDest_Reverts() (gas: 84060) +OffRamp_releaseOrMintTokens:test_releaseOrMintTokens_Success() (gas: 178943) +OffRamp_releaseOrMintTokens:test_releaseOrMintTokens_destDenominatedDecimals_Success() (gas: 192130) +OffRamp_setDynamicConfig:test_FeeQuoterZeroAddress_Revert() (gas: 11628) +OffRamp_setDynamicConfig:test_NonOwner_Revert() (gas: 14201) +OffRamp_setDynamicConfig:test_SetDynamicConfigWithValidator_Success() (gas: 49210) +OffRamp_setDynamicConfig:test_SetDynamicConfig_Success() (gas: 27155) +OffRamp_trialExecute:test_RateLimitError_Success() (gas: 227295) +OffRamp_trialExecute:test_TokenHandlingErrorIsCaught_Success() (gas: 235916) +OffRamp_trialExecute:test_TokenPoolIsNotAContract_Success() (gas: 312713) +OffRamp_trialExecute:test_trialExecute_Success() (gas: 285647) +OnRampTokenPoolReentrancy:test_OnRampTokenPoolReentrancy_Success() (gas: 391150) +OnRamp_applyAllowListUpdates:test_applyAllowListUpdates_InvalidAllowListRequestDisabledAllowListWithAdds() (gas: 17758) +OnRamp_applyAllowListUpdates:test_applyAllowListUpdates_Revert() (gas: 66553) +OnRamp_applyAllowListUpdates:test_applyAllowListUpdates_Success() (gas: 323605) OnRamp_applyDestChainConfigUpdates:test_ApplyDestChainConfigUpdates_Success() (gas: 64546) OnRamp_applyDestChainConfigUpdates:test_ApplyDestChainConfigUpdates_WithInvalidChainSelector_Revert() (gas: 13254) -OnRamp_constructor:test_Constructor_InvalidConfigChainSelectorEqZero_Revert() (gas: 94831) -OnRamp_constructor:test_Constructor_InvalidConfigNonceManagerEqAddressZero_Revert() (gas: 92765) -OnRamp_constructor:test_Constructor_InvalidConfigRMNProxyEqAddressZero_Revert() (gas: 97791) -OnRamp_constructor:test_Constructor_InvalidConfigTokenAdminRegistryEqAddressZero_Revert() (gas: 92823) -OnRamp_constructor:test_Constructor_Success() (gas: 2827622) +OnRamp_constructor:test_Constructor_InvalidConfigChainSelectorEqZero_Revert() (gas: 94823) +OnRamp_constructor:test_Constructor_InvalidConfigNonceManagerEqAddressZero_Revert() (gas: 92757) +OnRamp_constructor:test_Constructor_InvalidConfigRMNProxyEqAddressZero_Revert() (gas: 97783) +OnRamp_constructor:test_Constructor_InvalidConfigTokenAdminRegistryEqAddressZero_Revert() (gas: 92815) +OnRamp_constructor:test_Constructor_Success() (gas: 2817599) OnRamp_forwardFromRouter:test_ForwardFromRouterExtraArgsV2AllowOutOfOrderTrue_Success() (gas: 114939) OnRamp_forwardFromRouter:test_ForwardFromRouterExtraArgsV2_Success() (gas: 145710) OnRamp_forwardFromRouter:test_ForwardFromRouterSuccessCustomExtraArgs() (gas: 145313) OnRamp_forwardFromRouter:test_ForwardFromRouterSuccessEmptyExtraArgs() (gas: 143538) OnRamp_forwardFromRouter:test_ForwardFromRouterSuccessLegacyExtraArgs() (gas: 145538) OnRamp_forwardFromRouter:test_ForwardFromRouter_Success() (gas: 144917) -OnRamp_forwardFromRouter:test_ForwardFromRouter_Success_ConfigurableSourceRouter() (gas: 140243) +OnRamp_forwardFromRouter:test_ForwardFromRouter_Success_ConfigurableSourceRouter() (gas: 140249) OnRamp_forwardFromRouter:test_InvalidExtraArgsTag_Revert() (gas: 28824) -OnRamp_forwardFromRouter:test_MessageValidationError_Revert() (gas: 138926) +OnRamp_forwardFromRouter:test_MessageValidationError_Revert() (gas: 138938) OnRamp_forwardFromRouter:test_MesssageFeeTooHigh_Revert() (gas: 26924) OnRamp_forwardFromRouter:test_MultiCannotSendZeroTokens_Revert() (gas: 74139) OnRamp_forwardFromRouter:test_OriginalSender_Revert() (gas: 12951) -OnRamp_forwardFromRouter:test_Paused_Revert() (gas: 37326) -OnRamp_forwardFromRouter:test_Permissions_Revert() (gas: 18278) +OnRamp_forwardFromRouter:test_Paused_Revert() (gas: 37338) +OnRamp_forwardFromRouter:test_Permissions_Revert() (gas: 18284) OnRamp_forwardFromRouter:test_ShouldIncrementNonceOnlyOnOrdered_Success() (gas: 184562) OnRamp_forwardFromRouter:test_ShouldIncrementSeqNumAndNonce_Success() (gas: 210880) OnRamp_forwardFromRouter:test_ShouldStoreLinkFees() (gas: 124838) OnRamp_forwardFromRouter:test_ShouldStoreNonLinkFees() (gas: 146211) -OnRamp_forwardFromRouter:test_SourceTokenDataTooLarge_Revert() (gas: 3829289) +OnRamp_forwardFromRouter:test_SourceTokenDataTooLarge_Revert() (gas: 3769244) OnRamp_forwardFromRouter:test_UnAllowedOriginalSender_Revert() (gas: 18714) -OnRamp_forwardFromRouter:test_UnsupportedToken_Revert() (gas: 110907) -OnRamp_forwardFromRouter:test_forwardFromRouter_UnsupportedToken_Revert() (gas: 76229) -OnRamp_forwardFromRouter:test_forwardFromRouter_WithValidation_Success() (gas: 281171) -OnRamp_getFee:test_EmptyMessage_Success() (gas: 102470) -OnRamp_getFee:test_EnforceOutOfOrder_Revert() (gas: 66390) -OnRamp_getFee:test_GetFeeOfZeroForTokenMessage_Success() (gas: 87796) -OnRamp_getFee:test_NotAFeeTokenButPricedToken_Revert() (gas: 34972) -OnRamp_getFee:test_SingleTokenMessage_Success() (gas: 117839) -OnRamp_getFee:test_Unhealthy_Revert() (gas: 17009) +OnRamp_forwardFromRouter:test_UnsupportedToken_Revert() (gas: 110919) +OnRamp_forwardFromRouter:test_forwardFromRouter_UnsupportedToken_Revert() (gas: 76235) +OnRamp_forwardFromRouter:test_forwardFromRouter_WithValidation_Success() (gas: 281240) +OnRamp_getFee:test_EmptyMessage_Success() (gas: 102482) +OnRamp_getFee:test_EnforceOutOfOrder_Revert() (gas: 66402) +OnRamp_getFee:test_GetFeeOfZeroForTokenMessage_Success() (gas: 87802) +OnRamp_getFee:test_NotAFeeTokenButPricedToken_Revert() (gas: 34978) +OnRamp_getFee:test_SingleTokenMessage_Success() (gas: 117875) +OnRamp_getFee:test_Unhealthy_Revert() (gas: 17021) OnRamp_getSupportedTokens:test_GetSupportedTokens_Revert() (gas: 10438) OnRamp_getTokenPool:test_GetTokenPool_Success() (gas: 35204) OnRamp_setDynamicConfig:test_SetConfigInvalidConfigFeeAggregatorEqAddressZero_Revert() (gas: 11420) OnRamp_setDynamicConfig:test_SetConfigInvalidConfigFeeQuoterEqAddressZero_Revert() (gas: 13019) OnRamp_setDynamicConfig:test_SetConfigInvalidConfig_Revert() (gas: 11377) -OnRamp_setDynamicConfig:test_SetConfigOnlyOwner_Revert() (gas: 16409) +OnRamp_setDynamicConfig:test_SetConfigOnlyOwner_Revert() (gas: 16421) OnRamp_setDynamicConfig:test_SetDynamicConfig_Success() (gas: 55330) OnRamp_withdrawFeeTokens:test_WithdrawFeeTokens_Success() (gas: 97235) -PingPong_ccipReceive:test_CcipReceive_Success() (gas: 152765) -PingPong_plumbing:test_OutOfOrderExecution_Success() (gas: 20280) -PingPong_plumbing:test_Pausing_Success() (gas: 17780) -PingPong_startPingPong:test_StartPingPong_With_OOO_Success() (gas: 163361) -PingPong_startPingPong:test_StartPingPong_With_Sequenced_Ordered_Success() (gas: 182770) +PingPong_ccipReceive:test_CcipReceive_Success() (gas: 152906) +PingPong_plumbing:test_OutOfOrderExecution_Success() (gas: 20286) +PingPong_plumbing:test_Pausing_Success() (gas: 17786) +PingPong_startPingPong:test_StartPingPong_With_OOO_Success() (gas: 163559) +PingPong_startPingPong:test_StartPingPong_With_Sequenced_Ordered_Success() (gas: 182977) RMNHome:test() (gas: 186) RMN_constructor:test_Constructor_Success() (gas: 48874) -RMN_getRecordedCurseRelatedOps:test_OpsPostDeployment() (gas: 19690) -RMN_lazyVoteToCurseUpdate_Benchmark:test_VoteToCurseLazilyRetain3VotersUponConfigChange_gas() (gas: 152263) -RMN_ownerUnbless:test_Unbless_Success() (gas: 74882) -RMN_ownerUnvoteToCurse:test_CanBlessAndCurseAfterGlobalCurseIsLifted() (gas: 471457) -RMN_ownerUnvoteToCurse:test_IsIdempotent() (gas: 398096) +RMN_getRecordedCurseRelatedOps:test_OpsPostDeployment() (gas: 19696) +RMN_lazyVoteToCurseUpdate_Benchmark:test_VoteToCurseLazilyRetain3VotersUponConfigChange_gas() (gas: 152287) +RMN_ownerUnbless:test_Unbless_Success() (gas: 74900) +RMN_ownerUnvoteToCurse:test_CanBlessAndCurseAfterGlobalCurseIsLifted() (gas: 471574) +RMN_ownerUnvoteToCurse:test_IsIdempotent() (gas: 398222) RMN_ownerUnvoteToCurse:test_NonOwner_Revert() (gas: 18669) -RMN_ownerUnvoteToCurse:test_OwnerUnvoteToCurseSuccess_gas() (gas: 357751) -RMN_ownerUnvoteToCurse:test_UnknownVoter_Revert() (gas: 33034) -RMN_ownerUnvoteToCurse_Benchmark:test_OwnerUnvoteToCurse_1Voter_LiftsCurse_gas() (gas: 262211) +RMN_ownerUnvoteToCurse:test_OwnerUnvoteToCurseSuccess_gas() (gas: 357841) +RMN_ownerUnvoteToCurse:test_UnknownVoter_Revert() (gas: 33058) +RMN_ownerUnvoteToCurse_Benchmark:test_OwnerUnvoteToCurse_1Voter_LiftsCurse_gas() (gas: 262247) RMN_permaBlessing:test_PermaBlessing() (gas: 202691) RMN_setConfig:test_BlessVoterIsZeroAddress_Revert() (gas: 15494) RMN_setConfig:test_EitherThresholdIsZero_Revert() (gas: 21095) -RMN_setConfig:test_NonOwner_Revert() (gas: 14719) +RMN_setConfig:test_NonOwner_Revert() (gas: 14725) RMN_setConfig:test_RepeatedAddress_Revert() (gas: 18213) -RMN_setConfig:test_SetConfigSuccess_gas() (gas: 104080) +RMN_setConfig:test_SetConfigSuccess_gas() (gas: 104089) RMN_setConfig:test_TotalWeightsSmallerThanEachThreshold_Revert() (gas: 30173) -RMN_setConfig:test_VoteToBlessByEjectedVoter_Revert() (gas: 130363) +RMN_setConfig:test_VoteToBlessByEjectedVoter_Revert() (gas: 130377) RMN_setConfig:test_VotersLengthIsZero_Revert() (gas: 12128) RMN_setConfig:test_WeightIsZeroAddress_Revert() (gas: 15734) -RMN_setConfig_Benchmark_1:test_SetConfig_7Voters_gas() (gas: 659462) -RMN_setConfig_Benchmark_2:test_ResetConfig_7Voters_gas() (gas: 212484) -RMN_unvoteToCurse:test_InvalidCursesHash() (gas: 26412) -RMN_unvoteToCurse:test_OwnerSkips() (gas: 33813) -RMN_unvoteToCurse:test_OwnerSucceeds() (gas: 63981) -RMN_unvoteToCurse:test_UnauthorizedVoter() (gas: 47598) -RMN_unvoteToCurse:test_ValidCursesHash() (gas: 61127) -RMN_unvoteToCurse:test_VotersCantLiftCurseButOwnerCan() (gas: 628641) -RMN_voteToBless:test_Curse_Revert() (gas: 473252) -RMN_voteToBless:test_IsAlreadyBlessed_Revert() (gas: 115312) -RMN_voteToBless:test_RootSuccess() (gas: 558319) -RMN_voteToBless:test_SenderAlreadyVoted_Revert() (gas: 97177) +RMN_setConfig_Benchmark_1:test_SetConfig_7Voters_gas() (gas: 659495) +RMN_setConfig_Benchmark_2:test_ResetConfig_7Voters_gas() (gas: 212511) +RMN_unvoteToCurse:test_InvalidCursesHash() (gas: 26430) +RMN_unvoteToCurse:test_OwnerSkips() (gas: 33831) +RMN_unvoteToCurse:test_OwnerSucceeds() (gas: 63999) +RMN_unvoteToCurse:test_UnauthorizedVoter() (gas: 47634) +RMN_unvoteToCurse:test_ValidCursesHash() (gas: 61139) +RMN_unvoteToCurse:test_VotersCantLiftCurseButOwnerCan() (gas: 628827) +RMN_voteToBless:test_Curse_Revert() (gas: 473342) +RMN_voteToBless:test_IsAlreadyBlessed_Revert() (gas: 115339) +RMN_voteToBless:test_RootSuccess() (gas: 558469) +RMN_voteToBless:test_SenderAlreadyVoted_Revert() (gas: 97204) RMN_voteToBless:test_UnauthorizedVoter_Revert() (gas: 17096) -RMN_voteToBless_Benchmark:test_1RootSuccess_gas() (gas: 44703) -RMN_voteToBless_Benchmark:test_3RootSuccess_gas() (gas: 98673) -RMN_voteToBless_Benchmark:test_5RootSuccess_gas() (gas: 152581) -RMN_voteToBless_Blessed_Benchmark:test_1RootSuccessBecameBlessed_gas() (gas: 29673) -RMN_voteToBless_Blessed_Benchmark:test_1RootSuccess_gas() (gas: 27619) -RMN_voteToBless_Blessed_Benchmark:test_3RootSuccess_gas() (gas: 81611) -RMN_voteToBless_Blessed_Benchmark:test_5RootSuccess_gas() (gas: 135497) -RMN_voteToCurse:test_CurseOnlyWhenThresholdReached_Success() (gas: 1650405) -RMN_voteToCurse:test_EmptySubjects_Revert() (gas: 14031) -RMN_voteToCurse:test_EvenIfAlreadyCursed_Success() (gas: 534854) -RMN_voteToCurse:test_OwnerCanCurseAndUncurse() (gas: 399532) -RMN_voteToCurse:test_RepeatedSubject_Revert() (gas: 144336) -RMN_voteToCurse:test_ReusedCurseId_Revert() (gas: 146885) -RMN_voteToCurse:test_UnauthorizedVoter_Revert() (gas: 12630) -RMN_voteToCurse:test_VoteToCurse_NoCurse_Success() (gas: 187388) -RMN_voteToCurse:test_VoteToCurse_YesCurse_Success() (gas: 472854) -RMN_voteToCurse_2:test_VotesAreDroppedIfSubjectIsNotCursedDuringConfigChange() (gas: 370837) -RMN_voteToCurse_2:test_VotesAreRetainedIfSubjectIsCursedDuringConfigChange() (gas: 1153282) -RMN_voteToCurse_Benchmark_1:test_VoteToCurse_NewSubject_NewVoter_NoCurse_gas() (gas: 141079) -RMN_voteToCurse_Benchmark_1:test_VoteToCurse_NewSubject_NewVoter_YesCurse_gas() (gas: 165213) -RMN_voteToCurse_Benchmark_2:test_VoteToCurse_OldSubject_NewVoter_NoCurse_gas() (gas: 121413) -RMN_voteToCurse_Benchmark_2:test_VoteToCurse_OldSubject_OldVoter_NoCurse_gas() (gas: 98355) -RMN_voteToCurse_Benchmark_3:test_VoteToCurse_OldSubject_NewVoter_YesCurse_gas() (gas: 145748) +RMN_voteToBless_Benchmark:test_1RootSuccess_gas() (gas: 44706) +RMN_voteToBless_Benchmark:test_3RootSuccess_gas() (gas: 98682) +RMN_voteToBless_Benchmark:test_5RootSuccess_gas() (gas: 152596) +RMN_voteToBless_Blessed_Benchmark:test_1RootSuccessBecameBlessed_gas() (gas: 29676) +RMN_voteToBless_Blessed_Benchmark:test_1RootSuccess_gas() (gas: 27622) +RMN_voteToBless_Blessed_Benchmark:test_3RootSuccess_gas() (gas: 81620) +RMN_voteToBless_Blessed_Benchmark:test_5RootSuccess_gas() (gas: 135512) +RMN_voteToCurse:test_CurseOnlyWhenThresholdReached_Success() (gas: 1651029) +RMN_voteToCurse:test_EmptySubjects_Revert() (gas: 14055) +RMN_voteToCurse:test_EvenIfAlreadyCursed_Success() (gas: 535106) +RMN_voteToCurse:test_OwnerCanCurseAndUncurse() (gas: 399724) +RMN_voteToCurse:test_RepeatedSubject_Revert() (gas: 144396) +RMN_voteToCurse:test_ReusedCurseId_Revert() (gas: 146963) +RMN_voteToCurse:test_UnauthorizedVoter_Revert() (gas: 12660) +RMN_voteToCurse:test_VoteToCurse_NoCurse_Success() (gas: 187466) +RMN_voteToCurse:test_VoteToCurse_YesCurse_Success() (gas: 473034) +RMN_voteToCurse_2:test_VotesAreDroppedIfSubjectIsNotCursedDuringConfigChange() (gas: 370924) +RMN_voteToCurse_2:test_VotesAreRetainedIfSubjectIsCursedDuringConfigChange() (gas: 1153719) +RMN_voteToCurse_Benchmark_1:test_VoteToCurse_NewSubject_NewVoter_NoCurse_gas() (gas: 141103) +RMN_voteToCurse_Benchmark_1:test_VoteToCurse_NewSubject_NewVoter_YesCurse_gas() (gas: 165243) +RMN_voteToCurse_Benchmark_2:test_VoteToCurse_OldSubject_NewVoter_NoCurse_gas() (gas: 121431) +RMN_voteToCurse_Benchmark_2:test_VoteToCurse_OldSubject_OldVoter_NoCurse_gas() (gas: 98367) +RMN_voteToCurse_Benchmark_3:test_VoteToCurse_OldSubject_NewVoter_YesCurse_gas() (gas: 145778) RateLimiter_constructor:test_Constructor_Success() (gas: 19704) -RateLimiter_consume:test_AggregateValueMaxCapacityExceeded_Revert() (gas: 16006) +RateLimiter_consume:test_AggregateValueMaxCapacityExceeded_Revert() (gas: 16012) RateLimiter_consume:test_AggregateValueRateLimitReached_Revert() (gas: 22345) RateLimiter_consume:test_ConsumeAggregateValue_Success() (gas: 31443) RateLimiter_consume:test_ConsumeTokens_Success() (gas: 20366) -RateLimiter_consume:test_ConsumeUnlimited_Success() (gas: 40573) -RateLimiter_consume:test_ConsumingMoreThanUint128_Revert() (gas: 15786) +RateLimiter_consume:test_ConsumeUnlimited_Success() (gas: 40585) +RateLimiter_consume:test_ConsumingMoreThanUint128_Revert() (gas: 15792) RateLimiter_consume:test_RateLimitReachedOverConsecutiveBlocks_Revert() (gas: 25747) RateLimiter_consume:test_Refill_Success() (gas: 37354) RateLimiter_consume:test_TokenMaxCapacityExceeded_Revert() (gas: 18340) RateLimiter_consume:test_TokenRateLimitReached_Revert() (gas: 24823) -RateLimiter_currentTokenBucketState:test_CurrentTokenBucketState_Success() (gas: 38875) -RateLimiter_currentTokenBucketState:test_Refill_Success() (gas: 46768) -RateLimiter_setTokenBucketConfig:test_SetRateLimiterConfig_Success() (gas: 38446) +RateLimiter_currentTokenBucketState:test_CurrentTokenBucketState_Success() (gas: 38884) +RateLimiter_currentTokenBucketState:test_Refill_Success() (gas: 46777) +RateLimiter_setTokenBucketConfig:test_SetRateLimiterConfig_Success() (gas: 38449) RegistryModuleOwnerCustom_constructor:test_constructor_Revert() (gas: 36037) -RegistryModuleOwnerCustom_registerAdminViaGetCCIPAdmin:test_registerAdminViaGetCCIPAdmin_Revert() (gas: 19643) -RegistryModuleOwnerCustom_registerAdminViaGetCCIPAdmin:test_registerAdminViaGetCCIPAdmin_Success() (gas: 129930) -RegistryModuleOwnerCustom_registerAdminViaOwner:test_registerAdminViaOwner_Revert() (gas: 19457) -RegistryModuleOwnerCustom_registerAdminViaOwner:test_registerAdminViaOwner_Success() (gas: 129743) -Router_applyRampUpdates:test_OffRampMismatch_Revert() (gas: 89306) -Router_applyRampUpdates:test_OffRampUpdatesWithRouting() (gas: 10648972) +RegistryModuleOwnerCustom_registerAdminViaGetCCIPAdmin:test_registerAdminViaGetCCIPAdmin_Revert() (gas: 19655) +RegistryModuleOwnerCustom_registerAdminViaGetCCIPAdmin:test_registerAdminViaGetCCIPAdmin_Success() (gas: 129978) +RegistryModuleOwnerCustom_registerAdminViaOwner:test_registerAdminViaOwner_Revert() (gas: 19475) +RegistryModuleOwnerCustom_registerAdminViaOwner:test_registerAdminViaOwner_Success() (gas: 129797) +Router_applyRampUpdates:test_OffRampMismatch_Revert() (gas: 89321) +Router_applyRampUpdates:test_OffRampUpdatesWithRouting() (gas: 10652272) Router_applyRampUpdates:test_OnRampDisable() (gas: 55971) Router_applyRampUpdates:test_OnlyOwner_Revert() (gas: 12317) -Router_ccipSend:test_CCIPSendLinkFeeNoTokenSuccess_gas() (gas: 114039) -Router_ccipSend:test_CCIPSendLinkFeeOneTokenSuccess_gas() (gas: 201534) -Router_ccipSend:test_CCIPSendNativeFeeNoTokenSuccess_gas() (gas: 128767) -Router_ccipSend:test_CCIPSendNativeFeeOneTokenSuccess_gas() (gas: 216264) -Router_ccipSend:test_FeeTokenAmountTooLow_Revert() (gas: 66368) -Router_ccipSend:test_InvalidMsgValue() (gas: 32008) -Router_ccipSend:test_NativeFeeTokenInsufficientValue() (gas: 68827) -Router_ccipSend:test_NativeFeeTokenOverpay_Success() (gas: 173903) -Router_ccipSend:test_NativeFeeTokenZeroValue() (gas: 56109) -Router_ccipSend:test_NativeFeeToken_Success() (gas: 172497) -Router_ccipSend:test_NonLinkFeeToken_Success() (gas: 242837) -Router_ccipSend:test_UnsupportedDestinationChain_Revert() (gas: 24761) -Router_ccipSend:test_WhenNotHealthy_Revert() (gas: 44736) -Router_ccipSend:test_WrappedNativeFeeToken_Success() (gas: 174755) -Router_ccipSend:test_ZeroFeeAndGasPrice_Success() (gas: 245046) +Router_ccipSend:test_CCIPSendLinkFeeNoTokenSuccess_gas() (gas: 114204) +Router_ccipSend:test_CCIPSendLinkFeeOneTokenSuccess_gas() (gas: 201720) +Router_ccipSend:test_CCIPSendNativeFeeNoTokenSuccess_gas() (gas: 128947) +Router_ccipSend:test_CCIPSendNativeFeeOneTokenSuccess_gas() (gas: 216465) +Router_ccipSend:test_FeeTokenAmountTooLow_Revert() (gas: 66428) +Router_ccipSend:test_InvalidMsgValue() (gas: 32014) +Router_ccipSend:test_NativeFeeTokenInsufficientValue() (gas: 68893) +Router_ccipSend:test_NativeFeeTokenOverpay_Success() (gas: 174149) +Router_ccipSend:test_NativeFeeTokenZeroValue() (gas: 56169) +Router_ccipSend:test_NativeFeeToken_Success() (gas: 172743) +Router_ccipSend:test_NonLinkFeeToken_Success() (gas: 243023) +Router_ccipSend:test_UnsupportedDestinationChain_Revert() (gas: 24767) +Router_ccipSend:test_WhenNotHealthy_Revert() (gas: 44742) +Router_ccipSend:test_WrappedNativeFeeToken_Success() (gas: 175001) +Router_ccipSend:test_ZeroFeeAndGasPrice_Success() (gas: 245298) Router_constructor:test_Constructor_Success() (gas: 13070) Router_getArmProxy:test_getArmProxy() (gas: 10561) -Router_getFee:test_GetFeeSupportedChain_Success() (gas: 46536) -Router_getFee:test_UnsupportedDestinationChain_Revert() (gas: 17144) +Router_getFee:test_GetFeeSupportedChain_Success() (gas: 46602) +Router_getFee:test_UnsupportedDestinationChain_Revert() (gas: 17156) Router_getSupportedTokens:test_GetSupportedTokens_Revert() (gas: 10460) -Router_recoverTokens:test_RecoverTokensInvalidRecipient_Revert() (gas: 11316) +Router_recoverTokens:test_RecoverTokensInvalidRecipient_Revert() (gas: 11322) Router_recoverTokens:test_RecoverTokensNoFunds_Revert() (gas: 20261) -Router_recoverTokens:test_RecoverTokensNonOwner_Revert() (gas: 11159) -Router_recoverTokens:test_RecoverTokensValueReceiver_Revert() (gas: 402507) -Router_recoverTokens:test_RecoverTokens_Success() (gas: 52437) +Router_recoverTokens:test_RecoverTokensNonOwner_Revert() (gas: 11171) +Router_recoverTokens:test_RecoverTokensValueReceiver_Revert() (gas: 392489) +Router_recoverTokens:test_RecoverTokens_Success() (gas: 52442) Router_routeMessage:test_AutoExec_Success() (gas: 42738) Router_routeMessage:test_ExecutionEvent_Success() (gas: 158166) Router_routeMessage:test_ManualExec_Success() (gas: 35429) -Router_routeMessage:test_OnlyOffRamp_Revert() (gas: 25140) -Router_routeMessage:test_WhenNotHealthy_Revert() (gas: 44742) -Router_setWrappedNative:test_OnlyOwner_Revert() (gas: 10986) -SelfFundedPingPong_ccipReceive:test_FundingIfNotANop_Revert() (gas: 55572) -SelfFundedPingPong_ccipReceive:test_Funding_Success() (gas: 420162) +Router_routeMessage:test_OnlyOffRamp_Revert() (gas: 25146) +Router_routeMessage:test_WhenNotHealthy_Revert() (gas: 44754) +Router_setWrappedNative:test_OnlyOwner_Revert() (gas: 10992) +SelfFundedPingPong_ccipReceive:test_FundingIfNotANop_Revert() (gas: 55596) +SelfFundedPingPong_ccipReceive:test_Funding_Success() (gas: 420834) SelfFundedPingPong_setCountIncrBeforeFunding:test_setCountIncrBeforeFunding() (gas: 20169) -TokenAdminRegistry_acceptAdminRole:test_acceptAdminRole_OnlyPendingAdministrator_Revert() (gas: 51109) -TokenAdminRegistry_acceptAdminRole:test_acceptAdminRole_Success() (gas: 43956) +TokenAdminRegistry_acceptAdminRole:test_acceptAdminRole_OnlyPendingAdministrator_Revert() (gas: 51115) +TokenAdminRegistry_acceptAdminRole:test_acceptAdminRole_Success() (gas: 43961) TokenAdminRegistry_addRegistryModule:test_addRegistryModule_OnlyOwner_Revert() (gas: 12641) TokenAdminRegistry_addRegistryModule:test_addRegistryModule_Success() (gas: 67038) -TokenAdminRegistry_getAllConfiguredTokens:test_getAllConfiguredTokens_outOfBounds_Success() (gas: 11350) +TokenAdminRegistry_getAllConfiguredTokens:test_getAllConfiguredTokens_outOfBounds_Success() (gas: 11356) TokenAdminRegistry_getPool:test_getPool_Success() (gas: 17596) TokenAdminRegistry_getPools:test_getPools_Success() (gas: 39920) -TokenAdminRegistry_isAdministrator:test_isAdministrator_Success() (gas: 105946) +TokenAdminRegistry_isAdministrator:test_isAdministrator_Success() (gas: 105952) TokenAdminRegistry_proposeAdministrator:test_proposeAdministrator_AlreadyRegistered_Revert() (gas: 104067) TokenAdminRegistry_proposeAdministrator:test_proposeAdministrator_OnlyRegistryModule_Revert() (gas: 15499) TokenAdminRegistry_proposeAdministrator:test_proposeAdministrator_ZeroAddress_Revert() (gas: 15044) -TokenAdminRegistry_proposeAdministrator:test_proposeAdministrator_module_Success() (gas: 112572) -TokenAdminRegistry_proposeAdministrator:test_proposeAdministrator_owner_Success() (gas: 107686) -TokenAdminRegistry_proposeAdministrator:test_proposeAdministrator_reRegisterWhileUnclaimed_Success() (gas: 115710) +TokenAdminRegistry_proposeAdministrator:test_proposeAdministrator_module_Success() (gas: 112578) +TokenAdminRegistry_proposeAdministrator:test_proposeAdministrator_owner_Success() (gas: 107692) +TokenAdminRegistry_proposeAdministrator:test_proposeAdministrator_reRegisterWhileUnclaimed_Success() (gas: 115716) TokenAdminRegistry_removeRegistryModule:test_removeRegistryModule_OnlyOwner_Revert() (gas: 12597) -TokenAdminRegistry_removeRegistryModule:test_removeRegistryModule_Success() (gas: 54495) +TokenAdminRegistry_removeRegistryModule:test_removeRegistryModule_Success() (gas: 54509) TokenAdminRegistry_setPool:test_setPool_InvalidTokenPoolToken_Revert() (gas: 19166) -TokenAdminRegistry_setPool:test_setPool_OnlyAdministrator_Revert() (gas: 18026) +TokenAdminRegistry_setPool:test_setPool_OnlyAdministrator_Revert() (gas: 18032) TokenAdminRegistry_setPool:test_setPool_Success() (gas: 35961) TokenAdminRegistry_setPool:test_setPool_ZeroAddressRemovesPool_Success() (gas: 30635) -TokenAdminRegistry_transferAdminRole:test_transferAdminRole_OnlyAdministrator_Revert() (gas: 18085) -TokenAdminRegistry_transferAdminRole:test_transferAdminRole_Success() (gas: 49390) -TokenPoolAndProxy:test_lockOrBurn_burnMint_Success() (gas: 5945631) -TokenPoolAndProxy:test_lockOrBurn_burnWithFromMint_Success() (gas: 5977107) -TokenPoolAndProxy:test_lockOrBurn_lockRelease_Success() (gas: 6179838) -TokenPoolAndProxy:test_setPreviousPool_Success() (gas: 3334200) -TokenPoolAndProxyMigration:test_tokenPoolMigration_Success_1_2() (gas: 6792268) -TokenPoolAndProxyMigration:test_tokenPoolMigration_Success_1_4() (gas: 7024950) -TokenPoolWithAllowList_applyAllowListUpdates:test_AllowListNotEnabled_Revert() (gas: 2100002) +TokenAdminRegistry_transferAdminRole:test_transferAdminRole_OnlyAdministrator_Revert() (gas: 18091) +TokenAdminRegistry_transferAdminRole:test_transferAdminRole_Success() (gas: 49402) +TokenPoolAndProxy:test_lockOrBurn_burnMint_Success() (gas: 5855541) +TokenPoolAndProxy:test_lockOrBurn_burnWithFromMint_Success() (gas: 5887014) +TokenPoolAndProxy:test_lockOrBurn_lockRelease_Success() (gas: 6040093) +TokenPoolAndProxy:test_setPreviousPool_Success() (gas: 3214305) +TokenPoolAndProxyMigration:test_tokenPoolMigration_Success_1_2() (gas: 6702515) +TokenPoolAndProxyMigration:test_tokenPoolMigration_Success_1_4() (gas: 6915171) +TokenPoolWithAllowList_applyAllowListUpdates:test_AllowListNotEnabled_Revert() (gas: 2069936) TokenPoolWithAllowList_applyAllowListUpdates:test_OnlyOwner_Revert() (gas: 12101) TokenPoolWithAllowList_applyAllowListUpdates:test_SetAllowListSkipsZero_Success() (gas: 23464) TokenPoolWithAllowList_applyAllowListUpdates:test_SetAllowList_Success() (gas: 177802) @@ -944,42 +944,42 @@ TokenPoolWithAllowList_setRouter:test_SetRouter_Success() (gas: 24843) TokenPool_applyChainUpdates:test_applyChainUpdates_DisabledNonZeroRateLimit_Revert() (gas: 271551) TokenPool_applyChainUpdates:test_applyChainUpdates_InvalidRateLimitRate_Revert() (gas: 542134) TokenPool_applyChainUpdates:test_applyChainUpdates_NonExistentChain_Revert() (gas: 18449) -TokenPool_applyChainUpdates:test_applyChainUpdates_OnlyCallableByOwner_Revert() (gas: 11391) +TokenPool_applyChainUpdates:test_applyChainUpdates_OnlyCallableByOwner_Revert() (gas: 11397) TokenPool_applyChainUpdates:test_applyChainUpdates_Success() (gas: 477675) -TokenPool_applyChainUpdates:test_applyChainUpdates_ZeroAddressNotAllowed_Revert() (gas: 157320) -TokenPool_constructor:test_ZeroAddressNotAllowed_Revert() (gas: 70594) +TokenPool_applyChainUpdates:test_applyChainUpdates_ZeroAddressNotAllowed_Revert() (gas: 157356) +TokenPool_constructor:test_ZeroAddressNotAllowed_Revert() (gas: 70564) TokenPool_constructor:test_immutableFields_Success() (gas: 20544) -TokenPool_getRemotePool:test_getRemotePool_Success() (gas: 274133) -TokenPool_onlyOffRamp:test_CallerIsNotARampOnRouter_Revert() (gas: 277110) -TokenPool_onlyOffRamp:test_ChainNotAllowed_Revert() (gas: 289682) +TokenPool_getRemotePool:test_getRemotePool_Success() (gas: 274145) +TokenPool_onlyOffRamp:test_CallerIsNotARampOnRouter_Revert() (gas: 277116) +TokenPool_onlyOffRamp:test_ChainNotAllowed_Revert() (gas: 289701) TokenPool_onlyOffRamp:test_onlyOffRamp_Success() (gas: 349912) -TokenPool_onlyOnRamp:test_CallerIsNotARampOnRouter_Revert() (gas: 276850) -TokenPool_onlyOnRamp:test_ChainNotAllowed_Revert() (gas: 253710) +TokenPool_onlyOnRamp:test_CallerIsNotARampOnRouter_Revert() (gas: 276856) +TokenPool_onlyOnRamp:test_ChainNotAllowed_Revert() (gas: 253729) TokenPool_onlyOnRamp:test_onlyOnRamp_Success() (gas: 304962) -TokenPool_setChainRateLimiterConfig:test_NonExistentChain_Revert() (gas: 17142) -TokenPool_setChainRateLimiterConfig:test_OnlyOwnerOrRateLimitAdmin_Revert() (gas: 15137) -TokenPool_setRemotePool:test_setRemotePool_NonExistentChain_Reverts() (gas: 15653) -TokenPool_setRemotePool:test_setRemotePool_OnlyOwner_Reverts() (gas: 13201) -TokenPool_setRemotePool:test_setRemotePool_Success() (gas: 282083) -TokenProxy_ccipSend:test_CcipSendGasShouldBeZero_Revert() (gas: 17121) -TokenProxy_ccipSend:test_CcipSendInsufficientAllowance_Revert() (gas: 136330) +TokenPool_setChainRateLimiterConfig:test_NonExistentChain_Revert() (gas: 17148) +TokenPool_setChainRateLimiterConfig:test_OnlyOwnerOrRateLimitAdmin_Revert() (gas: 15149) +TokenPool_setRemotePool:test_setRemotePool_NonExistentChain_Reverts() (gas: 15665) +TokenPool_setRemotePool:test_setRemotePool_OnlyOwner_Reverts() (gas: 13213) +TokenPool_setRemotePool:test_setRemotePool_Success() (gas: 282095) +TokenProxy_ccipSend:test_CcipSendGasShouldBeZero_Revert() (gas: 17127) +TokenProxy_ccipSend:test_CcipSendInsufficientAllowance_Revert() (gas: 136396) TokenProxy_ccipSend:test_CcipSendInvalidToken_Revert() (gas: 15931) -TokenProxy_ccipSend:test_CcipSendNative_Success() (gas: 245419) +TokenProxy_ccipSend:test_CcipSendNative_Success() (gas: 245620) TokenProxy_ccipSend:test_CcipSendNoDataAllowed_Revert() (gas: 16315) -TokenProxy_ccipSend:test_CcipSend_Success() (gas: 261760) +TokenProxy_ccipSend:test_CcipSend_Success() (gas: 261961) TokenProxy_constructor:test_Constructor() (gas: 13812) -TokenProxy_getFee:test_GetFeeGasShouldBeZero_Revert() (gas: 16839) +TokenProxy_getFee:test_GetFeeGasShouldBeZero_Revert() (gas: 16845) TokenProxy_getFee:test_GetFeeInvalidToken_Revert() (gas: 12670) TokenProxy_getFee:test_GetFeeNoDataAllowed_Revert() (gas: 15864) -TokenProxy_getFee:test_GetFee_Success() (gas: 86882) +TokenProxy_getFee:test_GetFee_Success() (gas: 87008) USDCTokenPool__validateMessage:test_ValidateInvalidMessage_Revert() (gas: 25407) -USDCTokenPool_lockOrBurn:test_CallerIsNotARampOnRouter_Revert() (gas: 35364) -USDCTokenPool_lockOrBurn:test_LockOrBurnWithAllowList_Revert() (gas: 30106) -USDCTokenPool_lockOrBurn:test_LockOrBurn_Success() (gas: 133143) -USDCTokenPool_lockOrBurn:test_UnknownDomain_Revert() (gas: 477468) -USDCTokenPool_releaseOrMint:test_ReleaseOrMintRealTx_Success() (gas: 268219) -USDCTokenPool_releaseOrMint:test_TokenMaxCapacityExceeded_Revert() (gas: 50718) -USDCTokenPool_releaseOrMint:test_UnlockingUSDCFailed_Revert() (gas: 98636) -USDCTokenPool_setDomains:test_InvalidDomain_Revert() (gas: 66174) -USDCTokenPool_setDomains:test_OnlyOwner_Revert() (gas: 11339) -USDCTokenPool_supportsInterface:test_SupportsInterface_Success() (gas: 9876) \ No newline at end of file +USDCTokenPool_lockOrBurn:test_CallerIsNotARampOnRouter_Revert() (gas: 35376) +USDCTokenPool_lockOrBurn:test_LockOrBurnWithAllowList_Revert() (gas: 30112) +USDCTokenPool_lockOrBurn:test_LockOrBurn_Success() (gas: 133148) +USDCTokenPool_lockOrBurn:test_UnknownDomain_Revert() (gas: 477486) +USDCTokenPool_releaseOrMint:test_ReleaseOrMintRealTx_Success() (gas: 268238) +USDCTokenPool_releaseOrMint:test_TokenMaxCapacityExceeded_Revert() (gas: 50724) +USDCTokenPool_releaseOrMint:test_UnlockingUSDCFailed_Revert() (gas: 98642) +USDCTokenPool_setDomains:test_InvalidDomain_Revert() (gas: 66189) +USDCTokenPool_setDomains:test_OnlyOwner_Revert() (gas: 11345) +USDCTokenPool_supportsInterface:test_SupportsInterface_Success() (gas: 9888) \ No newline at end of file From e1c2bfd2c09f058560738c6171119665f56ef359 Mon Sep 17 00:00:00 2001 From: Ryan <80392855+RayXpub@users.noreply.github.com> Date: Thu, 12 Sep 2024 09:11:30 +0400 Subject: [PATCH 10/19] chore: revert cache var --- contracts/gas-snapshots/ccip.gas-snapshot | 1440 ++++++++--------- contracts/src/v0.8/ccip/offRamp/OffRamp.sol | 5 +- .../ccip/generated/offramp/offramp.go | 4 +- ...rapper-dependency-versions-do-not-edit.txt | 2 +- 4 files changed, 725 insertions(+), 726 deletions(-) diff --git a/contracts/gas-snapshots/ccip.gas-snapshot b/contracts/gas-snapshots/ccip.gas-snapshot index e6596d9f3c..0f4af029d0 100644 --- a/contracts/gas-snapshots/ccip.gas-snapshot +++ b/contracts/gas-snapshots/ccip.gas-snapshot @@ -2,259 +2,259 @@ ARMProxyStandaloneTest:test_ARMCallEmptyContractRevert() (gas: 19675) ARMProxyStandaloneTest:test_Constructor() (gas: 315049) ARMProxyStandaloneTest:test_SetARM() (gas: 16581) ARMProxyStandaloneTest:test_SetARMzero() (gas: 11267) -ARMProxyTest:test_ARMCallRevertReasonForwarded() (gas: 47868) -ARMProxyTest:test_ARMIsBlessed_Success() (gas: 36334) +ARMProxyTest:test_ARMCallRevertReasonForwarded() (gas: 47874) +ARMProxyTest:test_ARMIsBlessed_Success() (gas: 36353) ARMProxyTest:test_ARMIsCursed_Success() (gas: 49833) -AggregateTokenLimiter_constructor:test_Constructor_Success() (gas: 26992) -AggregateTokenLimiter_getTokenBucket:test_GetTokenBucket_Success() (gas: 19835) -AggregateTokenLimiter_getTokenBucket:test_Refill_Success() (gas: 41499) -AggregateTokenLimiter_getTokenBucket:test_TimeUnderflow_Revert() (gas: 15446) +AggregateTokenLimiter_constructor:test_Constructor_Success() (gas: 26998) +AggregateTokenLimiter_getTokenBucket:test_GetTokenBucket_Success() (gas: 19841) +AggregateTokenLimiter_getTokenBucket:test_Refill_Success() (gas: 41523) +AggregateTokenLimiter_getTokenBucket:test_TimeUnderflow_Revert() (gas: 15452) AggregateTokenLimiter_getTokenLimitAdmin:test_GetTokenLimitAdmin_Success() (gas: 10531) -AggregateTokenLimiter_getTokenValue:test_GetTokenValue_Success() (gas: 19652) -AggregateTokenLimiter_getTokenValue:test_NoTokenPrice_Reverts() (gas: 21237) -AggregateTokenLimiter_rateLimitValue:test_AggregateValueMaxCapacityExceeded_Revert() (gas: 16508) -AggregateTokenLimiter_rateLimitValue:test_RateLimitValueSuccess_gas() (gas: 18348) -AggregateTokenLimiter_setAdmin:test_OnlyOwnerOrAdmin_Revert() (gas: 13054) +AggregateTokenLimiter_getTokenValue:test_GetTokenValue_Success() (gas: 19658) +AggregateTokenLimiter_getTokenValue:test_NoTokenPrice_Reverts() (gas: 21243) +AggregateTokenLimiter_rateLimitValue:test_AggregateValueMaxCapacityExceeded_Revert() (gas: 16520) +AggregateTokenLimiter_rateLimitValue:test_RateLimitValueSuccess_gas() (gas: 18354) +AggregateTokenLimiter_setAdmin:test_OnlyOwnerOrAdmin_Revert() (gas: 13066) AggregateTokenLimiter_setAdmin:test_Owner_Success() (gas: 18998) -AggregateTokenLimiter_setRateLimiterConfig:test_OnlyOnlyCallableByAdminOrOwner_Revert() (gas: 17510) -AggregateTokenLimiter_setRateLimiterConfig:test_Owner_Success() (gas: 30230) -AggregateTokenLimiter_setRateLimiterConfig:test_TokenLimitAdmin_Success() (gas: 32244) -BurnFromMintTokenPool_lockOrBurn:test_ChainNotAllowed_Revert() (gas: 28779) -BurnFromMintTokenPool_lockOrBurn:test_PoolBurnRevertNotHealthy_Revert() (gas: 55124) -BurnFromMintTokenPool_lockOrBurn:test_PoolBurn_Success() (gas: 243680) +AggregateTokenLimiter_setRateLimiterConfig:test_OnlyOnlyCallableByAdminOrOwner_Revert() (gas: 17522) +AggregateTokenLimiter_setRateLimiterConfig:test_Owner_Success() (gas: 30249) +AggregateTokenLimiter_setRateLimiterConfig:test_TokenLimitAdmin_Success() (gas: 32263) +BurnFromMintTokenPool_lockOrBurn:test_ChainNotAllowed_Revert() (gas: 28791) +BurnFromMintTokenPool_lockOrBurn:test_PoolBurnRevertNotHealthy_Revert() (gas: 55142) +BurnFromMintTokenPool_lockOrBurn:test_PoolBurn_Success() (gas: 243690) BurnFromMintTokenPool_lockOrBurn:test_Setup_Success() (gas: 23947) -BurnMintTokenPool_lockOrBurn:test_ChainNotAllowed_Revert() (gas: 27546) -BurnMintTokenPool_lockOrBurn:test_PoolBurnRevertNotHealthy_Revert() (gas: 55130) -BurnMintTokenPool_lockOrBurn:test_PoolBurn_Success() (gas: 241573) +BurnMintTokenPool_lockOrBurn:test_ChainNotAllowed_Revert() (gas: 27558) +BurnMintTokenPool_lockOrBurn:test_PoolBurnRevertNotHealthy_Revert() (gas: 55142) +BurnMintTokenPool_lockOrBurn:test_PoolBurn_Success() (gas: 241578) BurnMintTokenPool_lockOrBurn:test_Setup_Success() (gas: 17677) -BurnMintTokenPool_releaseOrMint:test_ChainNotAllowed_Revert() (gas: 28775) -BurnMintTokenPool_releaseOrMint:test_PoolMintNotHealthy_Revert() (gas: 56211) -BurnMintTokenPool_releaseOrMint:test_PoolMint_Success() (gas: 112343) -BurnWithFromMintTokenPool_lockOrBurn:test_ChainNotAllowed_Revert() (gas: 28779) -BurnWithFromMintTokenPool_lockOrBurn:test_PoolBurnRevertNotHealthy_Revert() (gas: 55124) -BurnWithFromMintTokenPool_lockOrBurn:test_PoolBurn_Success() (gas: 243707) +BurnMintTokenPool_releaseOrMint:test_ChainNotAllowed_Revert() (gas: 28787) +BurnMintTokenPool_releaseOrMint:test_PoolMintNotHealthy_Revert() (gas: 56223) +BurnMintTokenPool_releaseOrMint:test_PoolMint_Success() (gas: 112349) +BurnWithFromMintTokenPool_lockOrBurn:test_ChainNotAllowed_Revert() (gas: 28791) +BurnWithFromMintTokenPool_lockOrBurn:test_PoolBurnRevertNotHealthy_Revert() (gas: 55142) +BurnWithFromMintTokenPool_lockOrBurn:test_PoolBurn_Success() (gas: 243716) BurnWithFromMintTokenPool_lockOrBurn:test_Setup_Success() (gas: 23951) -CCIPClientExample_sanity:test_ImmutableExamples_Success() (gas: 2096747) +CCIPClientExample_sanity:test_ImmutableExamples_Success() (gas: 2097548) CCIPConfigSetup:test_getCapabilityConfiguration_Success() (gas: 9539) -CCIPConfig_ConfigStateMachine:test__computeConfigDigest_Success() (gas: 66000) -CCIPConfig_ConfigStateMachine:test__computeNewConfigWithMeta_InitToRunning_Success() (gas: 358041) -CCIPConfig_ConfigStateMachine:test__computeNewConfigWithMeta_RunningToStaging_Success() (gas: 474705) -CCIPConfig_ConfigStateMachine:test__computeNewConfigWithMeta_StagingToRunning_Success() (gas: 441908) -CCIPConfig_ConfigStateMachine:test__groupByPluginType_TooManyOCR3Configs_Reverts() (gas: 33848) -CCIPConfig_ConfigStateMachine:test__groupByPluginType_threeCommitConfigs_Reverts() (gas: 56914) -CCIPConfig_ConfigStateMachine:test__groupByPluginType_threeExecutionConfigs_Reverts() (gas: 56852) +CCIPConfig_ConfigStateMachine:test__computeConfigDigest_Success() (gas: 66156) +CCIPConfig_ConfigStateMachine:test__computeNewConfigWithMeta_InitToRunning_Success() (gas: 358893) +CCIPConfig_ConfigStateMachine:test__computeNewConfigWithMeta_RunningToStaging_Success() (gas: 476337) +CCIPConfig_ConfigStateMachine:test__computeNewConfigWithMeta_StagingToRunning_Success() (gas: 443036) +CCIPConfig_ConfigStateMachine:test__groupByPluginType_TooManyOCR3Configs_Reverts() (gas: 34154) +CCIPConfig_ConfigStateMachine:test__groupByPluginType_threeCommitConfigs_Reverts() (gas: 57226) +CCIPConfig_ConfigStateMachine:test__groupByPluginType_threeExecutionConfigs_Reverts() (gas: 57164) CCIPConfig_ConfigStateMachine:test__stateFromConfigLength_Success() (gas: 11719) CCIPConfig_ConfigStateMachine:test__validateConfigStateTransition_Success() (gas: 8849) -CCIPConfig_ConfigStateMachine:test__validateConfigTransition_InitToRunning_Success() (gas: 309722) -CCIPConfig_ConfigStateMachine:test__validateConfigTransition_InitToRunning_WrongConfigCount_Reverts() (gas: 45865) -CCIPConfig_ConfigStateMachine:test__validateConfigTransition_NonExistentConfigTransition_Reverts() (gas: 29690) -CCIPConfig_ConfigStateMachine:test__validateConfigTransition_RunningToStaging_Success() (gas: 370009) -CCIPConfig_ConfigStateMachine:test__validateConfigTransition_RunningToStaging_WrongConfigCount_Reverts() (gas: 111376) -CCIPConfig_ConfigStateMachine:test__validateConfigTransition_RunningToStaging_WrongConfigDigestBlueGreen_Reverts() (gas: 145446) -CCIPConfig_ConfigStateMachine:test__validateConfigTransition_StagingToRunning_Success() (gas: 369785) -CCIPConfig_ConfigStateMachine:test__validateConfigTransition_StagingToRunning_WrongConfigDigest_Reverts() (gas: 145513) -CCIPConfig_ConfigStateMachine:test_getCapabilityConfiguration_Success() (gas: 9627) -CCIPConfig_beforeCapabilityConfigSet:test_beforeCapabilityConfigSet_CommitAndExecConfig_Success() (gas: 1790808) -CCIPConfig_beforeCapabilityConfigSet:test_beforeCapabilityConfigSet_CommitConfigOnly_Success() (gas: 1038239) -CCIPConfig_beforeCapabilityConfigSet:test_beforeCapabilityConfigSet_ExecConfigOnly_Success() (gas: 1038270) +CCIPConfig_ConfigStateMachine:test__validateConfigTransition_InitToRunning_Success() (gas: 310010) +CCIPConfig_ConfigStateMachine:test__validateConfigTransition_InitToRunning_WrongConfigCount_Reverts() (gas: 46015) +CCIPConfig_ConfigStateMachine:test__validateConfigTransition_NonExistentConfigTransition_Reverts() (gas: 29840) +CCIPConfig_ConfigStateMachine:test__validateConfigTransition_RunningToStaging_Success() (gas: 370477) +CCIPConfig_ConfigStateMachine:test__validateConfigTransition_RunningToStaging_WrongConfigCount_Reverts() (gas: 111736) +CCIPConfig_ConfigStateMachine:test__validateConfigTransition_RunningToStaging_WrongConfigDigestBlueGreen_Reverts() (gas: 145866) +CCIPConfig_ConfigStateMachine:test__validateConfigTransition_StagingToRunning_Success() (gas: 370253) +CCIPConfig_ConfigStateMachine:test__validateConfigTransition_StagingToRunning_WrongConfigDigest_Reverts() (gas: 145933) +CCIPConfig_ConfigStateMachine:test_getCapabilityConfiguration_Success() (gas: 9663) +CCIPConfig_beforeCapabilityConfigSet:test_beforeCapabilityConfigSet_CommitAndExecConfig_Success() (gas: 1790958) +CCIPConfig_beforeCapabilityConfigSet:test_beforeCapabilityConfigSet_CommitConfigOnly_Success() (gas: 1038383) +CCIPConfig_beforeCapabilityConfigSet:test_beforeCapabilityConfigSet_ExecConfigOnly_Success() (gas: 1038420) CCIPConfig_beforeCapabilityConfigSet:test_beforeCapabilityConfigSet_OnlyCapabilitiesRegistryCanCall_Reverts() (gas: 9611) -CCIPConfig_beforeCapabilityConfigSet:test_beforeCapabilityConfigSet_ZeroLengthConfig_Success() (gas: 15996) +CCIPConfig_beforeCapabilityConfigSet:test_beforeCapabilityConfigSet_ZeroLengthConfig_Success() (gas: 16008) CCIPConfig_beforeCapabilityConfigSet:test_getCapabilityConfiguration_Success() (gas: 9627) -CCIPConfig_chainConfig:test__applyChainConfigUpdates_FChainNotPositive_Reverts() (gas: 184771) +CCIPConfig_chainConfig:test__applyChainConfigUpdates_FChainNotPositive_Reverts() (gas: 184777) CCIPConfig_chainConfig:test_applyChainConfigUpdates_addChainConfigs_Success() (gas: 346687) -CCIPConfig_chainConfig:test_applyChainConfigUpdates_nodeNotInRegistry_Reverts() (gas: 20340) +CCIPConfig_chainConfig:test_applyChainConfigUpdates_nodeNotInRegistry_Reverts() (gas: 20346) CCIPConfig_chainConfig:test_applyChainConfigUpdates_removeChainConfigs_Success() (gas: 270334) -CCIPConfig_chainConfig:test_applyChainConfigUpdates_selectorNotFound_Reverts() (gas: 14819) +CCIPConfig_chainConfig:test_applyChainConfigUpdates_selectorNotFound_Reverts() (gas: 14825) CCIPConfig_chainConfig:test_getCapabilityConfiguration_Success() (gas: 9648) -CCIPConfig_chainConfig:test_getPaginatedCCIPConfigs_Success() (gas: 370293) -CCIPConfig_constructor:test_constructor_Success() (gas: 3363163) -CCIPConfig_constructor:test_constructor_ZeroAddressNotAllowed_Revert() (gas: 61471) +CCIPConfig_chainConfig:test_getPaginatedCCIPConfigs_Success() (gas: 370299) +CCIPConfig_constructor:test_constructor_Success() (gas: 3333086) +CCIPConfig_constructor:test_constructor_ZeroAddressNotAllowed_Revert() (gas: 61438) CCIPConfig_updatePluginConfig:test__updatePluginConfig_InvalidConfigLength_Reverts() (gas: 25819) -CCIPConfig_updatePluginConfig:test__updatePluginConfig_InvalidConfigStateTransition_Reverts() (gas: 21913) +CCIPConfig_updatePluginConfig:test__updatePluginConfig_InvalidConfigStateTransition_Reverts() (gas: 21919) CCIPConfig_updatePluginConfig:test_getCapabilityConfiguration_Success() (gas: 9649) -CCIPConfig_updatePluginConfig:test_updatePluginConfig_InitToRunning_Success() (gas: 1087677) -CCIPConfig_updatePluginConfig:test_updatePluginConfig_RunningToStaging_Success() (gas: 2032286) -CCIPConfig_updatePluginConfig:test_updatePluginConfig_StagingToRunning_Success() (gas: 2032320) -CCIPConfig_validateConfig:test__validateConfig_ABIEncodedAddress_OfframpAddressCannotBeZero_Reverts() (gas: 290828) -CCIPConfig_validateConfig:test__validateConfig_ChainSelectorNotFound_Reverts() (gas: 293559) -CCIPConfig_validateConfig:test__validateConfig_ChainSelectorNotSet_Reverts() (gas: 290461) -CCIPConfig_validateConfig:test__validateConfig_FMustBePositive_Reverts() (gas: 291668) -CCIPConfig_validateConfig:test__validateConfig_FTooHigh_Reverts() (gas: 291766) -CCIPConfig_validateConfig:test__validateConfig_NodeNotInRegistry_Reverts() (gas: 344947) -CCIPConfig_validateConfig:test__validateConfig_NotEnoughTransmitters_Reverts() (gas: 1208593) -CCIPConfig_validateConfig:test__validateConfig_OfframpAddressCannotBeZero_Reverts() (gas: 290544) -CCIPConfig_validateConfig:test__validateConfig_P2PIdsLengthNotMatching_Reverts() (gas: 292459) -CCIPConfig_validateConfig:test__validateConfig_Success() (gas: 299632) -CCIPConfig_validateConfig:test__validateConfig_TooManySigners_Reverts() (gas: 493084) +CCIPConfig_updatePluginConfig:test_updatePluginConfig_InitToRunning_Success() (gas: 1087725) +CCIPConfig_updatePluginConfig:test_updatePluginConfig_RunningToStaging_Success() (gas: 2032324) +CCIPConfig_updatePluginConfig:test_updatePluginConfig_StagingToRunning_Success() (gas: 2032358) +CCIPConfig_validateConfig:test__validateConfig_ABIEncodedAddress_OfframpAddressCannotBeZero_Reverts() (gas: 290870) +CCIPConfig_validateConfig:test__validateConfig_ChainSelectorNotFound_Reverts() (gas: 293601) +CCIPConfig_validateConfig:test__validateConfig_ChainSelectorNotSet_Reverts() (gas: 290497) +CCIPConfig_validateConfig:test__validateConfig_FMustBePositive_Reverts() (gas: 291704) +CCIPConfig_validateConfig:test__validateConfig_FTooHigh_Reverts() (gas: 291802) +CCIPConfig_validateConfig:test__validateConfig_NodeNotInRegistry_Reverts() (gas: 345019) +CCIPConfig_validateConfig:test__validateConfig_NotEnoughTransmitters_Reverts() (gas: 1209247) +CCIPConfig_validateConfig:test__validateConfig_OfframpAddressCannotBeZero_Reverts() (gas: 290586) +CCIPConfig_validateConfig:test__validateConfig_P2PIdsLengthNotMatching_Reverts() (gas: 292495) +CCIPConfig_validateConfig:test__validateConfig_Success() (gas: 299668) +CCIPConfig_validateConfig:test__validateConfig_TooManySigners_Reverts() (gas: 493120) CCIPConfig_validateConfig:test_getCapabilityConfiguration_Success() (gas: 9606) -CommitStore_constructor:test_Constructor_Success() (gas: 3013980) -CommitStore_isUnpausedAndRMNHealthy:test_RMN_Success() (gas: 73477) -CommitStore_report:test_InvalidIntervalMinLargerThanMax_Revert() (gas: 28676) -CommitStore_report:test_InvalidInterval_Revert() (gas: 28616) -CommitStore_report:test_InvalidRootRevert() (gas: 27849) -CommitStore_report:test_OnlyGasPriceUpdates_Success() (gas: 53290) -CommitStore_report:test_OnlyPriceUpdateStaleReport_Revert() (gas: 59092) -CommitStore_report:test_OnlyTokenPriceUpdates_Success() (gas: 53288) -CommitStore_report:test_Paused_Revert() (gas: 21262) -CommitStore_report:test_ReportAndPriceUpdate_Success() (gas: 84276) -CommitStore_report:test_ReportOnlyRootSuccess_gas() (gas: 56258) -CommitStore_report:test_RootAlreadyCommitted_Revert() (gas: 63984) -CommitStore_report:test_StaleReportWithRoot_Success() (gas: 119350) -CommitStore_report:test_Unhealthy_Revert() (gas: 44754) -CommitStore_report:test_ValidPriceUpdateThenStaleReportWithRoot_Success() (gas: 100760) -CommitStore_report:test_ZeroEpochAndRound_Revert() (gas: 27632) -CommitStore_resetUnblessedRoots:test_OnlyOwner_Revert() (gas: 11331) -CommitStore_resetUnblessedRoots:test_ResetUnblessedRoots_Success() (gas: 143814) +CommitStore_constructor:test_Constructor_Success() (gas: 2973887) +CommitStore_isUnpausedAndRMNHealthy:test_RMN_Success() (gas: 73567) +CommitStore_report:test_InvalidIntervalMinLargerThanMax_Revert() (gas: 28688) +CommitStore_report:test_InvalidInterval_Revert() (gas: 28628) +CommitStore_report:test_InvalidRootRevert() (gas: 27861) +CommitStore_report:test_OnlyGasPriceUpdates_Success() (gas: 53302) +CommitStore_report:test_OnlyPriceUpdateStaleReport_Revert() (gas: 59122) +CommitStore_report:test_OnlyTokenPriceUpdates_Success() (gas: 53300) +CommitStore_report:test_Paused_Revert() (gas: 21280) +CommitStore_report:test_ReportAndPriceUpdate_Success() (gas: 84288) +CommitStore_report:test_ReportOnlyRootSuccess_gas() (gas: 56270) +CommitStore_report:test_RootAlreadyCommitted_Revert() (gas: 64008) +CommitStore_report:test_StaleReportWithRoot_Success() (gas: 119386) +CommitStore_report:test_Unhealthy_Revert() (gas: 44766) +CommitStore_report:test_ValidPriceUpdateThenStaleReportWithRoot_Success() (gas: 100790) +CommitStore_report:test_ZeroEpochAndRound_Revert() (gas: 27650) +CommitStore_resetUnblessedRoots:test_OnlyOwner_Revert() (gas: 11337) +CommitStore_resetUnblessedRoots:test_ResetUnblessedRoots_Success() (gas: 143871) CommitStore_setDynamicConfig:test_InvalidCommitStoreConfig_Revert() (gas: 37263) CommitStore_setDynamicConfig:test_OnlyOwner_Revert() (gas: 37405) CommitStore_setDynamicConfig:test_PriceEpochCleared_Success() (gas: 129131) -CommitStore_setLatestPriceEpochAndRound:test_OnlyOwner_Revert() (gas: 11054) -CommitStore_setLatestPriceEpochAndRound:test_SetLatestPriceEpochAndRound_Success() (gas: 20645) -CommitStore_setMinSeqNr:test_OnlyOwner_Revert() (gas: 11053) -CommitStore_verify:test_Blessed_Success() (gas: 96452) -CommitStore_verify:test_NotBlessed_Success() (gas: 61398) -CommitStore_verify:test_Paused_Revert() (gas: 18505) -CommitStore_verify:test_TooManyLeaves_Revert() (gas: 36797) -DefensiveExampleTest:test_HappyPath_Success() (gas: 200047) -DefensiveExampleTest:test_Recovery() (gas: 424294) -E2E:test_E2E_3MessagesSuccess_gas() (gas: 1101745) -EVM2EVMOffRamp__releaseOrMintToken:test__releaseOrMintToken_NotACompatiblePool_Revert() (gas: 37818) -EVM2EVMOffRamp__releaseOrMintToken:test__releaseOrMintToken_Success() (gas: 103820) -EVM2EVMOffRamp__releaseOrMintToken:test__releaseOrMintToken_TokenHandlingError_transfer_Revert() (gas: 85333) -EVM2EVMOffRamp__releaseOrMintToken:test_releaseOrMintToken_InvalidDataLength_Revert() (gas: 36843) -EVM2EVMOffRamp__releaseOrMintToken:test_releaseOrMintToken_ReleaseOrMintBalanceMismatch_Revert() (gas: 94389) -EVM2EVMOffRamp__releaseOrMintToken:test_releaseOrMintToken_TokenHandlingError_BalanceOf_Revert() (gas: 39813) -EVM2EVMOffRamp__releaseOrMintToken:test_releaseOrMintToken_skip_ReleaseOrMintBalanceMismatch_if_pool_Revert() (gas: 86631) -EVM2EVMOffRamp__releaseOrMintTokens:test_OverValueWithARLOff_Success() (gas: 385690) -EVM2EVMOffRamp__releaseOrMintTokens:test_PriceNotFoundForToken_Reverts() (gas: 141997) -EVM2EVMOffRamp__releaseOrMintTokens:test_RateLimitErrors_Reverts() (gas: 804041) -EVM2EVMOffRamp__releaseOrMintTokens:test_TokenHandlingError_Reverts() (gas: 179438) -EVM2EVMOffRamp__releaseOrMintTokens:test__releaseOrMintTokens_NotACompatiblePool_Reverts() (gas: 29243) -EVM2EVMOffRamp__releaseOrMintTokens:test_releaseOrMintTokens_InvalidDataLengthReturnData_Revert() (gas: 66504) -EVM2EVMOffRamp__releaseOrMintTokens:test_releaseOrMintTokens_InvalidEVMAddress_Revert() (gas: 43320) -EVM2EVMOffRamp__releaseOrMintTokens:test_releaseOrMintTokens_Success() (gas: 211236) -EVM2EVMOffRamp__releaseOrMintTokens:test_releaseOrMintTokens_destDenominatedDecimals_Success() (gas: 222488) -EVM2EVMOffRamp__report:test_Report_Success() (gas: 126703) -EVM2EVMOffRamp__trialExecute:test_RateLimitError_Success() (gas: 237982) -EVM2EVMOffRamp__trialExecute:test_TokenHandlingErrorIsCaught_Success() (gas: 246582) -EVM2EVMOffRamp__trialExecute:test_TokenPoolIsNotAContract_Success() (gas: 330144) -EVM2EVMOffRamp__trialExecute:test_trialExecute_Success() (gas: 312575) +CommitStore_setLatestPriceEpochAndRound:test_OnlyOwner_Revert() (gas: 11060) +CommitStore_setLatestPriceEpochAndRound:test_SetLatestPriceEpochAndRound_Success() (gas: 20651) +CommitStore_setMinSeqNr:test_OnlyOwner_Revert() (gas: 11059) +CommitStore_verify:test_Blessed_Success() (gas: 96485) +CommitStore_verify:test_NotBlessed_Success() (gas: 61422) +CommitStore_verify:test_Paused_Revert() (gas: 18529) +CommitStore_verify:test_TooManyLeaves_Revert() (gas: 36809) +DefensiveExampleTest:test_HappyPath_Success() (gas: 200052) +DefensiveExampleTest:test_Recovery() (gas: 424299) +E2E:test_E2E_3MessagesSuccess_gas() (gas: 1103419) +EVM2EVMOffRamp__releaseOrMintToken:test__releaseOrMintToken_NotACompatiblePool_Revert() (gas: 37854) +EVM2EVMOffRamp__releaseOrMintToken:test__releaseOrMintToken_Success() (gas: 104060) +EVM2EVMOffRamp__releaseOrMintToken:test__releaseOrMintToken_TokenHandlingError_transfer_Revert() (gas: 85597) +EVM2EVMOffRamp__releaseOrMintToken:test_releaseOrMintToken_InvalidDataLength_Revert() (gas: 37068) +EVM2EVMOffRamp__releaseOrMintToken:test_releaseOrMintToken_ReleaseOrMintBalanceMismatch_Revert() (gas: 94629) +EVM2EVMOffRamp__releaseOrMintToken:test_releaseOrMintToken_TokenHandlingError_BalanceOf_Revert() (gas: 40050) +EVM2EVMOffRamp__releaseOrMintToken:test_releaseOrMintToken_skip_ReleaseOrMintBalanceMismatch_if_pool_Revert() (gas: 86871) +EVM2EVMOffRamp__releaseOrMintTokens:test_OverValueWithARLOff_Success() (gas: 386248) +EVM2EVMOffRamp__releaseOrMintTokens:test_PriceNotFoundForToken_Reverts() (gas: 142243) +EVM2EVMOffRamp__releaseOrMintTokens:test_RateLimitErrors_Reverts() (gas: 805427) +EVM2EVMOffRamp__releaseOrMintTokens:test_TokenHandlingError_Reverts() (gas: 179714) +EVM2EVMOffRamp__releaseOrMintTokens:test__releaseOrMintTokens_NotACompatiblePool_Reverts() (gas: 29249) +EVM2EVMOffRamp__releaseOrMintTokens:test_releaseOrMintTokens_InvalidDataLengthReturnData_Revert() (gas: 66741) +EVM2EVMOffRamp__releaseOrMintTokens:test_releaseOrMintTokens_InvalidEVMAddress_Revert() (gas: 43332) +EVM2EVMOffRamp__releaseOrMintTokens:test_releaseOrMintTokens_Success() (gas: 211512) +EVM2EVMOffRamp__releaseOrMintTokens:test_releaseOrMintTokens_destDenominatedDecimals_Success() (gas: 222764) +EVM2EVMOffRamp__report:test_Report_Success() (gas: 126727) +EVM2EVMOffRamp__trialExecute:test_RateLimitError_Success() (gas: 238264) +EVM2EVMOffRamp__trialExecute:test_TokenHandlingErrorIsCaught_Success() (gas: 246864) +EVM2EVMOffRamp__trialExecute:test_TokenPoolIsNotAContract_Success() (gas: 330450) +EVM2EVMOffRamp__trialExecute:test_trialExecute_Success() (gas: 312875) EVM2EVMOffRamp_ccipReceive:test_Reverts() (gas: 17033) -EVM2EVMOffRamp_constructor:test_CommitStoreAlreadyInUse_Revert() (gas: 153548) -EVM2EVMOffRamp_constructor:test_Constructor_Success() (gas: 5549627) -EVM2EVMOffRamp_constructor:test_ZeroOnRampAddress_Revert() (gas: 144282) -EVM2EVMOffRamp_execute:test_EmptyReport_Revert() (gas: 21321) -EVM2EVMOffRamp_execute:test_InvalidMessageId_Revert() (gas: 36558) -EVM2EVMOffRamp_execute:test_InvalidSourceChain_Revert() (gas: 51775) -EVM2EVMOffRamp_execute:test_InvalidSourcePoolAddress_Success() (gas: 473981) -EVM2EVMOffRamp_execute:test_ManualExecutionNotYetEnabled_Revert() (gas: 47830) +EVM2EVMOffRamp_constructor:test_CommitStoreAlreadyInUse_Revert() (gas: 153451) +EVM2EVMOffRamp_constructor:test_Constructor_Success() (gas: 5479225) +EVM2EVMOffRamp_constructor:test_ZeroOnRampAddress_Revert() (gas: 144185) +EVM2EVMOffRamp_execute:test_EmptyReport_Revert() (gas: 21354) +EVM2EVMOffRamp_execute:test_InvalidMessageId_Revert() (gas: 36591) +EVM2EVMOffRamp_execute:test_InvalidSourceChain_Revert() (gas: 51808) +EVM2EVMOffRamp_execute:test_InvalidSourcePoolAddress_Success() (gas: 474545) +EVM2EVMOffRamp_execute:test_ManualExecutionNotYetEnabled_Revert() (gas: 47902) EVM2EVMOffRamp_execute:test_MessageTooLarge_Revert() (gas: 152518) -EVM2EVMOffRamp_execute:test_Paused_Revert() (gas: 103046) -EVM2EVMOffRamp_execute:test_ReceiverError_Success() (gas: 164107) -EVM2EVMOffRamp_execute:test_RetryFailedMessageWithoutManualExecution_Success() (gas: 178568) -EVM2EVMOffRamp_execute:test_RootNotCommitted_Revert() (gas: 42701) -EVM2EVMOffRamp_execute:test_SingleMessageNoTokensUnordered_Success() (gas: 157899) -EVM2EVMOffRamp_execute:test_SingleMessageNoTokens_Success() (gas: 173184) -EVM2EVMOffRamp_execute:test_SingleMessageToNonCCIPReceiver_Success() (gas: 247246) -EVM2EVMOffRamp_execute:test_SingleMessagesNoTokensSuccess_gas() (gas: 113971) -EVM2EVMOffRamp_execute:test_SkippedIncorrectNonceStillExecutes_Success() (gas: 408103) +EVM2EVMOffRamp_execute:test_Paused_Revert() (gas: 103079) +EVM2EVMOffRamp_execute:test_ReceiverError_Success() (gas: 164230) +EVM2EVMOffRamp_execute:test_RetryFailedMessageWithoutManualExecution_Success() (gas: 178625) +EVM2EVMOffRamp_execute:test_RootNotCommitted_Revert() (gas: 42773) +EVM2EVMOffRamp_execute:test_SingleMessageNoTokensUnordered_Success() (gas: 158079) +EVM2EVMOffRamp_execute:test_SingleMessageNoTokens_Success() (gas: 173331) +EVM2EVMOffRamp_execute:test_SingleMessageToNonCCIPReceiver_Success() (gas: 237073) +EVM2EVMOffRamp_execute:test_SingleMessagesNoTokensSuccess_gas() (gas: 113995) +EVM2EVMOffRamp_execute:test_SkippedIncorrectNonceStillExecutes_Success() (gas: 408436) EVM2EVMOffRamp_execute:test_SkippedIncorrectNonce_Success() (gas: 54294) -EVM2EVMOffRamp_execute:test_StrictUntouchedToSuccess_Success() (gas: 131317) +EVM2EVMOffRamp_execute:test_StrictUntouchedToSuccess_Success() (gas: 131440) EVM2EVMOffRamp_execute:test_TokenDataMismatch_Revert() (gas: 52249) -EVM2EVMOffRamp_execute:test_TwoMessagesWithTokensAndGE_Success() (gas: 564401) -EVM2EVMOffRamp_execute:test_TwoMessagesWithTokensSuccess_gas() (gas: 494916) -EVM2EVMOffRamp_execute:test_UnexpectedTokenData_Revert() (gas: 35497) -EVM2EVMOffRamp_execute:test_Unhealthy_Revert() (gas: 545666) +EVM2EVMOffRamp_execute:test_TwoMessagesWithTokensAndGE_Success() (gas: 565133) +EVM2EVMOffRamp_execute:test_TwoMessagesWithTokensSuccess_gas() (gas: 495516) +EVM2EVMOffRamp_execute:test_UnexpectedTokenData_Revert() (gas: 35530) +EVM2EVMOffRamp_execute:test_Unhealthy_Revert() (gas: 546311) EVM2EVMOffRamp_execute:test_UnsupportedNumberOfTokens_Revert() (gas: 64497) -EVM2EVMOffRamp_execute:test__execute_SkippedAlreadyExecutedMessageUnordered_Success() (gas: 122676) -EVM2EVMOffRamp_execute:test__execute_SkippedAlreadyExecutedMessage_Success() (gas: 142850) -EVM2EVMOffRamp_execute:test_execute_RouterYULCall_Success() (gas: 427538) +EVM2EVMOffRamp_execute:test__execute_SkippedAlreadyExecutedMessageUnordered_Success() (gas: 122733) +EVM2EVMOffRamp_execute:test__execute_SkippedAlreadyExecutedMessage_Success() (gas: 142907) +EVM2EVMOffRamp_execute:test_execute_RouterYULCall_Success() (gas: 427595) EVM2EVMOffRamp_executeSingleMessage:test_MessageSender_Revert() (gas: 18502) -EVM2EVMOffRamp_executeSingleMessage:test_NonContractWithTokens_Success() (gas: 278362) +EVM2EVMOffRamp_executeSingleMessage:test_NonContractWithTokens_Success() (gas: 278638) EVM2EVMOffRamp_executeSingleMessage:test_NonContract_Success() (gas: 18668) -EVM2EVMOffRamp_executeSingleMessage:test_TokenHandlingError_Revert() (gas: 224109) -EVM2EVMOffRamp_executeSingleMessage:test_ZeroGasDONExecution_Revert() (gas: 47926) -EVM2EVMOffRamp_executeSingleMessage:test_executeSingleMessage_NoTokens_Success() (gas: 47403) -EVM2EVMOffRamp_executeSingleMessage:test_executeSingleMessage_WithTokens_Success() (gas: 314224) -EVM2EVMOffRamp_executeSingleMessage:test_executeSingleMessage_ZeroGasZeroData_Success() (gas: 70065) -EVM2EVMOffRamp_execute_upgrade:test_V2NonceNewSenderStartsAtZero_Success() (gas: 229454) -EVM2EVMOffRamp_execute_upgrade:test_V2NonceStartsAtV1Nonce_Success() (gas: 276982) -EVM2EVMOffRamp_execute_upgrade:test_V2OffRampNonceSkipsIfMsgInFlight_Success() (gas: 258834) -EVM2EVMOffRamp_execute_upgrade:test_V2SenderNoncesReadsPreviousRamp_Success() (gas: 226442) -EVM2EVMOffRamp_execute_upgrade:test_V2_Success() (gas: 130811) +EVM2EVMOffRamp_executeSingleMessage:test_TokenHandlingError_Revert() (gas: 224385) +EVM2EVMOffRamp_executeSingleMessage:test_ZeroGasDONExecution_Revert() (gas: 47950) +EVM2EVMOffRamp_executeSingleMessage:test_executeSingleMessage_NoTokens_Success() (gas: 47427) +EVM2EVMOffRamp_executeSingleMessage:test_executeSingleMessage_WithTokens_Success() (gas: 314524) +EVM2EVMOffRamp_executeSingleMessage:test_executeSingleMessage_ZeroGasZeroData_Success() (gas: 70101) +EVM2EVMOffRamp_execute_upgrade:test_V2NonceNewSenderStartsAtZero_Success() (gas: 229526) +EVM2EVMOffRamp_execute_upgrade:test_V2NonceStartsAtV1Nonce_Success() (gas: 277072) +EVM2EVMOffRamp_execute_upgrade:test_V2OffRampNonceSkipsIfMsgInFlight_Success() (gas: 258912) +EVM2EVMOffRamp_execute_upgrade:test_V2SenderNoncesReadsPreviousRamp_Success() (gas: 226538) +EVM2EVMOffRamp_execute_upgrade:test_V2_Success() (gas: 130841) EVM2EVMOffRamp_getAllRateLimitTokens:test_GetAllRateLimitTokens_Success() (gas: 38446) EVM2EVMOffRamp_getExecutionState:test_FillExecutionState_Success() (gas: 3251974) EVM2EVMOffRamp_getExecutionState:test_GetExecutionState_Success() (gas: 83387) -EVM2EVMOffRamp_manuallyExecute:test_ManualExecFailedTx_Revert() (gas: 185967) +EVM2EVMOffRamp_manuallyExecute:test_ManualExecFailedTx_Revert() (gas: 186015) EVM2EVMOffRamp_manuallyExecute:test_ManualExecForkedChain_Revert() (gas: 27052) EVM2EVMOffRamp_manuallyExecute:test_ManualExecGasLimitMismatch_Revert() (gas: 45200) EVM2EVMOffRamp_manuallyExecute:test_ManualExecInvalidGasLimit_Revert() (gas: 27471) -EVM2EVMOffRamp_manuallyExecute:test_ManualExecWithMultipleMessagesAndSourceTokens_Success() (gas: 530789) -EVM2EVMOffRamp_manuallyExecute:test_ManualExecWithSourceTokens_Success() (gas: 346083) -EVM2EVMOffRamp_manuallyExecute:test_ManualExec_Success() (gas: 187459) -EVM2EVMOffRamp_manuallyExecute:test_ReentrancyManualExecuteFails_Success() (gas: 2258366) -EVM2EVMOffRamp_manuallyExecute:test_manuallyExecute_DestinationGasAmountCountMismatch_Revert() (gas: 363296) -EVM2EVMOffRamp_manuallyExecute:test_manuallyExecute_DoesNotRevertIfUntouched_Success() (gas: 143972) -EVM2EVMOffRamp_manuallyExecute:test_manuallyExecute_InvalidTokenGasOverride_Revert() (gas: 366435) -EVM2EVMOffRamp_manuallyExecute:test_manuallyExecute_LowGasLimitManualExec_Success() (gas: 482796) -EVM2EVMOffRamp_manuallyExecute:test_manuallyExecute_WithGasOverride_Success() (gas: 189862) -EVM2EVMOffRamp_manuallyExecute:test_manuallyExecute_WithInvalidReceiverExecutionGasOverride_Revert() (gas: 153716) +EVM2EVMOffRamp_manuallyExecute:test_ManualExecWithMultipleMessagesAndSourceTokens_Success() (gas: 531389) +EVM2EVMOffRamp_manuallyExecute:test_ManualExecWithSourceTokens_Success() (gas: 346383) +EVM2EVMOffRamp_manuallyExecute:test_ManualExec_Success() (gas: 187507) +EVM2EVMOffRamp_manuallyExecute:test_ReentrancyManualExecuteFails_Success() (gas: 2258636) +EVM2EVMOffRamp_manuallyExecute:test_manuallyExecute_DestinationGasAmountCountMismatch_Revert() (gas: 363596) +EVM2EVMOffRamp_manuallyExecute:test_manuallyExecute_DoesNotRevertIfUntouched_Success() (gas: 143996) +EVM2EVMOffRamp_manuallyExecute:test_manuallyExecute_InvalidTokenGasOverride_Revert() (gas: 366735) +EVM2EVMOffRamp_manuallyExecute:test_manuallyExecute_LowGasLimitManualExec_Success() (gas: 482844) +EVM2EVMOffRamp_manuallyExecute:test_manuallyExecute_WithGasOverride_Success() (gas: 189910) +EVM2EVMOffRamp_manuallyExecute:test_manuallyExecute_WithInvalidReceiverExecutionGasOverride_Revert() (gas: 153740) EVM2EVMOffRamp_manuallyExecute:test_manuallyExecute_WithInvalidSourceTokenDataCount_Revert() (gas: 59897) EVM2EVMOffRamp_metadataHash:test_MetadataHash_Success() (gas: 8865) -EVM2EVMOffRamp_setDynamicConfig:test_NonOwner_Revert() (gas: 40162) +EVM2EVMOffRamp_setDynamicConfig:test_NonOwner_Revert() (gas: 40168) EVM2EVMOffRamp_setDynamicConfig:test_RouterZeroAddress_Revert() (gas: 38239) EVM2EVMOffRamp_setDynamicConfig:test_SetDynamicConfig_Success() (gas: 141938) -EVM2EVMOffRamp_updateRateLimitTokens:test_updateRateLimitTokens_AddsAndRemoves_Success() (gas: 162528) -EVM2EVMOffRamp_updateRateLimitTokens:test_updateRateLimitTokens_NonOwner_Revert() (gas: 16699) +EVM2EVMOffRamp_updateRateLimitTokens:test_updateRateLimitTokens_AddsAndRemoves_Success() (gas: 162532) +EVM2EVMOffRamp_updateRateLimitTokens:test_updateRateLimitTokens_NonOwner_Revert() (gas: 16711) EVM2EVMOffRamp_updateRateLimitTokens:test_updateRateLimitTokens_Success() (gas: 197728) -EVM2EVMOnRamp_constructor:test_Constructor_Success() (gas: 5431520) -EVM2EVMOnRamp_forwardFromRouter:test_CannotSendZeroTokens_Revert() (gas: 35835) -EVM2EVMOnRamp_forwardFromRouter:test_EnforceOutOfOrder_Revert() (gas: 98584) -EVM2EVMOnRamp_forwardFromRouter:test_ForwardFromRouterExtraArgsV2AllowOutOfOrderTrue_Success() (gas: 114231) -EVM2EVMOnRamp_forwardFromRouter:test_ForwardFromRouterExtraArgsV2_Success() (gas: 114273) -EVM2EVMOnRamp_forwardFromRouter:test_ForwardFromRouterSuccessCustomExtraArgs() (gas: 130246) -EVM2EVMOnRamp_forwardFromRouter:test_ForwardFromRouterSuccessLegacyExtraArgs() (gas: 138686) -EVM2EVMOnRamp_forwardFromRouter:test_ForwardFromRouter_Success() (gas: 129865) -EVM2EVMOnRamp_forwardFromRouter:test_InvalidAddressEncodePacked_Revert() (gas: 38314) -EVM2EVMOnRamp_forwardFromRouter:test_InvalidAddress_Revert() (gas: 38497) -EVM2EVMOnRamp_forwardFromRouter:test_InvalidChainSelector_Revert() (gas: 25534) -EVM2EVMOnRamp_forwardFromRouter:test_InvalidExtraArgsTag_Revert() (gas: 25320) -EVM2EVMOnRamp_forwardFromRouter:test_MaxCapacityExceeded_Revert() (gas: 86138) -EVM2EVMOnRamp_forwardFromRouter:test_MaxFeeBalanceReached_Revert() (gas: 36514) -EVM2EVMOnRamp_forwardFromRouter:test_MessageGasLimitTooHigh_Revert() (gas: 29078) -EVM2EVMOnRamp_forwardFromRouter:test_MessageTooLarge_Revert() (gas: 107622) +EVM2EVMOnRamp_constructor:test_Constructor_Success() (gas: 5322415) +EVM2EVMOnRamp_forwardFromRouter:test_CannotSendZeroTokens_Revert() (gas: 35880) +EVM2EVMOnRamp_forwardFromRouter:test_EnforceOutOfOrder_Revert() (gas: 98614) +EVM2EVMOnRamp_forwardFromRouter:test_ForwardFromRouterExtraArgsV2AllowOutOfOrderTrue_Success() (gas: 114321) +EVM2EVMOnRamp_forwardFromRouter:test_ForwardFromRouterExtraArgsV2_Success() (gas: 114363) +EVM2EVMOnRamp_forwardFromRouter:test_ForwardFromRouterSuccessCustomExtraArgs() (gas: 130351) +EVM2EVMOnRamp_forwardFromRouter:test_ForwardFromRouterSuccessLegacyExtraArgs() (gas: 138791) +EVM2EVMOnRamp_forwardFromRouter:test_ForwardFromRouter_Success() (gas: 129970) +EVM2EVMOnRamp_forwardFromRouter:test_InvalidAddressEncodePacked_Revert() (gas: 38431) +EVM2EVMOnRamp_forwardFromRouter:test_InvalidAddress_Revert() (gas: 38614) +EVM2EVMOnRamp_forwardFromRouter:test_InvalidChainSelector_Revert() (gas: 25540) +EVM2EVMOnRamp_forwardFromRouter:test_InvalidExtraArgsTag_Revert() (gas: 25365) +EVM2EVMOnRamp_forwardFromRouter:test_MaxCapacityExceeded_Revert() (gas: 86189) +EVM2EVMOnRamp_forwardFromRouter:test_MaxFeeBalanceReached_Revert() (gas: 36619) +EVM2EVMOnRamp_forwardFromRouter:test_MessageGasLimitTooHigh_Revert() (gas: 29123) +EVM2EVMOnRamp_forwardFromRouter:test_MessageTooLarge_Revert() (gas: 107667) EVM2EVMOnRamp_forwardFromRouter:test_OriginalSender_Revert() (gas: 22724) -EVM2EVMOnRamp_forwardFromRouter:test_OverValueWithARLOff_Success() (gas: 227439) -EVM2EVMOnRamp_forwardFromRouter:test_Paused_Revert() (gas: 53150) -EVM2EVMOnRamp_forwardFromRouter:test_Permissions_Revert() (gas: 25559) -EVM2EVMOnRamp_forwardFromRouter:test_PriceNotFoundForToken_Revert() (gas: 59478) -EVM2EVMOnRamp_forwardFromRouter:test_ShouldIncrementNonceOnlyOnOrdered_Success() (gas: 179442) -EVM2EVMOnRamp_forwardFromRouter:test_ShouldIncrementSeqNumAndNonce_Success() (gas: 177724) -EVM2EVMOnRamp_forwardFromRouter:test_ShouldStoreNonLinkFees() (gas: 137333) -EVM2EVMOnRamp_forwardFromRouter:test_SourceTokenDataTooLarge_Revert() (gas: 3772676) -EVM2EVMOnRamp_forwardFromRouter:test_TooManyTokens_Revert() (gas: 30244) +EVM2EVMOnRamp_forwardFromRouter:test_OverValueWithARLOff_Success() (gas: 227661) +EVM2EVMOnRamp_forwardFromRouter:test_Paused_Revert() (gas: 53180) +EVM2EVMOnRamp_forwardFromRouter:test_Permissions_Revert() (gas: 25565) +EVM2EVMOnRamp_forwardFromRouter:test_PriceNotFoundForToken_Revert() (gas: 59523) +EVM2EVMOnRamp_forwardFromRouter:test_ShouldIncrementNonceOnlyOnOrdered_Success() (gas: 179712) +EVM2EVMOnRamp_forwardFromRouter:test_ShouldIncrementSeqNumAndNonce_Success() (gas: 178039) +EVM2EVMOnRamp_forwardFromRouter:test_ShouldStoreNonLinkFees() (gas: 137465) +EVM2EVMOnRamp_forwardFromRouter:test_SourceTokenDataTooLarge_Revert() (gas: 3713189) +EVM2EVMOnRamp_forwardFromRouter:test_TooManyTokens_Revert() (gas: 30289) EVM2EVMOnRamp_forwardFromRouter:test_Unhealthy_Revert() (gas: 43342) -EVM2EVMOnRamp_forwardFromRouter:test_UnsupportedToken_Revert() (gas: 109440) -EVM2EVMOnRamp_forwardFromRouter:test_ZeroAddressReceiver_Revert() (gas: 313095) -EVM2EVMOnRamp_forwardFromRouter:test_forwardFromRouter_ShouldStoreLinkFees_Success() (gas: 112430) -EVM2EVMOnRamp_forwardFromRouter:test_forwardFromRouter_UnsupportedToken_Revert() (gas: 72269) -EVM2EVMOnRamp_forwardFromRouter:test_forwardFromRouter_correctSourceTokenData_Success() (gas: 713846) -EVM2EVMOnRamp_forwardFromRouter_upgrade:test_V2NonceNewSenderStartsAtZero_Success() (gas: 147709) -EVM2EVMOnRamp_forwardFromRouter_upgrade:test_V2NonceStartsAtV1Nonce_Success() (gas: 190616) -EVM2EVMOnRamp_forwardFromRouter_upgrade:test_V2SenderNoncesReadsPreviousRamp_Success() (gas: 121404) -EVM2EVMOnRamp_forwardFromRouter_upgrade:test_V2_Success() (gas: 95376) +EVM2EVMOnRamp_forwardFromRouter:test_UnsupportedToken_Revert() (gas: 109557) +EVM2EVMOnRamp_forwardFromRouter:test_ZeroAddressReceiver_Revert() (gas: 314265) +EVM2EVMOnRamp_forwardFromRouter:test_forwardFromRouter_ShouldStoreLinkFees_Success() (gas: 112547) +EVM2EVMOnRamp_forwardFromRouter:test_forwardFromRouter_UnsupportedToken_Revert() (gas: 72386) +EVM2EVMOnRamp_forwardFromRouter:test_forwardFromRouter_correctSourceTokenData_Success() (gas: 714230) +EVM2EVMOnRamp_forwardFromRouter_upgrade:test_V2NonceNewSenderStartsAtZero_Success() (gas: 147925) +EVM2EVMOnRamp_forwardFromRouter_upgrade:test_V2NonceStartsAtV1Nonce_Success() (gas: 190949) +EVM2EVMOnRamp_forwardFromRouter_upgrade:test_V2SenderNoncesReadsPreviousRamp_Success() (gas: 121743) +EVM2EVMOnRamp_forwardFromRouter_upgrade:test_V2_Success() (gas: 95487) EVM2EVMOnRamp_getDataAvailabilityCost:test_EmptyMessageCalculatesDataAvailabilityCost_Success() (gas: 20568) EVM2EVMOnRamp_getDataAvailabilityCost:test_SimpleMessageCalculatesDataAvailabilityCost_Success() (gas: 20936) -EVM2EVMOnRamp_getFee:test_EmptyMessage_Success() (gas: 78401) -EVM2EVMOnRamp_getFee:test_GetFeeOfZeroForTokenMessage_Success() (gas: 81897) -EVM2EVMOnRamp_getFee:test_HighGasMessage_Success() (gas: 234249) -EVM2EVMOnRamp_getFee:test_MessageGasLimitTooHigh_Revert() (gas: 16733) -EVM2EVMOnRamp_getFee:test_MessageTooLarge_Revert() (gas: 95283) -EVM2EVMOnRamp_getFee:test_MessageWithDataAndTokenTransfer_Success() (gas: 160123) -EVM2EVMOnRamp_getFee:test_NotAFeeToken_Revert() (gas: 24113) -EVM2EVMOnRamp_getFee:test_SingleTokenMessage_Success() (gas: 118345) -EVM2EVMOnRamp_getFee:test_TooManyTokens_Revert() (gas: 19914) -EVM2EVMOnRamp_getFee:test_ZeroDataAvailabilityMultiplier_Success() (gas: 64726) +EVM2EVMOnRamp_getFee:test_EmptyMessage_Success() (gas: 78521) +EVM2EVMOnRamp_getFee:test_GetFeeOfZeroForTokenMessage_Success() (gas: 82047) +EVM2EVMOnRamp_getFee:test_HighGasMessage_Success() (gas: 234369) +EVM2EVMOnRamp_getFee:test_MessageGasLimitTooHigh_Revert() (gas: 16778) +EVM2EVMOnRamp_getFee:test_MessageTooLarge_Revert() (gas: 95328) +EVM2EVMOnRamp_getFee:test_MessageWithDataAndTokenTransfer_Success() (gas: 160243) +EVM2EVMOnRamp_getFee:test_NotAFeeToken_Revert() (gas: 24158) +EVM2EVMOnRamp_getFee:test_SingleTokenMessage_Success() (gas: 118465) +EVM2EVMOnRamp_getFee:test_TooManyTokens_Revert() (gas: 19959) +EVM2EVMOnRamp_getFee:test_ZeroDataAvailabilityMultiplier_Success() (gas: 64816) EVM2EVMOnRamp_getSupportedTokens:test_GetSupportedTokens_Revert() (gas: 10460) EVM2EVMOnRamp_getTokenPool:test_GetTokenPool_Success() (gas: 35195) EVM2EVMOnRamp_getTokenTransferCost:test_CustomTokenBpsFee_Success() (gas: 45198) @@ -263,135 +263,135 @@ EVM2EVMOnRamp_getTokenTransferCost:test_LargeTokenTransferChargesMaxFeeAndGas_Su EVM2EVMOnRamp_getTokenTransferCost:test_MixedTokenTransferFee_Success() (gas: 126939) EVM2EVMOnRamp_getTokenTransferCost:test_NoTokenTransferChargesZeroFee_Success() (gas: 15250) EVM2EVMOnRamp_getTokenTransferCost:test_SmallTokenTransferChargesMinFeeAndGas_Success() (gas: 28164) -EVM2EVMOnRamp_getTokenTransferCost:test_UnsupportedToken_Revert() (gas: 21260) +EVM2EVMOnRamp_getTokenTransferCost:test_UnsupportedToken_Revert() (gas: 21266) EVM2EVMOnRamp_getTokenTransferCost:test_ZeroAmountTokenTransferChargesMinFeeAndGas_Success() (gas: 28187) EVM2EVMOnRamp_getTokenTransferCost:test_ZeroFeeConfigChargesMinFee_Success() (gas: 38638) EVM2EVMOnRamp_getTokenTransferCost:test__getTokenTransferCost_selfServeUsesDefaults_Success() (gas: 29440) -EVM2EVMOnRamp_linkAvailableForPayment:test_InsufficientLinkBalance_Success() (gas: 32621) -EVM2EVMOnRamp_linkAvailableForPayment:test_LinkAvailableForPayment_Success() (gas: 134884) -EVM2EVMOnRamp_payNops:test_AdminPayNops_Success() (gas: 143210) -EVM2EVMOnRamp_payNops:test_InsufficientBalance_Revert() (gas: 29055) -EVM2EVMOnRamp_payNops:test_NoFeesToPay_Revert() (gas: 127424) -EVM2EVMOnRamp_payNops:test_NoNopsToPay_Revert() (gas: 133318) -EVM2EVMOnRamp_payNops:test_NopPayNops_Success() (gas: 146497) -EVM2EVMOnRamp_payNops:test_OwnerPayNops_Success() (gas: 141072) -EVM2EVMOnRamp_payNops:test_PayNopsSuccessAfterSetNops() (gas: 297651) +EVM2EVMOnRamp_linkAvailableForPayment:test_InsufficientLinkBalance_Success() (gas: 32651) +EVM2EVMOnRamp_linkAvailableForPayment:test_LinkAvailableForPayment_Success() (gas: 135118) +EVM2EVMOnRamp_payNops:test_AdminPayNops_Success() (gas: 143408) +EVM2EVMOnRamp_payNops:test_InsufficientBalance_Revert() (gas: 29085) +EVM2EVMOnRamp_payNops:test_NoFeesToPay_Revert() (gas: 127622) +EVM2EVMOnRamp_payNops:test_NoNopsToPay_Revert() (gas: 133481) +EVM2EVMOnRamp_payNops:test_NopPayNops_Success() (gas: 146695) +EVM2EVMOnRamp_payNops:test_OwnerPayNops_Success() (gas: 141270) +EVM2EVMOnRamp_payNops:test_PayNopsSuccessAfterSetNops() (gas: 298116) EVM2EVMOnRamp_payNops:test_WrongPermissions_Revert() (gas: 15300) -EVM2EVMOnRamp_setDynamicConfig:test_SetConfigInvalidConfig_Revert() (gas: 42377) -EVM2EVMOnRamp_setDynamicConfig:test_SetConfigOnlyOwner_Revert() (gas: 21258) -EVM2EVMOnRamp_setDynamicConfig:test_SetDynamicConfig_Success() (gas: 53782) -EVM2EVMOnRamp_setFeeTokenConfig:test_OnlyCallableByOwnerOrAdmin_Revert() (gas: 13470) -EVM2EVMOnRamp_setFeeTokenConfig:test_SetFeeTokenConfigByAdmin_Success() (gas: 16455) -EVM2EVMOnRamp_setFeeTokenConfig:test_SetFeeTokenConfig_Success() (gas: 13994) -EVM2EVMOnRamp_setNops:test_AdminCanSetNops_Success() (gas: 61785) -EVM2EVMOnRamp_setNops:test_IncludesPayment_Success() (gas: 469353) -EVM2EVMOnRamp_setNops:test_LinkTokenCannotBeNop_Revert() (gas: 57276) +EVM2EVMOnRamp_setDynamicConfig:test_SetConfigInvalidConfig_Revert() (gas: 42401) +EVM2EVMOnRamp_setDynamicConfig:test_SetConfigOnlyOwner_Revert() (gas: 21270) +EVM2EVMOnRamp_setDynamicConfig:test_SetDynamicConfig_Success() (gas: 53830) +EVM2EVMOnRamp_setFeeTokenConfig:test_OnlyCallableByOwnerOrAdmin_Revert() (gas: 13476) +EVM2EVMOnRamp_setFeeTokenConfig:test_SetFeeTokenConfigByAdmin_Success() (gas: 16461) +EVM2EVMOnRamp_setFeeTokenConfig:test_SetFeeTokenConfig_Success() (gas: 14000) +EVM2EVMOnRamp_setNops:test_AdminCanSetNops_Success() (gas: 61795) +EVM2EVMOnRamp_setNops:test_IncludesPayment_Success() (gas: 469668) +EVM2EVMOnRamp_setNops:test_LinkTokenCannotBeNop_Revert() (gas: 57291) EVM2EVMOnRamp_setNops:test_NonOwnerOrAdmin_Revert() (gas: 14677) -EVM2EVMOnRamp_setNops:test_NotEnoughFundsForPayout_Revert() (gas: 84528) -EVM2EVMOnRamp_setNops:test_SetNopsRemovesOldNopsCompletely_Success() (gas: 60673) -EVM2EVMOnRamp_setNops:test_SetNops_Success() (gas: 173821) +EVM2EVMOnRamp_setNops:test_NotEnoughFundsForPayout_Revert() (gas: 84675) +EVM2EVMOnRamp_setNops:test_SetNopsRemovesOldNopsCompletely_Success() (gas: 60683) +EVM2EVMOnRamp_setNops:test_SetNops_Success() (gas: 173833) EVM2EVMOnRamp_setNops:test_TooManyNops_Revert() (gas: 190350) -EVM2EVMOnRamp_setNops:test_ZeroAddressCannotBeNop_Revert() (gas: 53617) +EVM2EVMOnRamp_setNops:test_ZeroAddressCannotBeNop_Revert() (gas: 53632) EVM2EVMOnRamp_setTokenTransferFeeConfig:test__setTokenTransferFeeConfig_InvalidDestBytesOverhead_Revert() (gas: 14499) EVM2EVMOnRamp_setTokenTransferFeeConfig:test__setTokenTransferFeeConfig_OnlyCallableByOwnerOrAdmin_Revert() (gas: 14283) EVM2EVMOnRamp_setTokenTransferFeeConfig:test__setTokenTransferFeeConfig_Success() (gas: 84107) EVM2EVMOnRamp_setTokenTransferFeeConfig:test__setTokenTransferFeeConfig_byAdmin_Success() (gas: 17375) -EVM2EVMOnRamp_withdrawNonLinkFees:test_LinkBalanceNotSettled_Revert() (gas: 83035) +EVM2EVMOnRamp_withdrawNonLinkFees:test_LinkBalanceNotSettled_Revert() (gas: 83158) EVM2EVMOnRamp_withdrawNonLinkFees:test_NonOwnerOrAdmin_Revert() (gas: 15275) -EVM2EVMOnRamp_withdrawNonLinkFees:test_SettlingBalance_Success() (gas: 272083) -EVM2EVMOnRamp_withdrawNonLinkFees:test_WithdrawNonLinkFees_Success() (gas: 53458) +EVM2EVMOnRamp_withdrawNonLinkFees:test_SettlingBalance_Success() (gas: 272200) +EVM2EVMOnRamp_withdrawNonLinkFees:test_WithdrawNonLinkFees_Success() (gas: 53482) EVM2EVMOnRamp_withdrawNonLinkFees:test_WithdrawToZeroAddress_Revert() (gas: 12830) EtherSenderReceiverTest_ccipReceive:test_ccipReceive_fallbackToWethTransfer() (gas: 96892) EtherSenderReceiverTest_ccipReceive:test_ccipReceive_happyPath() (gas: 49770) EtherSenderReceiverTest_ccipReceive:test_ccipReceive_wrongToken() (gas: 17423) -EtherSenderReceiverTest_ccipReceive:test_ccipReceive_wrongTokenAmount() (gas: 15716) -EtherSenderReceiverTest_ccipSend:test_ccipSend_reverts_insufficientFee_feeToken() (gas: 99831) -EtherSenderReceiverTest_ccipSend:test_ccipSend_reverts_insufficientFee_native() (gas: 76099) -EtherSenderReceiverTest_ccipSend:test_ccipSend_reverts_insufficientFee_weth() (gas: 99853) -EtherSenderReceiverTest_ccipSend:test_ccipSend_success_feeToken() (gas: 144833) -EtherSenderReceiverTest_ccipSend:test_ccipSend_success_native() (gas: 80262) -EtherSenderReceiverTest_ccipSend:test_ccipSend_success_nativeExcess() (gas: 80449) -EtherSenderReceiverTest_ccipSend:test_ccipSend_success_weth() (gas: 95902) +EtherSenderReceiverTest_ccipReceive:test_ccipReceive_wrongTokenAmount() (gas: 15722) +EtherSenderReceiverTest_ccipSend:test_ccipSend_reverts_insufficientFee_feeToken() (gas: 99837) +EtherSenderReceiverTest_ccipSend:test_ccipSend_reverts_insufficientFee_native() (gas: 76105) +EtherSenderReceiverTest_ccipSend:test_ccipSend_reverts_insufficientFee_weth() (gas: 99859) +EtherSenderReceiverTest_ccipSend:test_ccipSend_success_feeToken() (gas: 144845) +EtherSenderReceiverTest_ccipSend:test_ccipSend_success_native() (gas: 80268) +EtherSenderReceiverTest_ccipSend:test_ccipSend_success_nativeExcess() (gas: 80455) +EtherSenderReceiverTest_ccipSend:test_ccipSend_success_weth() (gas: 95914) EtherSenderReceiverTest_constructor:test_constructor() (gas: 17535) -EtherSenderReceiverTest_getFee:test_getFee() (gas: 27316) +EtherSenderReceiverTest_getFee:test_getFee() (gas: 27328) EtherSenderReceiverTest_validateFeeToken:test_validateFeeToken_reverts_feeToken_tokenAmountNotEqualToMsgValue() (gas: 20363) EtherSenderReceiverTest_validateFeeToken:test_validateFeeToken_valid_feeToken() (gas: 16718) EtherSenderReceiverTest_validateFeeToken:test_validateFeeToken_valid_native() (gas: 16657) EtherSenderReceiverTest_validatedMessage:test_validatedMessage_dataOverwrittenToMsgSender() (gas: 25415) EtherSenderReceiverTest_validatedMessage:test_validatedMessage_emptyDataOverwrittenToMsgSender() (gas: 25265) -EtherSenderReceiverTest_validatedMessage:test_validatedMessage_invalidTokenAmounts() (gas: 17907) +EtherSenderReceiverTest_validatedMessage:test_validatedMessage_invalidTokenAmounts() (gas: 17913) EtherSenderReceiverTest_validatedMessage:test_validatedMessage_tokenOverwrittenToWeth() (gas: 25287) -EtherSenderReceiverTest_validatedMessage:test_validatedMessage_validMessage_extraArgs() (gas: 26316) -FeeQuoter_applyDestChainConfigUpdates:test_InvalidChainFamilySelector_Revert() (gas: 16509) -FeeQuoter_applyDestChainConfigUpdates:test_InvalidDestChainConfigDestChainSelectorEqZero_Revert() (gas: 16423) -FeeQuoter_applyDestChainConfigUpdates:test_applyDestChainConfigUpdatesDefaultTxGasLimitEqZero_Revert() (gas: 16465) -FeeQuoter_applyDestChainConfigUpdates:test_applyDestChainConfigUpdatesDefaultTxGasLimitGtMaxPerMessageGasLimit_Revert() (gas: 39969) +EtherSenderReceiverTest_validatedMessage:test_validatedMessage_validMessage_extraArgs() (gas: 26328) +FeeQuoter_applyDestChainConfigUpdates:test_InvalidChainFamilySelector_Revert() (gas: 16515) +FeeQuoter_applyDestChainConfigUpdates:test_InvalidDestChainConfigDestChainSelectorEqZero_Revert() (gas: 16429) +FeeQuoter_applyDestChainConfigUpdates:test_applyDestChainConfigUpdatesDefaultTxGasLimitEqZero_Revert() (gas: 16471) +FeeQuoter_applyDestChainConfigUpdates:test_applyDestChainConfigUpdatesDefaultTxGasLimitGtMaxPerMessageGasLimit_Revert() (gas: 39975) FeeQuoter_applyDestChainConfigUpdates:test_applyDestChainConfigUpdatesZeroIntput_Success() (gas: 12342) -FeeQuoter_applyDestChainConfigUpdates:test_applyDestChainConfigUpdates_Success() (gas: 135942) -FeeQuoter_applyFeeTokensUpdates:test_ApplyFeeTokensUpdates_Success() (gas: 80117) -FeeQuoter_applyFeeTokensUpdates:test_OnlyCallableByOwner_Revert() (gas: 12615) -FeeQuoter_applyPremiumMultiplierWeiPerEthUpdates:test_OnlyCallableByOwnerOrAdmin_Revert() (gas: 11456) -FeeQuoter_applyPremiumMultiplierWeiPerEthUpdates:test_applyPremiumMultiplierWeiPerEthUpdatesMultipleTokens_Success() (gas: 54236) -FeeQuoter_applyPremiumMultiplierWeiPerEthUpdates:test_applyPremiumMultiplierWeiPerEthUpdatesSingleToken_Success() (gas: 44880) +FeeQuoter_applyDestChainConfigUpdates:test_applyDestChainConfigUpdates_Success() (gas: 135960) +FeeQuoter_applyFeeTokensUpdates:test_ApplyFeeTokensUpdates_Success() (gas: 80127) +FeeQuoter_applyFeeTokensUpdates:test_OnlyCallableByOwner_Revert() (gas: 12621) +FeeQuoter_applyPremiumMultiplierWeiPerEthUpdates:test_OnlyCallableByOwnerOrAdmin_Revert() (gas: 11462) +FeeQuoter_applyPremiumMultiplierWeiPerEthUpdates:test_applyPremiumMultiplierWeiPerEthUpdatesMultipleTokens_Success() (gas: 54242) +FeeQuoter_applyPremiumMultiplierWeiPerEthUpdates:test_applyPremiumMultiplierWeiPerEthUpdatesSingleToken_Success() (gas: 44886) FeeQuoter_applyPremiumMultiplierWeiPerEthUpdates:test_applyPremiumMultiplierWeiPerEthUpdatesZeroInput() (gas: 12280) -FeeQuoter_applyTokenTransferFeeConfigUpdates:test_ApplyTokenTransferFeeConfig_Success() (gas: 86968) +FeeQuoter_applyTokenTransferFeeConfigUpdates:test_ApplyTokenTransferFeeConfig_Success() (gas: 87004) FeeQuoter_applyTokenTransferFeeConfigUpdates:test_ApplyTokenTransferFeeZeroInput() (gas: 13089) FeeQuoter_applyTokenTransferFeeConfigUpdates:test_InvalidDestBytesOverhead_Revert() (gas: 17071) -FeeQuoter_applyTokenTransferFeeConfigUpdates:test_OnlyCallableByOwnerOrAdmin_Revert() (gas: 12246) -FeeQuoter_constructor:test_InvalidLinkTokenEqZeroAddress_Revert() (gas: 106820) -FeeQuoter_constructor:test_InvalidMaxFeeJuelsPerMsg_Revert() (gas: 111170) -FeeQuoter_constructor:test_InvalidStalenessThreshold_Revert() (gas: 111223) -FeeQuoter_constructor:test_Setup_Success() (gas: 5205186) +FeeQuoter_applyTokenTransferFeeConfigUpdates:test_OnlyCallableByOwnerOrAdmin_Revert() (gas: 12252) +FeeQuoter_constructor:test_InvalidLinkTokenEqZeroAddress_Revert() (gas: 106761) +FeeQuoter_constructor:test_InvalidMaxFeeJuelsPerMsg_Revert() (gas: 111111) +FeeQuoter_constructor:test_InvalidStalenessThreshold_Revert() (gas: 111164) +FeeQuoter_constructor:test_Setup_Success() (gas: 5164117) FeeQuoter_convertTokenAmount:test_ConvertTokenAmount_Success() (gas: 72751) -FeeQuoter_convertTokenAmount:test_LinkTokenNotSupported_Revert() (gas: 30981) -FeeQuoter_getDataAvailabilityCost:test_EmptyMessageCalculatesDataAvailabilityCost_Success() (gas: 94441) +FeeQuoter_convertTokenAmount:test_LinkTokenNotSupported_Revert() (gas: 31017) +FeeQuoter_getDataAvailabilityCost:test_EmptyMessageCalculatesDataAvailabilityCost_Success() (gas: 94447) FeeQuoter_getDataAvailabilityCost:test_SimpleMessageCalculatesDataAvailabilityCostUnsupportedDestChainSelector_Success() (gas: 14650) FeeQuoter_getDataAvailabilityCost:test_SimpleMessageCalculatesDataAvailabilityCost_Success() (gas: 20482) FeeQuoter_getTokenAndGasPrices:test_GetFeeTokenAndGasPrices_Success() (gas: 70464) FeeQuoter_getTokenAndGasPrices:test_StaleGasPrice_Revert() (gas: 16838) FeeQuoter_getTokenAndGasPrices:test_UnsupportedChain_Revert() (gas: 16140) -FeeQuoter_getTokenAndGasPrices:test_ZeroGasPrice_Success() (gas: 45771) +FeeQuoter_getTokenAndGasPrices:test_ZeroGasPrice_Success() (gas: 45777) FeeQuoter_getTokenPrice:test_GetTokenPriceFromFeed_Success() (gas: 62227) FeeQuoter_getTokenPrices:test_GetTokenPrices_Success() (gas: 84818) -FeeQuoter_getTokenTransferCost:test_CustomTokenBpsFee_Success() (gas: 41281) -FeeQuoter_getTokenTransferCost:test_FeeTokenBpsFee_Success() (gas: 34730) -FeeQuoter_getTokenTransferCost:test_LargeTokenTransferChargesMaxFeeAndGas_Success() (gas: 27804) -FeeQuoter_getTokenTransferCost:test_MixedTokenTransferFee_Success() (gas: 101864) +FeeQuoter_getTokenTransferCost:test_CustomTokenBpsFee_Success() (gas: 41293) +FeeQuoter_getTokenTransferCost:test_FeeTokenBpsFee_Success() (gas: 34742) +FeeQuoter_getTokenTransferCost:test_LargeTokenTransferChargesMaxFeeAndGas_Success() (gas: 27816) +FeeQuoter_getTokenTransferCost:test_MixedTokenTransferFee_Success() (gas: 101954) FeeQuoter_getTokenTransferCost:test_NoTokenTransferChargesZeroFee_Success() (gas: 20390) -FeeQuoter_getTokenTransferCost:test_SmallTokenTransferChargesMinFeeAndGas_Success() (gas: 27679) -FeeQuoter_getTokenTransferCost:test_ZeroAmountTokenTransferChargesMinFeeAndGas_Success() (gas: 27635) -FeeQuoter_getTokenTransferCost:test_ZeroFeeConfigChargesMinFee_Success() (gas: 40064) -FeeQuoter_getTokenTransferCost:test_getTokenTransferCost_selfServeUsesDefaults_Success() (gas: 29347) +FeeQuoter_getTokenTransferCost:test_SmallTokenTransferChargesMinFeeAndGas_Success() (gas: 27691) +FeeQuoter_getTokenTransferCost:test_ZeroAmountTokenTransferChargesMinFeeAndGas_Success() (gas: 27647) +FeeQuoter_getTokenTransferCost:test_ZeroFeeConfigChargesMinFee_Success() (gas: 40076) +FeeQuoter_getTokenTransferCost:test_getTokenTransferCost_selfServeUsesDefaults_Success() (gas: 29359) FeeQuoter_getValidatedFee:test_DestinationChainNotEnabled_Revert() (gas: 18210) FeeQuoter_getValidatedFee:test_EmptyMessage_Success() (gas: 86123) -FeeQuoter_getValidatedFee:test_EnforceOutOfOrder_Revert() (gas: 54405) +FeeQuoter_getValidatedFee:test_EnforceOutOfOrder_Revert() (gas: 54411) FeeQuoter_getValidatedFee:test_HighGasMessage_Success() (gas: 242541) -FeeQuoter_getValidatedFee:test_InvalidEVMAddress_Revert() (gas: 22420) -FeeQuoter_getValidatedFee:test_MessageGasLimitTooHigh_Revert() (gas: 31833) +FeeQuoter_getValidatedFee:test_InvalidEVMAddress_Revert() (gas: 22426) +FeeQuoter_getValidatedFee:test_MessageGasLimitTooHigh_Revert() (gas: 31839) FeeQuoter_getValidatedFee:test_MessageTooLarge_Revert() (gas: 100163) -FeeQuoter_getValidatedFee:test_MessageWithDataAndTokenTransfer_Success() (gas: 148076) -FeeQuoter_getValidatedFee:test_NotAFeeToken_Revert() (gas: 21073) -FeeQuoter_getValidatedFee:test_SingleTokenMessage_Success() (gas: 117032) +FeeQuoter_getValidatedFee:test_MessageWithDataAndTokenTransfer_Success() (gas: 148172) +FeeQuoter_getValidatedFee:test_NotAFeeToken_Revert() (gas: 21079) +FeeQuoter_getValidatedFee:test_SingleTokenMessage_Success() (gas: 117080) FeeQuoter_getValidatedFee:test_TooManyTokens_Revert() (gas: 22562) FeeQuoter_getValidatedFee:test_ZeroDataAvailabilityMultiplier_Success() (gas: 64442) -FeeQuoter_getValidatedTokenPrice:test_GetValidatedTokenPriceFromFeedErc20Above18Decimals_Success() (gas: 2076322) -FeeQuoter_getValidatedTokenPrice:test_GetValidatedTokenPriceFromFeedErc20Below18Decimals_Success() (gas: 2076280) -FeeQuoter_getValidatedTokenPrice:test_GetValidatedTokenPriceFromFeedFeedAt0Decimals_Success() (gas: 2056399) -FeeQuoter_getValidatedTokenPrice:test_GetValidatedTokenPriceFromFeedFeedAt18Decimals_Success() (gas: 2076054) -FeeQuoter_getValidatedTokenPrice:test_GetValidatedTokenPriceFromFeedFlippedDecimals_Success() (gas: 2076258) -FeeQuoter_getValidatedTokenPrice:test_GetValidatedTokenPriceFromFeedMaxInt224Value_Success() (gas: 2076070) +FeeQuoter_getValidatedTokenPrice:test_GetValidatedTokenPriceFromFeedErc20Above18Decimals_Success() (gas: 2066317) +FeeQuoter_getValidatedTokenPrice:test_GetValidatedTokenPriceFromFeedErc20Below18Decimals_Success() (gas: 2066275) +FeeQuoter_getValidatedTokenPrice:test_GetValidatedTokenPriceFromFeedFeedAt0Decimals_Success() (gas: 2046394) +FeeQuoter_getValidatedTokenPrice:test_GetValidatedTokenPriceFromFeedFeedAt18Decimals_Success() (gas: 2066049) +FeeQuoter_getValidatedTokenPrice:test_GetValidatedTokenPriceFromFeedFlippedDecimals_Success() (gas: 2066253) +FeeQuoter_getValidatedTokenPrice:test_GetValidatedTokenPriceFromFeedMaxInt224Value_Success() (gas: 2066065) FeeQuoter_getValidatedTokenPrice:test_GetValidatedTokenPriceFromFeedOverStalenessPeriod_Success() (gas: 62001) FeeQuoter_getValidatedTokenPrice:test_GetValidatedTokenPriceFromFeed_Success() (gas: 61881) FeeQuoter_getValidatedTokenPrice:test_GetValidatedTokenPrice_Success() (gas: 61042) -FeeQuoter_getValidatedTokenPrice:test_OverflowFeedPrice_Revert() (gas: 2075757) +FeeQuoter_getValidatedTokenPrice:test_OverflowFeedPrice_Revert() (gas: 2065758) FeeQuoter_getValidatedTokenPrice:test_StaleFeeToken_Success() (gas: 61569) -FeeQuoter_getValidatedTokenPrice:test_TokenNotSupportedFeed_Revert() (gas: 109117) -FeeQuoter_getValidatedTokenPrice:test_TokenNotSupported_Revert() (gas: 13863) -FeeQuoter_getValidatedTokenPrice:test_UnderflowFeedPrice_Revert() (gas: 2074434) -FeeQuoter_onReport:test_OnReport_StaleUpdate_Revert() (gas: 43336) -FeeQuoter_onReport:test_onReport_InvalidForwarder_Reverts() (gas: 23306) -FeeQuoter_onReport:test_onReport_Success() (gas: 80582) -FeeQuoter_onReport:test_onReport_UnsupportedToken_Reverts() (gas: 26692) +FeeQuoter_getValidatedTokenPrice:test_TokenNotSupportedFeed_Revert() (gas: 109135) +FeeQuoter_getValidatedTokenPrice:test_TokenNotSupported_Revert() (gas: 13881) +FeeQuoter_getValidatedTokenPrice:test_UnderflowFeedPrice_Revert() (gas: 2064435) +FeeQuoter_onReport:test_OnReport_StaleUpdate_Revert() (gas: 43342) +FeeQuoter_onReport:test_onReport_InvalidForwarder_Reverts() (gas: 23312) +FeeQuoter_onReport:test_onReport_Success() (gas: 80588) +FeeQuoter_onReport:test_onReport_UnsupportedToken_Reverts() (gas: 26704) FeeQuoter_parseEVMExtraArgsFromBytes:test_EVMExtraArgsDefault_Success() (gas: 17191) FeeQuoter_parseEVMExtraArgsFromBytes:test_EVMExtraArgsEnforceOutOfOrder_Revert() (gas: 21302) FeeQuoter_parseEVMExtraArgsFromBytes:test_EVMExtraArgsGasLimitTooHigh_Revert() (gas: 18399) @@ -399,545 +399,545 @@ FeeQuoter_parseEVMExtraArgsFromBytes:test_EVMExtraArgsInvalidExtraArgsTag_Revert FeeQuoter_parseEVMExtraArgsFromBytes:test_EVMExtraArgsV1_Success() (gas: 18291) FeeQuoter_parseEVMExtraArgsFromBytes:test_EVMExtraArgsV2_Success() (gas: 18407) FeeQuoter_processMessageArgs:test_InvalidExtraArgs_Revert() (gas: 18339) -FeeQuoter_processMessageArgs:test_MalformedEVMExtraArgs_Revert() (gas: 18885) +FeeQuoter_processMessageArgs:test_MalformedEVMExtraArgs_Revert() (gas: 18891) FeeQuoter_processMessageArgs:test_MessageFeeTooHigh_Revert() (gas: 16404) -FeeQuoter_processMessageArgs:test_WitEVMExtraArgsV2_Success() (gas: 26277) +FeeQuoter_processMessageArgs:test_WitEVMExtraArgsV2_Success() (gas: 26295) FeeQuoter_processMessageArgs:test_WithConvertedTokenAmount_Success() (gas: 32443) -FeeQuoter_processMessageArgs:test_WithEVMExtraArgsV1_Success() (gas: 25889) -FeeQuoter_processMessageArgs:test_WithEmptyEVMExtraArgs_Success() (gas: 23704) +FeeQuoter_processMessageArgs:test_WithEVMExtraArgsV1_Success() (gas: 25901) +FeeQuoter_processMessageArgs:test_WithEmptyEVMExtraArgs_Success() (gas: 23716) FeeQuoter_processMessageArgs:test_WithLinkTokenAmount_Success() (gas: 17353) FeeQuoter_updatePrices:test_OnlyCallableByUpdater_Revert() (gas: 12114) FeeQuoter_updatePrices:test_OnlyGasPrice_Success() (gas: 23599) FeeQuoter_updatePrices:test_OnlyTokenPrice_Success() (gas: 30615) -FeeQuoter_updatePrices:test_UpdatableByAuthorizedCaller_Success() (gas: 76009) +FeeQuoter_updatePrices:test_UpdatableByAuthorizedCaller_Success() (gas: 76019) FeeQuoter_updatePrices:test_UpdateMultiplePrices_Success() (gas: 151345) FeeQuoter_updateTokenPriceFeeds:test_FeedNotUpdated() (gas: 50523) FeeQuoter_updateTokenPriceFeeds:test_FeedUnset_Success() (gas: 63574) -FeeQuoter_updateTokenPriceFeeds:test_FeedUpdatedByNonOwner_Revert() (gas: 19938) +FeeQuoter_updateTokenPriceFeeds:test_FeedUpdatedByNonOwner_Revert() (gas: 19944) FeeQuoter_updateTokenPriceFeeds:test_MultipleFeedUpdate_Success() (gas: 88920) FeeQuoter_updateTokenPriceFeeds:test_SingleFeedUpdate_Success() (gas: 50795) FeeQuoter_updateTokenPriceFeeds:test_ZeroFeeds_Success() (gas: 12296) -FeeQuoter_validateDestFamilyAddress:test_InvalidEVMAddressEncodePacked_Revert() (gas: 10622) -FeeQuoter_validateDestFamilyAddress:test_InvalidEVMAddressPrecompiles_Revert() (gas: 3967790) -FeeQuoter_validateDestFamilyAddress:test_InvalidEVMAddress_Revert() (gas: 10806) +FeeQuoter_validateDestFamilyAddress:test_InvalidEVMAddressEncodePacked_Revert() (gas: 10634) +FeeQuoter_validateDestFamilyAddress:test_InvalidEVMAddressPrecompiles_Revert() (gas: 3980078) +FeeQuoter_validateDestFamilyAddress:test_InvalidEVMAddress_Revert() (gas: 10818) FeeQuoter_validateDestFamilyAddress:test_ValidEVMAddress_Success() (gas: 6710) FeeQuoter_validateDestFamilyAddress:test_ValidNonEVMAddress_Success() (gas: 6484) -FeeQuoter_validatePoolReturnData:test_InvalidEVMAddressDestToken_Revert() (gas: 42769) -FeeQuoter_validatePoolReturnData:test_ProcessPoolReturnData_Success() (gas: 73306) -FeeQuoter_validatePoolReturnData:test_SourceTokenDataTooLarge_Revert() (gas: 107855) -FeeQuoter_validatePoolReturnData:test_TokenAmountArraysMismatching_Revert() (gas: 40106) -HybridUSDCTokenPoolMigrationTests:test_LockOrBurn_LocKReleaseMechanism_then_switchToPrimary_Success() (gas: 208384) -HybridUSDCTokenPoolMigrationTests:test_LockOrBurn_PrimaryMechanism_Success() (gas: 135502) +FeeQuoter_validatePoolReturnData:test_InvalidEVMAddressDestToken_Revert() (gas: 42781) +FeeQuoter_validatePoolReturnData:test_ProcessPoolReturnData_Success() (gas: 73330) +FeeQuoter_validatePoolReturnData:test_SourceTokenDataTooLarge_Revert() (gas: 107927) +FeeQuoter_validatePoolReturnData:test_TokenAmountArraysMismatching_Revert() (gas: 40112) +HybridUSDCTokenPoolMigrationTests:test_LockOrBurn_LocKReleaseMechanism_then_switchToPrimary_Success() (gas: 208394) +HybridUSDCTokenPoolMigrationTests:test_LockOrBurn_PrimaryMechanism_Success() (gas: 135507) HybridUSDCTokenPoolMigrationTests:test_LockOrBurn_WhileMigrationPause_Revert() (gas: 106651) -HybridUSDCTokenPoolMigrationTests:test_LockOrBurn_onLockReleaseMechanism_Success() (gas: 143944) -HybridUSDCTokenPoolMigrationTests:test_MintOrRelease_OnLockReleaseMechanism_Success() (gas: 230450) -HybridUSDCTokenPoolMigrationTests:test_MintOrRelease_OnLockReleaseMechanism_then_switchToPrimary_Success() (gas: 438517) -HybridUSDCTokenPoolMigrationTests:test_MintOrRelease_incomingMessageWithPrimaryMechanism() (gas: 270081) -HybridUSDCTokenPoolMigrationTests:test_burnLockedUSDC_invalidPermissions_Revert() (gas: 39130) +HybridUSDCTokenPoolMigrationTests:test_LockOrBurn_onLockReleaseMechanism_Success() (gas: 143950) +HybridUSDCTokenPoolMigrationTests:test_MintOrRelease_OnLockReleaseMechanism_Success() (gas: 230474) +HybridUSDCTokenPoolMigrationTests:test_MintOrRelease_OnLockReleaseMechanism_then_switchToPrimary_Success() (gas: 438559) +HybridUSDCTokenPoolMigrationTests:test_MintOrRelease_incomingMessageWithPrimaryMechanism() (gas: 270086) +HybridUSDCTokenPoolMigrationTests:test_burnLockedUSDC_invalidPermissions_Revert() (gas: 39154) HybridUSDCTokenPoolMigrationTests:test_cancelExistingCCTPMigrationProposal() (gas: 31181) HybridUSDCTokenPoolMigrationTests:test_cannotCancelANonExistentMigrationProposal() (gas: 12628) -HybridUSDCTokenPoolMigrationTests:test_cannotModifyLiquidityWithoutPermissions_Revert() (gas: 17158) -HybridUSDCTokenPoolMigrationTests:test_lockOrBurn_then_BurnInCCTPMigration_Success() (gas: 252682) -HybridUSDCTokenPoolMigrationTests:test_transferLiquidity_Success() (gas: 157130) -HybridUSDCTokenPoolMigrationTests:test_withdrawLiquidity_Success() (gas: 140828) -HybridUSDCTokenPoolTests:test_LockOrBurn_LocKReleaseMechanism_then_switchToPrimary_Success() (gas: 208164) -HybridUSDCTokenPoolTests:test_LockOrBurn_PrimaryMechanism_Success() (gas: 135396) +HybridUSDCTokenPoolMigrationTests:test_cannotModifyLiquidityWithoutPermissions_Revert() (gas: 17176) +HybridUSDCTokenPoolMigrationTests:test_lockOrBurn_then_BurnInCCTPMigration_Success() (gas: 252706) +HybridUSDCTokenPoolMigrationTests:test_transferLiquidity_Success() (gas: 157154) +HybridUSDCTokenPoolMigrationTests:test_withdrawLiquidity_Success() (gas: 140852) +HybridUSDCTokenPoolTests:test_LockOrBurn_LocKReleaseMechanism_then_switchToPrimary_Success() (gas: 208174) +HybridUSDCTokenPoolTests:test_LockOrBurn_PrimaryMechanism_Success() (gas: 135401) HybridUSDCTokenPoolTests:test_LockOrBurn_WhileMigrationPause_Revert() (gas: 106628) -HybridUSDCTokenPoolTests:test_LockOrBurn_onLockReleaseMechanism_Success() (gas: 143865) -HybridUSDCTokenPoolTests:test_MintOrRelease_OnLockReleaseMechanism_Success() (gas: 230383) -HybridUSDCTokenPoolTests:test_MintOrRelease_OnLockReleaseMechanism_then_switchToPrimary_Success() (gas: 438318) -HybridUSDCTokenPoolTests:test_MintOrRelease_incomingMessageWithPrimaryMechanism() (gas: 270011) -HybridUSDCTokenPoolTests:test_withdrawLiquidity_Success() (gas: 140783) -LockReleaseTokenPoolAndProxy_setRebalancer:test_SetRebalancer_Revert() (gas: 10977) -LockReleaseTokenPoolAndProxy_setRebalancer:test_SetRebalancer_Success() (gas: 17998) -LockReleaseTokenPoolPoolAndProxy_canAcceptLiquidity:test_CanAcceptLiquidity_Success() (gas: 3315195) -LockReleaseTokenPoolPoolAndProxy_provideLiquidity:test_LiquidityNotAccepted_Revert() (gas: 3311601) -LockReleaseTokenPoolPoolAndProxy_provideLiquidity:test_Unauthorized_Revert() (gas: 11405) -LockReleaseTokenPoolPoolAndProxy_supportsInterface:test_SupportsInterface_Success() (gas: 9977) -LockReleaseTokenPoolPoolAndProxy_withdrawalLiquidity:test_InsufficientLiquidity_Revert() (gas: 60060) +HybridUSDCTokenPoolTests:test_LockOrBurn_onLockReleaseMechanism_Success() (gas: 143871) +HybridUSDCTokenPoolTests:test_MintOrRelease_OnLockReleaseMechanism_Success() (gas: 230419) +HybridUSDCTokenPoolTests:test_MintOrRelease_OnLockReleaseMechanism_then_switchToPrimary_Success() (gas: 438372) +HybridUSDCTokenPoolTests:test_MintOrRelease_incomingMessageWithPrimaryMechanism() (gas: 270016) +HybridUSDCTokenPoolTests:test_withdrawLiquidity_Success() (gas: 140825) +LockReleaseTokenPoolAndProxy_setRebalancer:test_SetRebalancer_Revert() (gas: 10983) +LockReleaseTokenPoolAndProxy_setRebalancer:test_SetRebalancer_Success() (gas: 18010) +LockReleaseTokenPoolPoolAndProxy_canAcceptLiquidity:test_CanAcceptLiquidity_Success() (gas: 3195288) +LockReleaseTokenPoolPoolAndProxy_provideLiquidity:test_LiquidityNotAccepted_Revert() (gas: 3191694) +LockReleaseTokenPoolPoolAndProxy_provideLiquidity:test_Unauthorized_Revert() (gas: 11417) +LockReleaseTokenPoolPoolAndProxy_supportsInterface:test_SupportsInterface_Success() (gas: 10124) +LockReleaseTokenPoolPoolAndProxy_withdrawalLiquidity:test_InsufficientLiquidity_Revert() (gas: 60081) LockReleaseTokenPoolPoolAndProxy_withdrawalLiquidity:test_Unauthorized_Revert() (gas: 11386) -LockReleaseTokenPool_canAcceptLiquidity:test_CanAcceptLiquidity_Success() (gas: 3071906) -LockReleaseTokenPool_lockOrBurn:test_LockOrBurnWithAllowList_Revert() (gas: 29960) -LockReleaseTokenPool_lockOrBurn:test_LockOrBurnWithAllowList_Success() (gas: 79868) -LockReleaseTokenPool_lockOrBurn:test_PoolBurnRevertNotHealthy_Revert() (gas: 59479) -LockReleaseTokenPool_provideLiquidity:test_LiquidityNotAccepted_Revert() (gas: 3068356) -LockReleaseTokenPool_provideLiquidity:test_Unauthorized_Revert() (gas: 11405) -LockReleaseTokenPool_releaseOrMint:test_ChainNotAllowed_Revert() (gas: 72666) -LockReleaseTokenPool_releaseOrMint:test_PoolMintNotHealthy_Revert() (gas: 56211) -LockReleaseTokenPool_releaseOrMint:test_ReleaseOrMint_Success() (gas: 225296) -LockReleaseTokenPool_setRebalancer:test_SetRebalancer_Revert() (gas: 10999) +LockReleaseTokenPool_canAcceptLiquidity:test_CanAcceptLiquidity_Success() (gas: 2982884) +LockReleaseTokenPool_lockOrBurn:test_LockOrBurnWithAllowList_Revert() (gas: 29972) +LockReleaseTokenPool_lockOrBurn:test_LockOrBurnWithAllowList_Success() (gas: 79880) +LockReleaseTokenPool_lockOrBurn:test_PoolBurnRevertNotHealthy_Revert() (gas: 59491) +LockReleaseTokenPool_provideLiquidity:test_LiquidityNotAccepted_Revert() (gas: 2979334) +LockReleaseTokenPool_provideLiquidity:test_Unauthorized_Revert() (gas: 11417) +LockReleaseTokenPool_releaseOrMint:test_ChainNotAllowed_Revert() (gas: 72680) +LockReleaseTokenPool_releaseOrMint:test_PoolMintNotHealthy_Revert() (gas: 56223) +LockReleaseTokenPool_releaseOrMint:test_ReleaseOrMint_Success() (gas: 225332) +LockReleaseTokenPool_setRebalancer:test_SetRebalancer_Revert() (gas: 11005) LockReleaseTokenPool_setRebalancer:test_SetRebalancer_Success() (gas: 18064) -LockReleaseTokenPool_supportsInterface:test_SupportsInterface_Success() (gas: 9977) -LockReleaseTokenPool_transferLiquidity:test_transferLiquidity_Success() (gas: 83177) +LockReleaseTokenPool_supportsInterface:test_SupportsInterface_Success() (gas: 10124) +LockReleaseTokenPool_transferLiquidity:test_transferLiquidity_Success() (gas: 83192) LockReleaseTokenPool_transferLiquidity:test_transferLiquidity_transferTooMuch_Revert() (gas: 55899) -LockReleaseTokenPool_withdrawalLiquidity:test_InsufficientLiquidity_Revert() (gas: 60060) +LockReleaseTokenPool_withdrawalLiquidity:test_InsufficientLiquidity_Revert() (gas: 60081) LockReleaseTokenPool_withdrawalLiquidity:test_Unauthorized_Revert() (gas: 11386) -LockRelease_setRateLimitAdmin:test_SetRateLimitAdmin_Revert() (gas: 11036) -LockRelease_setRateLimitAdmin:test_SetRateLimitAdmin_Success() (gas: 35030) -MerkleMultiProofTest:test_CVE_2023_34459() (gas: 5454) -MerkleMultiProofTest:test_EmptyLeaf_Revert() (gas: 3555) +LockRelease_setRateLimitAdmin:test_SetRateLimitAdmin_Revert() (gas: 11048) +LockRelease_setRateLimitAdmin:test_SetRateLimitAdmin_Success() (gas: 35036) +MerkleMultiProofTest:test_CVE_2023_34459() (gas: 5460) +MerkleMultiProofTest:test_EmptyLeaf_Revert() (gas: 3573) MerkleMultiProofTest:test_MerkleRoot256() (gas: 394879) MerkleMultiProofTest:test_MerkleRootSingleLeaf_Success() (gas: 3649) MerkleMultiProofTest:test_SpecSync_gas() (gas: 34123) -MockRouterTest:test_ccipSendWithInsufficientNativeTokens_Revert() (gas: 34019) -MockRouterTest:test_ccipSendWithInvalidMsgValue_Revert() (gas: 60812) -MockRouterTest:test_ccipSendWithLinkFeeTokenAndValidMsgValue_Success() (gas: 126480) -MockRouterTest:test_ccipSendWithLinkFeeTokenbutInsufficientAllowance_Revert() (gas: 63419) +MockRouterTest:test_ccipSendWithInsufficientNativeTokens_Revert() (gas: 34025) +MockRouterTest:test_ccipSendWithInvalidMsgValue_Revert() (gas: 60830) +MockRouterTest:test_ccipSendWithLinkFeeTokenAndValidMsgValue_Success() (gas: 126492) +MockRouterTest:test_ccipSendWithLinkFeeTokenbutInsufficientAllowance_Revert() (gas: 63431) MockRouterTest:test_ccipSendWithSufficientNativeFeeTokens_Success() (gas: 43952) MultiAggregateRateLimiter_applyRateLimiterConfigUpdates:test_MultipleConfigsBothLanes_Success() (gas: 132457) MultiAggregateRateLimiter_applyRateLimiterConfigUpdates:test_MultipleConfigs_Success() (gas: 313023) -MultiAggregateRateLimiter_applyRateLimiterConfigUpdates:test_OnlyCallableByOwner_Revert() (gas: 17750) +MultiAggregateRateLimiter_applyRateLimiterConfigUpdates:test_OnlyCallableByOwner_Revert() (gas: 17756) MultiAggregateRateLimiter_applyRateLimiterConfigUpdates:test_SingleConfigOutbound_Success() (gas: 76030) MultiAggregateRateLimiter_applyRateLimiterConfigUpdates:test_SingleConfig_Success() (gas: 75946) MultiAggregateRateLimiter_applyRateLimiterConfigUpdates:test_UpdateExistingConfigWithNoDifference_Success() (gas: 38436) MultiAggregateRateLimiter_applyRateLimiterConfigUpdates:test_UpdateExistingConfig_Success() (gas: 53473) MultiAggregateRateLimiter_applyRateLimiterConfigUpdates:test_ZeroChainSelector_Revert() (gas: 17046) MultiAggregateRateLimiter_applyRateLimiterConfigUpdates:test_ZeroConfigs_Success() (gas: 12361) -MultiAggregateRateLimiter_constructor:test_ConstructorNoAuthorizedCallers_Success() (gas: 2050112) -MultiAggregateRateLimiter_constructor:test_Constructor_Success() (gas: 2166413) +MultiAggregateRateLimiter_constructor:test_ConstructorNoAuthorizedCallers_Success() (gas: 2050118) +MultiAggregateRateLimiter_constructor:test_Constructor_Success() (gas: 2166419) MultiAggregateRateLimiter_getTokenBucket:test_GetTokenBucket_Success() (gas: 30404) -MultiAggregateRateLimiter_getTokenBucket:test_Refill_Success() (gas: 47673) +MultiAggregateRateLimiter_getTokenBucket:test_Refill_Success() (gas: 47679) MultiAggregateRateLimiter_getTokenBucket:test_TimeUnderflow_Revert() (gas: 15863) -MultiAggregateRateLimiter_getTokenValue:test_GetTokenValue_Success() (gas: 19646) -MultiAggregateRateLimiter_getTokenValue:test_NoTokenPrice_Reverts() (gas: 21231) -MultiAggregateRateLimiter_onInboundMessage:test_ValidateMessageFromUnauthorizedCaller_Revert() (gas: 14533) -MultiAggregateRateLimiter_onInboundMessage:test_ValidateMessageWithDifferentTokensOnDifferentChains_Success() (gas: 214200) -MultiAggregateRateLimiter_onInboundMessage:test_ValidateMessageWithDisabledRateLimitToken_Success() (gas: 60457) -MultiAggregateRateLimiter_onInboundMessage:test_ValidateMessageWithNoTokens_Success() (gas: 17599) -MultiAggregateRateLimiter_onInboundMessage:test_ValidateMessageWithRateLimitDisabled_Success() (gas: 45006) -MultiAggregateRateLimiter_onInboundMessage:test_ValidateMessageWithRateLimitExceeded_Revert() (gas: 50540) -MultiAggregateRateLimiter_onInboundMessage:test_ValidateMessageWithRateLimitReset_Success() (gas: 78784) -MultiAggregateRateLimiter_onInboundMessage:test_ValidateMessageWithTokensOnDifferentChains_Success() (gas: 312459) -MultiAggregateRateLimiter_onInboundMessage:test_ValidateMessageWithTokens_Success() (gas: 54732) +MultiAggregateRateLimiter_getTokenValue:test_GetTokenValue_Success() (gas: 19652) +MultiAggregateRateLimiter_getTokenValue:test_NoTokenPrice_Reverts() (gas: 21237) +MultiAggregateRateLimiter_onInboundMessage:test_ValidateMessageFromUnauthorizedCaller_Revert() (gas: 14539) +MultiAggregateRateLimiter_onInboundMessage:test_ValidateMessageWithDifferentTokensOnDifferentChains_Success() (gas: 214278) +MultiAggregateRateLimiter_onInboundMessage:test_ValidateMessageWithDisabledRateLimitToken_Success() (gas: 60480) +MultiAggregateRateLimiter_onInboundMessage:test_ValidateMessageWithNoTokens_Success() (gas: 17605) +MultiAggregateRateLimiter_onInboundMessage:test_ValidateMessageWithRateLimitDisabled_Success() (gas: 45057) +MultiAggregateRateLimiter_onInboundMessage:test_ValidateMessageWithRateLimitExceeded_Revert() (gas: 50558) +MultiAggregateRateLimiter_onInboundMessage:test_ValidateMessageWithRateLimitReset_Success() (gas: 78910) +MultiAggregateRateLimiter_onInboundMessage:test_ValidateMessageWithTokensOnDifferentChains_Success() (gas: 312537) +MultiAggregateRateLimiter_onInboundMessage:test_ValidateMessageWithTokens_Success() (gas: 54755) MultiAggregateRateLimiter_onOutboundMessage:test_RateLimitValueDifferentLanes_Success() (gas: 1073667462) MultiAggregateRateLimiter_onOutboundMessage:test_ValidateMessageWithNoTokens_Success() (gas: 19158) MultiAggregateRateLimiter_onOutboundMessage:test_onOutboundMessage_ValidateMessageFromUnauthorizedCaller_Revert() (gas: 15829) MultiAggregateRateLimiter_onOutboundMessage:test_onOutboundMessage_ValidateMessageWithDifferentTokensOnDifferentChains_Success() (gas: 214044) MultiAggregateRateLimiter_onOutboundMessage:test_onOutboundMessage_ValidateMessageWithDisabledRateLimitToken_Success() (gas: 62240) -MultiAggregateRateLimiter_onOutboundMessage:test_onOutboundMessage_ValidateMessageWithRateLimitDisabled_Success() (gas: 46818) +MultiAggregateRateLimiter_onOutboundMessage:test_onOutboundMessage_ValidateMessageWithRateLimitDisabled_Success() (gas: 46824) MultiAggregateRateLimiter_onOutboundMessage:test_onOutboundMessage_ValidateMessageWithRateLimitExceeded_Revert() (gas: 52361) -MultiAggregateRateLimiter_onOutboundMessage:test_onOutboundMessage_ValidateMessageWithRateLimitReset_Success() (gas: 80041) +MultiAggregateRateLimiter_onOutboundMessage:test_onOutboundMessage_ValidateMessageWithRateLimitReset_Success() (gas: 80053) MultiAggregateRateLimiter_onOutboundMessage:test_onOutboundMessage_ValidateMessageWithTokensOnDifferentChains_Success() (gas: 312529) MultiAggregateRateLimiter_onOutboundMessage:test_onOutboundMessage_ValidateMessageWithTokens_Success() (gas: 56537) -MultiAggregateRateLimiter_setFeeQuoter:test_OnlyOwner_Revert() (gas: 11325) +MultiAggregateRateLimiter_setFeeQuoter:test_OnlyOwner_Revert() (gas: 11331) MultiAggregateRateLimiter_setFeeQuoter:test_Owner_Success() (gas: 19072) MultiAggregateRateLimiter_setFeeQuoter:test_ZeroAddress_Revert() (gas: 10597) -MultiAggregateRateLimiter_updateRateLimitTokens:test_NonOwner_Revert() (gas: 18800) +MultiAggregateRateLimiter_updateRateLimitTokens:test_NonOwner_Revert() (gas: 18806) MultiAggregateRateLimiter_updateRateLimitTokens:test_UpdateRateLimitTokensMultipleChains_Success() (gas: 279944) MultiAggregateRateLimiter_updateRateLimitTokens:test_UpdateRateLimitTokensSingleChain_Success() (gas: 254495) -MultiAggregateRateLimiter_updateRateLimitTokens:test_UpdateRateLimitTokens_AddsAndRemoves_Success() (gas: 204465) -MultiAggregateRateLimiter_updateRateLimitTokens:test_UpdateRateLimitTokens_RemoveNonExistentToken_Success() (gas: 28703) +MultiAggregateRateLimiter_updateRateLimitTokens:test_UpdateRateLimitTokens_AddsAndRemoves_Success() (gas: 204470) +MultiAggregateRateLimiter_updateRateLimitTokens:test_UpdateRateLimitTokens_RemoveNonExistentToken_Success() (gas: 28709) MultiAggregateRateLimiter_updateRateLimitTokens:test_ZeroDestToken_Revert() (gas: 18279) MultiAggregateRateLimiter_updateRateLimitTokens:test_ZeroSourceToken_Revert() (gas: 18208) MultiOCR3Base_setOCR3Configs:test_FMustBePositive_Revert() (gas: 59255) -MultiOCR3Base_setOCR3Configs:test_FTooHigh_Revert() (gas: 43629) -MultiOCR3Base_setOCR3Configs:test_RepeatSignerAddress_Revert() (gas: 283636) -MultiOCR3Base_setOCR3Configs:test_RepeatTransmitterAddress_Revert() (gas: 422261) -MultiOCR3Base_setOCR3Configs:test_SetConfigIgnoreSigners_Success() (gas: 511281) -MultiOCR3Base_setOCR3Configs:test_SetConfigWithSigners_Success() (gas: 828440) -MultiOCR3Base_setOCR3Configs:test_SetConfigWithoutSigners_Success() (gas: 456886) +MultiOCR3Base_setOCR3Configs:test_FTooHigh_Revert() (gas: 43632) +MultiOCR3Base_setOCR3Configs:test_RepeatSignerAddress_Revert() (gas: 283639) +MultiOCR3Base_setOCR3Configs:test_RepeatTransmitterAddress_Revert() (gas: 422264) +MultiOCR3Base_setOCR3Configs:test_SetConfigIgnoreSigners_Success() (gas: 511308) +MultiOCR3Base_setOCR3Configs:test_SetConfigWithSigners_Success() (gas: 828467) +MultiOCR3Base_setOCR3Configs:test_SetConfigWithoutSigners_Success() (gas: 456913) MultiOCR3Base_setOCR3Configs:test_SetConfigsZeroInput_Success() (gas: 12382) -MultiOCR3Base_setOCR3Configs:test_SetMultipleConfigs_Success() (gas: 2140159) -MultiOCR3Base_setOCR3Configs:test_SignerCannotBeZeroAddress_Revert() (gas: 141717) -MultiOCR3Base_setOCR3Configs:test_StaticConfigChange_Revert() (gas: 807340) -MultiOCR3Base_setOCR3Configs:test_TooManySigners_Revert() (gas: 158799) -MultiOCR3Base_setOCR3Configs:test_TooManyTransmitters_Revert() (gas: 112293) -MultiOCR3Base_setOCR3Configs:test_TransmitterCannotBeZeroAddress_Revert() (gas: 254083) -MultiOCR3Base_setOCR3Configs:test_UpdateConfigSigners_Success() (gas: 860224) -MultiOCR3Base_setOCR3Configs:test_UpdateConfigTransmittersWithoutSigners_Success() (gas: 475193) +MultiOCR3Base_setOCR3Configs:test_SetMultipleConfigs_Success() (gas: 2140246) +MultiOCR3Base_setOCR3Configs:test_SignerCannotBeZeroAddress_Revert() (gas: 141720) +MultiOCR3Base_setOCR3Configs:test_StaticConfigChange_Revert() (gas: 807349) +MultiOCR3Base_setOCR3Configs:test_TooManySigners_Revert() (gas: 158802) +MultiOCR3Base_setOCR3Configs:test_TooManyTransmitters_Revert() (gas: 112296) +MultiOCR3Base_setOCR3Configs:test_TransmitterCannotBeZeroAddress_Revert() (gas: 254086) +MultiOCR3Base_setOCR3Configs:test_UpdateConfigSigners_Success() (gas: 860245) +MultiOCR3Base_setOCR3Configs:test_UpdateConfigTransmittersWithoutSigners_Success() (gas: 475215) MultiOCR3Base_transmit:test_ConfigDigestMismatch_Revert() (gas: 42845) MultiOCR3Base_transmit:test_ForkedChain_Revert() (gas: 48450) -MultiOCR3Base_transmit:test_InsufficientSignatures_Revert() (gas: 76928) +MultiOCR3Base_transmit:test_InsufficientSignatures_Revert() (gas: 76934) MultiOCR3Base_transmit:test_NonUniqueSignature_Revert() (gas: 65768) MultiOCR3Base_transmit:test_SignatureOutOfRegistration_Revert() (gas: 33417) -MultiOCR3Base_transmit:test_TooManySignatures_Revert() (gas: 79519) +MultiOCR3Base_transmit:test_TooManySignatures_Revert() (gas: 79525) MultiOCR3Base_transmit:test_TransmitSigners_gas_Success() (gas: 33631) -MultiOCR3Base_transmit:test_TransmitWithExtraCalldataArgs_Revert() (gas: 47122) -MultiOCR3Base_transmit:test_TransmitWithLessCalldataArgs_Revert() (gas: 25690) +MultiOCR3Base_transmit:test_TransmitWithExtraCalldataArgs_Revert() (gas: 47128) +MultiOCR3Base_transmit:test_TransmitWithLessCalldataArgs_Revert() (gas: 25696) MultiOCR3Base_transmit:test_TransmitWithoutSignatureVerification_gas_Success() (gas: 18712) -MultiOCR3Base_transmit:test_UnAuthorizedTransmitter_Revert() (gas: 24189) +MultiOCR3Base_transmit:test_UnAuthorizedTransmitter_Revert() (gas: 24195) MultiOCR3Base_transmit:test_UnauthorizedSigner_Revert() (gas: 61131) -MultiOCR3Base_transmit:test_UnconfiguredPlugin_Revert() (gas: 39888) -MultiOCR3Base_transmit:test_ZeroSignatures_Revert() (gas: 32971) -MultiOnRampTokenPoolReentrancy:test_OnRampTokenPoolReentrancy_Success() (gas: 411709) -MultiRampsE2E:test_E2E_3MessagesMMultiOffRampSuccess_gas() (gas: 1526826) -NonceManager_NonceIncrementation:test_getIncrementedOutboundNonce_Success() (gas: 37916) +MultiOCR3Base_transmit:test_UnconfiguredPlugin_Revert() (gas: 39894) +MultiOCR3Base_transmit:test_ZeroSignatures_Revert() (gas: 32977) +MultiOnRampTokenPoolReentrancy:test_OnRampTokenPoolReentrancy_Success() (gas: 411751) +MultiRampsE2E:test_E2E_3MessagesMMultiOffRampSuccess_gas() (gas: 1537590) +NonceManager_NonceIncrementation:test_getIncrementedOutboundNonce_Success() (gas: 37922) NonceManager_NonceIncrementation:test_incrementInboundNonce_Skip() (gas: 23709) NonceManager_NonceIncrementation:test_incrementInboundNonce_Success() (gas: 38799) -NonceManager_NonceIncrementation:test_incrementNoncesInboundAndOutbound_Success() (gas: 71898) -NonceManager_OffRampUpgrade:test_NoPrevOffRampForChain_Success() (gas: 260404) -NonceManager_OffRampUpgrade:test_UpgradedNonceNewSenderStartsAtZero_Success() (gas: 264546) -NonceManager_OffRampUpgrade:test_UpgradedNonceStartsAtV1Nonce_Success() (gas: 327828) -NonceManager_OffRampUpgrade:test_UpgradedOffRampNonceSkipsIfMsgInFlight_Success() (gas: 299527) -NonceManager_OffRampUpgrade:test_UpgradedSenderNoncesReadsPreviousRampTransitive_Success() (gas: 244871) -NonceManager_OffRampUpgrade:test_UpgradedSenderNoncesReadsPreviousRamp_Success() (gas: 232964) -NonceManager_OffRampUpgrade:test_Upgraded_Success() (gas: 153309) -NonceManager_OnRampUpgrade:test_UpgradeNonceNewSenderStartsAtZero_Success() (gas: 168358) -NonceManager_OnRampUpgrade:test_UpgradeNonceStartsAtV1Nonce_Success() (gas: 220193) -NonceManager_OnRampUpgrade:test_UpgradeSenderNoncesReadsPreviousRamp_Success() (gas: 125157) +NonceManager_NonceIncrementation:test_incrementNoncesInboundAndOutbound_Success() (gas: 71904) +NonceManager_OffRampUpgrade:test_NoPrevOffRampForChain_Success() (gas: 262138) +NonceManager_OffRampUpgrade:test_UpgradedNonceNewSenderStartsAtZero_Success() (gas: 266256) +NonceManager_OffRampUpgrade:test_UpgradedNonceStartsAtV1Nonce_Success() (gas: 331224) +NonceManager_OffRampUpgrade:test_UpgradedOffRampNonceSkipsIfMsgInFlight_Success() (gas: 302071) +NonceManager_OffRampUpgrade:test_UpgradedSenderNoncesReadsPreviousRampTransitive_Success() (gas: 245579) +NonceManager_OffRampUpgrade:test_UpgradedSenderNoncesReadsPreviousRamp_Success() (gas: 233648) +NonceManager_OffRampUpgrade:test_Upgraded_Success() (gas: 154815) +NonceManager_OnRampUpgrade:test_UpgradeNonceNewSenderStartsAtZero_Success() (gas: 168463) +NonceManager_OnRampUpgrade:test_UpgradeNonceStartsAtV1Nonce_Success() (gas: 220298) +NonceManager_OnRampUpgrade:test_UpgradeSenderNoncesReadsPreviousRamp_Success() (gas: 125472) NonceManager_OnRampUpgrade:test_Upgrade_Success() (gas: 107566) -NonceManager_applyPreviousRampsUpdates:test_MultipleRampsUpdates() (gas: 122955) -NonceManager_applyPreviousRampsUpdates:test_PreviousRampAlreadySetOffRamp_Revert() (gas: 42965) -NonceManager_applyPreviousRampsUpdates:test_PreviousRampAlreadySetOnRampAndOffRamp_Revert() (gas: 64288) -NonceManager_applyPreviousRampsUpdates:test_PreviousRampAlreadySetOnRamp_Revert() (gas: 42829) -NonceManager_applyPreviousRampsUpdates:test_SingleRampUpdate() (gas: 66576) +NonceManager_applyPreviousRampsUpdates:test_MultipleRampsUpdates() (gas: 122961) +NonceManager_applyPreviousRampsUpdates:test_PreviousRampAlreadySetOffRamp_Revert() (gas: 42983) +NonceManager_applyPreviousRampsUpdates:test_PreviousRampAlreadySetOnRampAndOffRamp_Revert() (gas: 64312) +NonceManager_applyPreviousRampsUpdates:test_PreviousRampAlreadySetOnRamp_Revert() (gas: 42847) +NonceManager_applyPreviousRampsUpdates:test_SingleRampUpdate() (gas: 66594) NonceManager_applyPreviousRampsUpdates:test_ZeroInput() (gas: 12025) NonceManager_typeAndVersion:test_typeAndVersion() (gas: 9699) -OCR2BaseNoChecks_setOCR2Config:test_FMustBePositive_Revert() (gas: 12183) -OCR2BaseNoChecks_setOCR2Config:test_RepeatAddress_Revert() (gas: 42404) -OCR2BaseNoChecks_setOCR2Config:test_SetConfigSuccess_gas() (gas: 84585) -OCR2BaseNoChecks_setOCR2Config:test_TooManyTransmitter_Revert() (gas: 38150) +OCR2BaseNoChecks_setOCR2Config:test_FMustBePositive_Revert() (gas: 12195) +OCR2BaseNoChecks_setOCR2Config:test_RepeatAddress_Revert() (gas: 42416) +OCR2BaseNoChecks_setOCR2Config:test_SetConfigSuccess_gas() (gas: 84590) +OCR2BaseNoChecks_setOCR2Config:test_TooManyTransmitter_Revert() (gas: 38162) OCR2BaseNoChecks_setOCR2Config:test_TransmitterCannotBeZeroAddress_Revert() (gas: 24290) -OCR2BaseNoChecks_transmit:test_ConfigDigestMismatch_Revert() (gas: 17469) -OCR2BaseNoChecks_transmit:test_ForkedChain_Revert() (gas: 26762) +OCR2BaseNoChecks_transmit:test_ConfigDigestMismatch_Revert() (gas: 17475) +OCR2BaseNoChecks_transmit:test_ForkedChain_Revert() (gas: 26768) OCR2BaseNoChecks_transmit:test_TransmitSuccess_gas() (gas: 27499) OCR2BaseNoChecks_transmit:test_UnAuthorizedTransmitter_Revert() (gas: 21317) OCR2Base_setOCR2Config:test_FMustBePositive_Revert() (gas: 12201) OCR2Base_setOCR2Config:test_FTooHigh_Revert() (gas: 12357) OCR2Base_setOCR2Config:test_OracleOutOfRegister_Revert() (gas: 14904) OCR2Base_setOCR2Config:test_RepeatAddress_Revert() (gas: 45454) -OCR2Base_setOCR2Config:test_SetConfigSuccess_gas() (gas: 155211) -OCR2Base_setOCR2Config:test_SingerCannotBeZeroAddress_Revert() (gas: 24407) +OCR2Base_setOCR2Config:test_SetConfigSuccess_gas() (gas: 155216) +OCR2Base_setOCR2Config:test_SingerCannotBeZeroAddress_Revert() (gas: 24413) OCR2Base_setOCR2Config:test_TooManySigners_Revert() (gas: 20520) -OCR2Base_setOCR2Config:test_TransmitterCannotBeZeroAddress_Revert() (gas: 47298) -OCR2Base_transmit:test_ConfigDigestMismatch_Revert() (gas: 19638) -OCR2Base_transmit:test_ForkedChain_Revert() (gas: 37713) +OCR2Base_setOCR2Config:test_TransmitterCannotBeZeroAddress_Revert() (gas: 47304) +OCR2Base_transmit:test_ConfigDigestMismatch_Revert() (gas: 19644) +OCR2Base_transmit:test_ForkedChain_Revert() (gas: 37719) OCR2Base_transmit:test_NonUniqueSignature_Revert() (gas: 55324) OCR2Base_transmit:test_SignatureOutOfRegistration_Revert() (gas: 20977) OCR2Base_transmit:test_Transmit2SignersSuccess_gas() (gas: 51689) OCR2Base_transmit:test_UnAuthorizedTransmitter_Revert() (gas: 23499) OCR2Base_transmit:test_UnauthorizedSigner_Revert() (gas: 39695) OCR2Base_transmit:test_WrongNumberOfSignatures_Revert() (gas: 20572) -OffRamp_afterOC3ConfigSet:test_afterOCR3ConfigSet_SignatureVerificationDisabled_Revert() (gas: 6056933) -OffRamp_applySourceChainConfigUpdates:test_AddMultipleChains_Success() (gas: 468074) -OffRamp_applySourceChainConfigUpdates:test_AddNewChain_Success() (gas: 99238) -OffRamp_applySourceChainConfigUpdates:test_ApplyZeroUpdates_Success() (gas: 12414) -OffRamp_applySourceChainConfigUpdates:test_ReplaceExistingChainOnRamp_Revert() (gas: 93240) -OffRamp_applySourceChainConfigUpdates:test_ReplaceExistingChain_Success() (gas: 109971) -OffRamp_applySourceChainConfigUpdates:test_RouterAddress_Revert() (gas: 13288) -OffRamp_applySourceChainConfigUpdates:test_ZeroOnRampAddress_Revert() (gas: 18022) -OffRamp_applySourceChainConfigUpdates:test_ZeroSourceChainSelector_Revert() (gas: 15371) -OffRamp_batchExecute:test_MultipleReportsDifferentChainsSkipCursedChain_Success() (gas: 177419) -OffRamp_batchExecute:test_MultipleReportsDifferentChains_Success() (gas: 334109) -OffRamp_batchExecute:test_MultipleReportsSameChain_Success() (gas: 277477) -OffRamp_batchExecute:test_MultipleReportsSkipDuplicate_Success() (gas: 168556) -OffRamp_batchExecute:test_OutOfBoundsGasLimitsAccess_Revert() (gas: 188490) -OffRamp_batchExecute:test_SingleReport_Success() (gas: 156460) -OffRamp_batchExecute:test_Unhealthy_Success() (gas: 572587) -OffRamp_batchExecute:test_ZeroReports_Revert() (gas: 10486) -OffRamp_ccipReceive:test_Reverts() (gas: 15770) -OffRamp_commit:test_FailedRMNVerification_Reverts() (gas: 64420) -OffRamp_commit:test_InvalidIntervalMinLargerThanMax_Revert() (gas: 67632) -OffRamp_commit:test_InvalidInterval_Revert() (gas: 59886) -OffRamp_commit:test_InvalidRootRevert() (gas: 58921) -OffRamp_commit:test_NoConfigWithOtherConfigPresent_Revert() (gas: 6661100) -OffRamp_commit:test_NoConfig_Revert() (gas: 6244915) -OffRamp_commit:test_OnlyGasPriceUpdates_Success() (gas: 112473) -OffRamp_commit:test_OnlyPriceUpdateStaleReport_Revert() (gas: 120501) -OffRamp_commit:test_OnlyTokenPriceUpdates_Success() (gas: 112494) -OffRamp_commit:test_PriceSequenceNumberCleared_Success() (gas: 353540) -OffRamp_commit:test_ReportAndPriceUpdate_Success() (gas: 164945) -OffRamp_commit:test_ReportOnlyRootSuccess_gas() (gas: 139934) -OffRamp_commit:test_RootAlreadyCommitted_Revert() (gas: 141925) -OffRamp_commit:test_SourceChainNotEnabled_Revert() (gas: 59208) -OffRamp_commit:test_StaleReportWithRoot_Success() (gas: 235331) -OffRamp_commit:test_UnauthorizedTransmitter_Revert() (gas: 121451) -OffRamp_commit:test_Unhealthy_Revert() (gas: 57938) -OffRamp_commit:test_ValidPriceUpdateThenStaleReportWithRoot_Success() (gas: 208966) -OffRamp_commit:test_ZeroEpochAndRound_Revert() (gas: 51273) -OffRamp_constructor:test_Constructor_Success() (gas: 6244332) -OffRamp_constructor:test_SourceChainSelector_Revert() (gas: 136075) -OffRamp_constructor:test_ZeroChainSelector_Revert() (gas: 103518) -OffRamp_constructor:test_ZeroNonceManager_Revert() (gas: 101418) -OffRamp_constructor:test_ZeroOnRampAddress_Revert() (gas: 138723) -OffRamp_constructor:test_ZeroRMNRemote_Revert() (gas: 101338) -OffRamp_constructor:test_ZeroTokenAdminRegistry_Revert() (gas: 101376) -OffRamp_execute:test_IncorrectArrayType_Revert() (gas: 17505) -OffRamp_execute:test_LargeBatch_Success() (gas: 3391111) -OffRamp_execute:test_MultipleReportsWithPartialValidationFailures_Success() (gas: 372353) -OffRamp_execute:test_MultipleReports_Success() (gas: 299779) -OffRamp_execute:test_NoConfigWithOtherConfigPresent_Revert() (gas: 7069102) -OffRamp_execute:test_NoConfig_Revert() (gas: 6293902) -OffRamp_execute:test_NonArray_Revert() (gas: 27787) -OffRamp_execute:test_SingleReport_Success() (gas: 175730) -OffRamp_execute:test_UnauthorizedTransmitter_Revert() (gas: 147970) -OffRamp_execute:test_WrongConfigWithSigners_Revert() (gas: 7071845) -OffRamp_execute:test_ZeroReports_Revert() (gas: 17227) -OffRamp_executeSingleMessage:test_MessageSender_Revert() (gas: 18682) -OffRamp_executeSingleMessage:test_NonContractWithTokens_Success() (gas: 247849) -OffRamp_executeSingleMessage:test_NonContract_Success() (gas: 21002) -OffRamp_executeSingleMessage:test_TokenHandlingError_Revert() (gas: 208927) -OffRamp_executeSingleMessage:test_ZeroGasDONExecution_Revert() (gas: 49237) -OffRamp_executeSingleMessage:test_executeSingleMessage_NoTokens_Success() (gas: 48725) -OffRamp_executeSingleMessage:test_executeSingleMessage_WithFailingValidationNoRouterCall_Revert() (gas: 228696) -OffRamp_executeSingleMessage:test_executeSingleMessage_WithFailingValidation_Revert() (gas: 85260) -OffRamp_executeSingleMessage:test_executeSingleMessage_WithTokens_Success() (gas: 279681) -OffRamp_executeSingleMessage:test_executeSingleMessage_WithValidation_Success() (gas: 91512) -OffRamp_executeSingleReport:test_DisabledSourceChain_Revert() (gas: 28226) -OffRamp_executeSingleReport:test_EmptyReport_Revert() (gas: 21832) -OffRamp_executeSingleReport:test_InvalidSourcePoolAddress_Success() (gas: 499180) -OffRamp_executeSingleReport:test_ManualExecutionNotYetEnabled_Revert() (gas: 48620) -OffRamp_executeSingleReport:test_MismatchingDestChainSelector_Revert() (gas: 33892) -OffRamp_executeSingleReport:test_MismatchingOnRampRoot_Revert() (gas: 154020) -OffRamp_executeSingleReport:test_NonExistingSourceChain_Revert() (gas: 28449) -OffRamp_executeSingleReport:test_ReceiverError_Success() (gas: 188116) -OffRamp_executeSingleReport:test_RetryFailedMessageWithoutManualExecution_Revert() (gas: 198571) -OffRamp_executeSingleReport:test_RootNotCommitted_Revert() (gas: 41037) -OffRamp_executeSingleReport:test_RouterYULCall_Revert() (gas: 447967) -OffRamp_executeSingleReport:test_SingleMessageNoTokensOtherChain_Success() (gas: 248847) -OffRamp_executeSingleReport:test_SingleMessageNoTokensUnordered_Success() (gas: 193195) -OffRamp_executeSingleReport:test_SingleMessageNoTokens_Success() (gas: 212816) -OffRamp_executeSingleReport:test_SingleMessageToNonCCIPReceiver_Success() (gas: 260215) -OffRamp_executeSingleReport:test_SingleMessagesNoTokensSuccess_gas() (gas: 141403) -OffRamp_executeSingleReport:test_SkippedIncorrectNonceStillExecutes_Success() (gas: 423165) -OffRamp_executeSingleReport:test_SkippedIncorrectNonce_Success() (gas: 59057) -OffRamp_executeSingleReport:test_TokenDataMismatch_Revert() (gas: 74155) -OffRamp_executeSingleReport:test_TwoMessagesWithTokensAndGE_Success() (gas: 599623) -OffRamp_executeSingleReport:test_TwoMessagesWithTokensSuccess_gas() (gas: 543529) -OffRamp_executeSingleReport:test_UnexpectedTokenData_Revert() (gas: 33663) -OffRamp_executeSingleReport:test_UnhealthySingleChainCurse_Revert() (gas: 568482) -OffRamp_executeSingleReport:test_Unhealthy_Success() (gas: 568496) -OffRamp_executeSingleReport:test_WithCurseOnAnotherSourceChain_Success() (gas: 473801) -OffRamp_executeSingleReport:test__execute_SkippedAlreadyExecutedMessageUnordered_Success() (gas: 135923) -OffRamp_executeSingleReport:test__execute_SkippedAlreadyExecutedMessage_Success() (gas: 165161) -OffRamp_getExecutionState:test_FillExecutionState_Success() (gas: 3737630) -OffRamp_getExecutionState:test_GetDifferentChainExecutionState_Success() (gas: 119064) -OffRamp_getExecutionState:test_GetExecutionState_Success() (gas: 88148) -OffRamp_manuallyExecute:test_ManualExecGasLimitMismatchSingleReport_Revert() (gas: 79036) -OffRamp_manuallyExecute:test_manuallyExecute_DestinationGasAmountCountMismatch_Revert() (gas: 78924) -OffRamp_manuallyExecute:test_manuallyExecute_DoesNotRevertIfUntouched_Success() (gas: 172960) -OffRamp_manuallyExecute:test_manuallyExecute_FailedTx_Revert() (gas: 213287) -OffRamp_manuallyExecute:test_manuallyExecute_ForkedChain_Revert() (gas: 26909) -OffRamp_manuallyExecute:test_manuallyExecute_GasLimitMismatchMultipleReports_Revert() (gas: 159537) -OffRamp_manuallyExecute:test_manuallyExecute_InvalidReceiverExecutionGasLimit_Revert() (gas: 27468) -OffRamp_manuallyExecute:test_manuallyExecute_InvalidTokenGasOverride_Revert() (gas: 58874) -OffRamp_manuallyExecute:test_manuallyExecute_LowGasLimit_Success() (gas: 532013) -OffRamp_manuallyExecute:test_manuallyExecute_MultipleReportsWithSingleCursedLane_Revert() (gas: 317521) -OffRamp_manuallyExecute:test_manuallyExecute_ReentrancyFails_Success() (gas: 2390649) -OffRamp_manuallyExecute:test_manuallyExecute_SourceChainSelectorMismatch_Revert() (gas: 164912) -OffRamp_manuallyExecute:test_manuallyExecute_Success() (gas: 226245) -OffRamp_manuallyExecute:test_manuallyExecute_WithGasOverride_Success() (gas: 226785) -OffRamp_manuallyExecute:test_manuallyExecute_WithMultiReportGasOverride_Success() (gas: 778479) -OffRamp_manuallyExecute:test_manuallyExecute_WithPartialMessages_Success() (gas: 346205) -OffRamp_releaseOrMintSingleToken:test__releaseOrMintSingleToken_NotACompatiblePool_Revert() (gas: 40239) -OffRamp_releaseOrMintSingleToken:test__releaseOrMintSingleToken_Success() (gas: 105265) -OffRamp_releaseOrMintSingleToken:test__releaseOrMintSingleToken_TokenHandlingError_transfer_Revert() (gas: 86476) -OffRamp_releaseOrMintSingleToken:test_releaseOrMintToken_InvalidDataLength_Revert() (gas: 37975) -OffRamp_releaseOrMintSingleToken:test_releaseOrMintToken_ReleaseOrMintBalanceMismatch_Revert() (gas: 95515) -OffRamp_releaseOrMintSingleToken:test_releaseOrMintToken_TokenHandlingError_BalanceOf_Revert() (gas: 40961) -OffRamp_releaseOrMintSingleToken:test_releaseOrMintToken_skip_ReleaseOrMintBalanceMismatch_if_pool_Revert() (gas: 87721) -OffRamp_releaseOrMintTokens:test_TokenHandlingError_Reverts() (gas: 164647) -OffRamp_releaseOrMintTokens:test__releaseOrMintTokens_PoolIsNotAPool_Reverts() (gas: 25146) -OffRamp_releaseOrMintTokens:test_releaseOrMintTokens_InvalidDataLengthReturnData_Revert() (gas: 64911) -OffRamp_releaseOrMintTokens:test_releaseOrMintTokens_InvalidEVMAddress_Revert() (gas: 41883) -OffRamp_releaseOrMintTokens:test_releaseOrMintTokens_PoolDoesNotSupportDest_Reverts() (gas: 81999) -OffRamp_releaseOrMintTokens:test_releaseOrMintTokens_Success() (gas: 176661) -OffRamp_releaseOrMintTokens:test_releaseOrMintTokens_WithGasOverride_Success() (gas: 178641) -OffRamp_releaseOrMintTokens:test_releaseOrMintTokens_destDenominatedDecimals_Success() (gas: 189850) -OffRamp_setDynamicConfig:test_FeeQuoterZeroAddress_Revert() (gas: 11189) -OffRamp_setDynamicConfig:test_NonOwner_Revert() (gas: 13793) -OffRamp_setDynamicConfig:test_SetDynamicConfigWithValidator_Success() (gas: 46198) -OffRamp_setDynamicConfig:test_SetDynamicConfig_Success() (gas: 24173) -OffRamp_trialExecute:test_RateLimitError_Success() (gas: 225140) -OffRamp_trialExecute:test_TokenHandlingErrorIsCaught_Success() (gas: 233762) -OffRamp_trialExecute:test_TokenPoolIsNotAContract_Success() (gas: 310735) -OffRamp_trialExecute:test_trialExecute_Success() (gas: 283386) -OnRampTokenPoolReentrancy:test_OnRampTokenPoolReentrancy_Success() (gas: 390910) -OnRamp_applyAllowListUpdates:test_applyAllowListUpdates_InvalidAllowListRequestDisabledAllowListWithAdds() (gas: 17746) -OnRamp_applyAllowListUpdates:test_applyAllowListUpdates_Revert() (gas: 66535) -OnRamp_applyAllowListUpdates:test_applyAllowListUpdates_Success() (gas: 323600) +OffRamp_afterOC3ConfigSet:test_afterOCR3ConfigSet_SignatureVerificationDisabled_Revert() (gas: 5980379) +OffRamp_applySourceChainConfigUpdates:test_AddMultipleChains_Success() (gas: 468654) +OffRamp_applySourceChainConfigUpdates:test_AddNewChain_Success() (gas: 99443) +OffRamp_applySourceChainConfigUpdates:test_ApplyZeroUpdates_Success() (gas: 12450) +OffRamp_applySourceChainConfigUpdates:test_ReplaceExistingChainOnRamp_Success() (gas: 101526) +OffRamp_applySourceChainConfigUpdates:test_ReplaceExistingChain_Success() (gas: 110943) +OffRamp_applySourceChainConfigUpdates:test_RouterAddress_Revert() (gas: 13396) +OffRamp_applySourceChainConfigUpdates:test_ZeroOnRampAddress_Revert() (gas: 72594) +OffRamp_applySourceChainConfigUpdates:test_ZeroSourceChainSelector_Revert() (gas: 15462) +OffRamp_batchExecute:test_MultipleReportsDifferentChainsSkipCursedChain_Success() (gas: 179216) +OffRamp_batchExecute:test_MultipleReportsDifferentChains_Success() (gas: 337235) +OffRamp_batchExecute:test_MultipleReportsSameChain_Success() (gas: 280603) +OffRamp_batchExecute:test_MultipleReportsSkipDuplicate_Success() (gas: 170311) +OffRamp_batchExecute:test_OutOfBoundsGasLimitsAccess_Revert() (gas: 190845) +OffRamp_batchExecute:test_SingleReport_Success() (gas: 157648) +OffRamp_batchExecute:test_Unhealthy_Success() (gas: 578050) +OffRamp_batchExecute:test_ZeroReports_Revert() (gas: 10576) +OffRamp_ccipReceive:test_Reverts() (gas: 15782) +OffRamp_commit:test_FailedRMNVerification_Reverts() (gas: 63748) +OffRamp_commit:test_InvalidIntervalMinLargerThanMax_Revert() (gas: 67791) +OffRamp_commit:test_InvalidInterval_Revert() (gas: 63958) +OffRamp_commit:test_InvalidOnRamp_Revert() (gas: 92493) +OffRamp_commit:test_InvalidRootRevert() (gas: 63031) +OffRamp_commit:test_NoConfigWithOtherConfigPresent_Revert() (gas: 6584558) +OffRamp_commit:test_NoConfig_Revert() (gas: 6168252) +OffRamp_commit:test_OnlyGasPriceUpdates_Success() (gas: 112719) +OffRamp_commit:test_OnlyPriceUpdateStaleReport_Revert() (gas: 120961) +OffRamp_commit:test_OnlyTokenPriceUpdates_Success() (gas: 112696) +OffRamp_commit:test_PriceSequenceNumberCleared_Success() (gas: 354230) +OffRamp_commit:test_ReportAndPriceUpdate_Success() (gas: 163825) +OffRamp_commit:test_ReportOnlyRootSuccess_gas() (gas: 138880) +OffRamp_commit:test_RootAlreadyCommitted_Revert() (gas: 145911) +OffRamp_commit:test_SourceChainNotEnabled_Revert() (gas: 59514) +OffRamp_commit:test_StaleReportWithRoot_Success() (gas: 233579) +OffRamp_commit:test_UnauthorizedTransmitter_Revert() (gas: 125016) +OffRamp_commit:test_Unhealthy_Revert() (gas: 58244) +OffRamp_commit:test_ValidPriceUpdateThenStaleReportWithRoot_Success() (gas: 208090) +OffRamp_commit:test_ZeroEpochAndRound_Revert() (gas: 51483) +OffRamp_constructor:test_Constructor_Success() (gas: 6167871) +OffRamp_constructor:test_SourceChainSelector_Revert() (gas: 135933) +OffRamp_constructor:test_ZeroChainSelector_Revert() (gas: 103377) +OffRamp_constructor:test_ZeroNonceManager_Revert() (gas: 101271) +OffRamp_constructor:test_ZeroOnRampAddress_Revert() (gas: 161447) +OffRamp_constructor:test_ZeroRMNRemote_Revert() (gas: 101191) +OffRamp_constructor:test_ZeroTokenAdminRegistry_Revert() (gas: 101229) +OffRamp_execute:test_IncorrectArrayType_Revert() (gas: 17610) +OffRamp_execute:test_LargeBatch_Success() (gas: 3419182) +OffRamp_execute:test_MultipleReportsWithPartialValidationFailures_Success() (gas: 375374) +OffRamp_execute:test_MultipleReports_Success() (gas: 302902) +OffRamp_execute:test_NoConfigWithOtherConfigPresent_Revert() (gas: 6994081) +OffRamp_execute:test_NoConfig_Revert() (gas: 6218782) +OffRamp_execute:test_NonArray_Revert() (gas: 27961) +OffRamp_execute:test_SingleReport_Success() (gas: 176939) +OffRamp_execute:test_UnauthorizedTransmitter_Revert() (gas: 149068) +OffRamp_execute:test_WrongConfigWithSigners_Revert() (gas: 6996857) +OffRamp_execute:test_ZeroReports_Revert() (gas: 17293) +OffRamp_executeSingleMessage:test_MessageSender_Revert() (gas: 18874) +OffRamp_executeSingleMessage:test_NonContractWithTokens_Success() (gas: 248743) +OffRamp_executeSingleMessage:test_NonContract_Success() (gas: 21206) +OffRamp_executeSingleMessage:test_TokenHandlingError_Revert() (gas: 209803) +OffRamp_executeSingleMessage:test_ZeroGasDONExecution_Revert() (gas: 49525) +OffRamp_executeSingleMessage:test_executeSingleMessage_NoTokens_Success() (gas: 49013) +OffRamp_executeSingleMessage:test_executeSingleMessage_WithFailingValidationNoRouterCall_Revert() (gas: 218730) +OffRamp_executeSingleMessage:test_executeSingleMessage_WithFailingValidation_Revert() (gas: 85512) +OffRamp_executeSingleMessage:test_executeSingleMessage_WithTokens_Success() (gas: 280659) +OffRamp_executeSingleMessage:test_executeSingleMessage_WithValidation_Success() (gas: 91830) +OffRamp_executeSingleReport:test_DisabledSourceChain_Revert() (gas: 28730) +OffRamp_executeSingleReport:test_EmptyReport_Revert() (gas: 22018) +OffRamp_executeSingleReport:test_InvalidSourcePoolAddress_Success() (gas: 503897) +OffRamp_executeSingleReport:test_ManualExecutionNotYetEnabled_Revert() (gas: 49358) +OffRamp_executeSingleReport:test_MismatchingDestChainSelector_Revert() (gas: 34462) +OffRamp_executeSingleReport:test_NonExistingSourceChain_Revert() (gas: 28977) +OffRamp_executeSingleReport:test_ReceiverError_Success() (gas: 189608) +OffRamp_executeSingleReport:test_RetryFailedMessageWithoutManualExecution_Revert() (gas: 200597) +OffRamp_executeSingleReport:test_RootNotCommitted_Revert() (gas: 41727) +OffRamp_executeSingleReport:test_RouterYULCall_Revert() (gas: 449309) +OffRamp_executeSingleReport:test_SingleMessageNoTokensOtherChain_Success() (gas: 251345) +OffRamp_executeSingleReport:test_SingleMessageNoTokensUnordered_Success() (gas: 196311) +OffRamp_executeSingleReport:test_SingleMessageNoTokens_Success() (gas: 215860) +OffRamp_executeSingleReport:test_SingleMessageToNonCCIPReceiver_Success() (gas: 251303) +OffRamp_executeSingleReport:test_SingleMessagesNoTokensSuccess_gas() (gas: 142769) +OffRamp_executeSingleReport:test_SkippedIncorrectNonceStillExecutes_Success() (gas: 426988) +OffRamp_executeSingleReport:test_SkippedIncorrectNonce_Success() (gas: 59801) +OffRamp_executeSingleReport:test_TokenDataMismatch_Revert() (gas: 74893) +OffRamp_executeSingleReport:test_TwoMessagesWithTokensAndGE_Success() (gas: 605297) +OffRamp_executeSingleReport:test_TwoMessagesWithTokensSuccess_gas() (gas: 548785) +OffRamp_executeSingleReport:test_UnexpectedTokenData_Revert() (gas: 34181) +OffRamp_executeSingleReport:test_UnhealthySingleChainCurse_Revert() (gas: 575250) +OffRamp_executeSingleReport:test_Unhealthy_Success() (gas: 575264) +OffRamp_executeSingleReport:test_WithCurseOnAnotherSourceChain_Success() (gas: 478001) +OffRamp_executeSingleReport:test__execute_SkippedAlreadyExecutedMessageUnordered_Success() (gas: 138039) +OffRamp_executeSingleReport:test__execute_SkippedAlreadyExecutedMessage_Success() (gas: 167264) +OffRamp_getExecutionState:test_FillExecutionState_Success() (gas: 3894518) +OffRamp_getExecutionState:test_GetDifferentChainExecutionState_Success() (gas: 120480) +OffRamp_getExecutionState:test_GetExecutionState_Success() (gas: 89540) +OffRamp_manuallyExecute:test_ManualExecGasLimitMismatchSingleReport_Revert() (gas: 81676) +OffRamp_manuallyExecute:test_manuallyExecute_DestinationGasAmountCountMismatch_Revert() (gas: 80532) +OffRamp_manuallyExecute:test_manuallyExecute_DoesNotRevertIfUntouched_Success() (gas: 174130) +OffRamp_manuallyExecute:test_manuallyExecute_FailedTx_Revert() (gas: 215543) +OffRamp_manuallyExecute:test_manuallyExecute_ForkedChain_Revert() (gas: 27365) +OffRamp_manuallyExecute:test_manuallyExecute_GasLimitMismatchMultipleReports_Revert() (gas: 165597) +OffRamp_manuallyExecute:test_manuallyExecute_InvalidReceiverExecutionGasLimit_Revert() (gas: 27936) +OffRamp_manuallyExecute:test_manuallyExecute_InvalidTokenGasOverride_Revert() (gas: 59666) +OffRamp_manuallyExecute:test_manuallyExecute_LowGasLimit_Success() (gas: 534293) +OffRamp_manuallyExecute:test_manuallyExecute_MultipleReportsWithSingleCursedLane_Revert() (gas: 321217) +OffRamp_manuallyExecute:test_manuallyExecute_ReentrancyFails_Success() (gas: 2393253) +OffRamp_manuallyExecute:test_manuallyExecute_SourceChainSelectorMismatch_Revert() (gas: 166568) +OffRamp_manuallyExecute:test_manuallyExecute_Success() (gas: 228525) +OffRamp_manuallyExecute:test_manuallyExecute_WithGasOverride_Success() (gas: 229065) +OffRamp_manuallyExecute:test_manuallyExecute_WithMultiReportGasOverride_Success() (gas: 788283) +OffRamp_manuallyExecute:test_manuallyExecute_WithPartialMessages_Success() (gas: 350237) +OffRamp_releaseOrMintSingleToken:test__releaseOrMintSingleToken_NotACompatiblePool_Revert() (gas: 40611) +OffRamp_releaseOrMintSingleToken:test__releaseOrMintSingleToken_Success() (gas: 105733) +OffRamp_releaseOrMintSingleToken:test__releaseOrMintSingleToken_TokenHandlingError_transfer_Revert() (gas: 86956) +OffRamp_releaseOrMintSingleToken:test_releaseOrMintToken_InvalidDataLength_Revert() (gas: 38380) +OffRamp_releaseOrMintSingleToken:test_releaseOrMintToken_ReleaseOrMintBalanceMismatch_Revert() (gas: 95983) +OffRamp_releaseOrMintSingleToken:test_releaseOrMintToken_TokenHandlingError_BalanceOf_Revert() (gas: 41378) +OffRamp_releaseOrMintSingleToken:test_releaseOrMintToken_skip_ReleaseOrMintBalanceMismatch_if_pool_Revert() (gas: 88177) +OffRamp_releaseOrMintTokens:test_TokenHandlingError_Reverts() (gas: 165433) +OffRamp_releaseOrMintTokens:test__releaseOrMintTokens_PoolIsNotAPool_Reverts() (gas: 25404) +OffRamp_releaseOrMintTokens:test_releaseOrMintTokens_InvalidDataLengthReturnData_Revert() (gas: 65574) +OffRamp_releaseOrMintTokens:test_releaseOrMintTokens_InvalidEVMAddress_Revert() (gas: 42279) +OffRamp_releaseOrMintTokens:test_releaseOrMintTokens_PoolDoesNotSupportDest_Reverts() (gas: 82668) +OffRamp_releaseOrMintTokens:test_releaseOrMintTokens_Success() (gas: 177447) +OffRamp_releaseOrMintTokens:test_releaseOrMintTokens_WithGasOverride_Success() (gas: 179427) +OffRamp_releaseOrMintTokens:test_releaseOrMintTokens_destDenominatedDecimals_Success() (gas: 190636) +OffRamp_setDynamicConfig:test_FeeQuoterZeroAddress_Revert() (gas: 11201) +OffRamp_setDynamicConfig:test_NonOwner_Revert() (gas: 13811) +OffRamp_setDynamicConfig:test_SetDynamicConfigWithValidator_Success() (gas: 46216) +OffRamp_setDynamicConfig:test_SetDynamicConfig_Success() (gas: 24191) +OffRamp_trialExecute:test_RateLimitError_Success() (gas: 226586) +OffRamp_trialExecute:test_TokenHandlingErrorIsCaught_Success() (gas: 235208) +OffRamp_trialExecute:test_TokenPoolIsNotAContract_Success() (gas: 314371) +OffRamp_trialExecute:test_trialExecute_Success() (gas: 284928) +OnRampTokenPoolReentrancy:test_OnRampTokenPoolReentrancy_Success() (gas: 391150) +OnRamp_applyAllowListUpdates:test_applyAllowListUpdates_InvalidAllowListRequestDisabledAllowListWithAdds() (gas: 17758) +OnRamp_applyAllowListUpdates:test_applyAllowListUpdates_Revert() (gas: 66553) +OnRamp_applyAllowListUpdates:test_applyAllowListUpdates_Success() (gas: 323605) OnRamp_applyDestChainConfigUpdates:test_ApplyDestChainConfigUpdates_Success() (gas: 64546) OnRamp_applyDestChainConfigUpdates:test_ApplyDestChainConfigUpdates_WithInvalidChainSelector_Revert() (gas: 13254) -OnRamp_constructor:test_Constructor_InvalidConfigChainSelectorEqZero_Revert() (gas: 94831) -OnRamp_constructor:test_Constructor_InvalidConfigNonceManagerEqAddressZero_Revert() (gas: 92765) -OnRamp_constructor:test_Constructor_InvalidConfigRMNProxyEqAddressZero_Revert() (gas: 97791) -OnRamp_constructor:test_Constructor_InvalidConfigTokenAdminRegistryEqAddressZero_Revert() (gas: 92823) -OnRamp_constructor:test_Constructor_Success() (gas: 2827622) +OnRamp_constructor:test_Constructor_InvalidConfigChainSelectorEqZero_Revert() (gas: 94823) +OnRamp_constructor:test_Constructor_InvalidConfigNonceManagerEqAddressZero_Revert() (gas: 92757) +OnRamp_constructor:test_Constructor_InvalidConfigRMNProxyEqAddressZero_Revert() (gas: 97783) +OnRamp_constructor:test_Constructor_InvalidConfigTokenAdminRegistryEqAddressZero_Revert() (gas: 92815) +OnRamp_constructor:test_Constructor_Success() (gas: 2817599) OnRamp_forwardFromRouter:test_ForwardFromRouterExtraArgsV2AllowOutOfOrderTrue_Success() (gas: 114939) OnRamp_forwardFromRouter:test_ForwardFromRouterExtraArgsV2_Success() (gas: 145710) OnRamp_forwardFromRouter:test_ForwardFromRouterSuccessCustomExtraArgs() (gas: 145313) OnRamp_forwardFromRouter:test_ForwardFromRouterSuccessEmptyExtraArgs() (gas: 143538) OnRamp_forwardFromRouter:test_ForwardFromRouterSuccessLegacyExtraArgs() (gas: 145538) OnRamp_forwardFromRouter:test_ForwardFromRouter_Success() (gas: 144917) -OnRamp_forwardFromRouter:test_ForwardFromRouter_Success_ConfigurableSourceRouter() (gas: 140243) +OnRamp_forwardFromRouter:test_ForwardFromRouter_Success_ConfigurableSourceRouter() (gas: 140249) OnRamp_forwardFromRouter:test_InvalidExtraArgsTag_Revert() (gas: 28824) -OnRamp_forwardFromRouter:test_MessageValidationError_Revert() (gas: 138926) +OnRamp_forwardFromRouter:test_MessageValidationError_Revert() (gas: 138938) OnRamp_forwardFromRouter:test_MesssageFeeTooHigh_Revert() (gas: 26924) OnRamp_forwardFromRouter:test_MultiCannotSendZeroTokens_Revert() (gas: 74139) OnRamp_forwardFromRouter:test_OriginalSender_Revert() (gas: 12951) -OnRamp_forwardFromRouter:test_Paused_Revert() (gas: 37326) -OnRamp_forwardFromRouter:test_Permissions_Revert() (gas: 18278) +OnRamp_forwardFromRouter:test_Paused_Revert() (gas: 37338) +OnRamp_forwardFromRouter:test_Permissions_Revert() (gas: 18284) OnRamp_forwardFromRouter:test_ShouldIncrementNonceOnlyOnOrdered_Success() (gas: 184562) OnRamp_forwardFromRouter:test_ShouldIncrementSeqNumAndNonce_Success() (gas: 210880) OnRamp_forwardFromRouter:test_ShouldStoreLinkFees() (gas: 124838) OnRamp_forwardFromRouter:test_ShouldStoreNonLinkFees() (gas: 146211) -OnRamp_forwardFromRouter:test_SourceTokenDataTooLarge_Revert() (gas: 3829289) +OnRamp_forwardFromRouter:test_SourceTokenDataTooLarge_Revert() (gas: 3769244) OnRamp_forwardFromRouter:test_UnAllowedOriginalSender_Revert() (gas: 18714) -OnRamp_forwardFromRouter:test_UnsupportedToken_Revert() (gas: 110907) -OnRamp_forwardFromRouter:test_forwardFromRouter_UnsupportedToken_Revert() (gas: 76229) -OnRamp_forwardFromRouter:test_forwardFromRouter_WithValidation_Success() (gas: 281171) -OnRamp_getFee:test_EmptyMessage_Success() (gas: 102470) -OnRamp_getFee:test_EnforceOutOfOrder_Revert() (gas: 66390) -OnRamp_getFee:test_GetFeeOfZeroForTokenMessage_Success() (gas: 87796) -OnRamp_getFee:test_NotAFeeTokenButPricedToken_Revert() (gas: 34972) -OnRamp_getFee:test_SingleTokenMessage_Success() (gas: 117839) -OnRamp_getFee:test_Unhealthy_Revert() (gas: 17009) +OnRamp_forwardFromRouter:test_UnsupportedToken_Revert() (gas: 110919) +OnRamp_forwardFromRouter:test_forwardFromRouter_UnsupportedToken_Revert() (gas: 76235) +OnRamp_forwardFromRouter:test_forwardFromRouter_WithValidation_Success() (gas: 281240) +OnRamp_getFee:test_EmptyMessage_Success() (gas: 102482) +OnRamp_getFee:test_EnforceOutOfOrder_Revert() (gas: 66402) +OnRamp_getFee:test_GetFeeOfZeroForTokenMessage_Success() (gas: 87802) +OnRamp_getFee:test_NotAFeeTokenButPricedToken_Revert() (gas: 34978) +OnRamp_getFee:test_SingleTokenMessage_Success() (gas: 117875) +OnRamp_getFee:test_Unhealthy_Revert() (gas: 17021) OnRamp_getSupportedTokens:test_GetSupportedTokens_Revert() (gas: 10438) OnRamp_getTokenPool:test_GetTokenPool_Success() (gas: 35204) OnRamp_setDynamicConfig:test_SetConfigInvalidConfigFeeAggregatorEqAddressZero_Revert() (gas: 11420) OnRamp_setDynamicConfig:test_SetConfigInvalidConfigFeeQuoterEqAddressZero_Revert() (gas: 13019) OnRamp_setDynamicConfig:test_SetConfigInvalidConfig_Revert() (gas: 11377) -OnRamp_setDynamicConfig:test_SetConfigOnlyOwner_Revert() (gas: 16409) +OnRamp_setDynamicConfig:test_SetConfigOnlyOwner_Revert() (gas: 16421) OnRamp_setDynamicConfig:test_SetDynamicConfig_Success() (gas: 55330) OnRamp_withdrawFeeTokens:test_WithdrawFeeTokens_Success() (gas: 97235) -PingPong_ccipReceive:test_CcipReceive_Success() (gas: 152765) -PingPong_plumbing:test_OutOfOrderExecution_Success() (gas: 20280) -PingPong_plumbing:test_Pausing_Success() (gas: 17780) -PingPong_startPingPong:test_StartPingPong_With_OOO_Success() (gas: 163361) -PingPong_startPingPong:test_StartPingPong_With_Sequenced_Ordered_Success() (gas: 182770) +PingPong_ccipReceive:test_CcipReceive_Success() (gas: 152906) +PingPong_plumbing:test_OutOfOrderExecution_Success() (gas: 20286) +PingPong_plumbing:test_Pausing_Success() (gas: 17786) +PingPong_startPingPong:test_StartPingPong_With_OOO_Success() (gas: 163559) +PingPong_startPingPong:test_StartPingPong_With_Sequenced_Ordered_Success() (gas: 182977) RMNHome:test() (gas: 186) RMN_constructor:test_Constructor_Success() (gas: 48874) -RMN_getRecordedCurseRelatedOps:test_OpsPostDeployment() (gas: 19690) -RMN_lazyVoteToCurseUpdate_Benchmark:test_VoteToCurseLazilyRetain3VotersUponConfigChange_gas() (gas: 152263) -RMN_ownerUnbless:test_Unbless_Success() (gas: 74882) -RMN_ownerUnvoteToCurse:test_CanBlessAndCurseAfterGlobalCurseIsLifted() (gas: 471457) -RMN_ownerUnvoteToCurse:test_IsIdempotent() (gas: 398096) +RMN_getRecordedCurseRelatedOps:test_OpsPostDeployment() (gas: 19696) +RMN_lazyVoteToCurseUpdate_Benchmark:test_VoteToCurseLazilyRetain3VotersUponConfigChange_gas() (gas: 152287) +RMN_ownerUnbless:test_Unbless_Success() (gas: 74900) +RMN_ownerUnvoteToCurse:test_CanBlessAndCurseAfterGlobalCurseIsLifted() (gas: 471574) +RMN_ownerUnvoteToCurse:test_IsIdempotent() (gas: 398222) RMN_ownerUnvoteToCurse:test_NonOwner_Revert() (gas: 18669) -RMN_ownerUnvoteToCurse:test_OwnerUnvoteToCurseSuccess_gas() (gas: 357751) -RMN_ownerUnvoteToCurse:test_UnknownVoter_Revert() (gas: 33034) -RMN_ownerUnvoteToCurse_Benchmark:test_OwnerUnvoteToCurse_1Voter_LiftsCurse_gas() (gas: 262211) +RMN_ownerUnvoteToCurse:test_OwnerUnvoteToCurseSuccess_gas() (gas: 357841) +RMN_ownerUnvoteToCurse:test_UnknownVoter_Revert() (gas: 33058) +RMN_ownerUnvoteToCurse_Benchmark:test_OwnerUnvoteToCurse_1Voter_LiftsCurse_gas() (gas: 262247) RMN_permaBlessing:test_PermaBlessing() (gas: 202691) RMN_setConfig:test_BlessVoterIsZeroAddress_Revert() (gas: 15494) RMN_setConfig:test_EitherThresholdIsZero_Revert() (gas: 21095) -RMN_setConfig:test_NonOwner_Revert() (gas: 14719) +RMN_setConfig:test_NonOwner_Revert() (gas: 14725) RMN_setConfig:test_RepeatedAddress_Revert() (gas: 18213) -RMN_setConfig:test_SetConfigSuccess_gas() (gas: 104080) +RMN_setConfig:test_SetConfigSuccess_gas() (gas: 104089) RMN_setConfig:test_TotalWeightsSmallerThanEachThreshold_Revert() (gas: 30173) -RMN_setConfig:test_VoteToBlessByEjectedVoter_Revert() (gas: 130363) +RMN_setConfig:test_VoteToBlessByEjectedVoter_Revert() (gas: 130377) RMN_setConfig:test_VotersLengthIsZero_Revert() (gas: 12128) RMN_setConfig:test_WeightIsZeroAddress_Revert() (gas: 15734) -RMN_setConfig_Benchmark_1:test_SetConfig_7Voters_gas() (gas: 659462) -RMN_setConfig_Benchmark_2:test_ResetConfig_7Voters_gas() (gas: 212484) -RMN_unvoteToCurse:test_InvalidCursesHash() (gas: 26412) -RMN_unvoteToCurse:test_OwnerSkips() (gas: 33813) -RMN_unvoteToCurse:test_OwnerSucceeds() (gas: 63981) -RMN_unvoteToCurse:test_UnauthorizedVoter() (gas: 47598) -RMN_unvoteToCurse:test_ValidCursesHash() (gas: 61127) -RMN_unvoteToCurse:test_VotersCantLiftCurseButOwnerCan() (gas: 628641) -RMN_voteToBless:test_Curse_Revert() (gas: 473252) -RMN_voteToBless:test_IsAlreadyBlessed_Revert() (gas: 115312) -RMN_voteToBless:test_RootSuccess() (gas: 558319) -RMN_voteToBless:test_SenderAlreadyVoted_Revert() (gas: 97177) +RMN_setConfig_Benchmark_1:test_SetConfig_7Voters_gas() (gas: 659495) +RMN_setConfig_Benchmark_2:test_ResetConfig_7Voters_gas() (gas: 212511) +RMN_unvoteToCurse:test_InvalidCursesHash() (gas: 26430) +RMN_unvoteToCurse:test_OwnerSkips() (gas: 33831) +RMN_unvoteToCurse:test_OwnerSucceeds() (gas: 63999) +RMN_unvoteToCurse:test_UnauthorizedVoter() (gas: 47634) +RMN_unvoteToCurse:test_ValidCursesHash() (gas: 61139) +RMN_unvoteToCurse:test_VotersCantLiftCurseButOwnerCan() (gas: 628827) +RMN_voteToBless:test_Curse_Revert() (gas: 473342) +RMN_voteToBless:test_IsAlreadyBlessed_Revert() (gas: 115339) +RMN_voteToBless:test_RootSuccess() (gas: 558469) +RMN_voteToBless:test_SenderAlreadyVoted_Revert() (gas: 97204) RMN_voteToBless:test_UnauthorizedVoter_Revert() (gas: 17096) -RMN_voteToBless_Benchmark:test_1RootSuccess_gas() (gas: 44703) -RMN_voteToBless_Benchmark:test_3RootSuccess_gas() (gas: 98673) -RMN_voteToBless_Benchmark:test_5RootSuccess_gas() (gas: 152581) -RMN_voteToBless_Blessed_Benchmark:test_1RootSuccessBecameBlessed_gas() (gas: 29673) -RMN_voteToBless_Blessed_Benchmark:test_1RootSuccess_gas() (gas: 27619) -RMN_voteToBless_Blessed_Benchmark:test_3RootSuccess_gas() (gas: 81611) -RMN_voteToBless_Blessed_Benchmark:test_5RootSuccess_gas() (gas: 135497) -RMN_voteToCurse:test_CurseOnlyWhenThresholdReached_Success() (gas: 1650405) -RMN_voteToCurse:test_EmptySubjects_Revert() (gas: 14031) -RMN_voteToCurse:test_EvenIfAlreadyCursed_Success() (gas: 534854) -RMN_voteToCurse:test_OwnerCanCurseAndUncurse() (gas: 399532) -RMN_voteToCurse:test_RepeatedSubject_Revert() (gas: 144336) -RMN_voteToCurse:test_ReusedCurseId_Revert() (gas: 146885) -RMN_voteToCurse:test_UnauthorizedVoter_Revert() (gas: 12630) -RMN_voteToCurse:test_VoteToCurse_NoCurse_Success() (gas: 187388) -RMN_voteToCurse:test_VoteToCurse_YesCurse_Success() (gas: 472854) -RMN_voteToCurse_2:test_VotesAreDroppedIfSubjectIsNotCursedDuringConfigChange() (gas: 370837) -RMN_voteToCurse_2:test_VotesAreRetainedIfSubjectIsCursedDuringConfigChange() (gas: 1153282) -RMN_voteToCurse_Benchmark_1:test_VoteToCurse_NewSubject_NewVoter_NoCurse_gas() (gas: 141079) -RMN_voteToCurse_Benchmark_1:test_VoteToCurse_NewSubject_NewVoter_YesCurse_gas() (gas: 165213) -RMN_voteToCurse_Benchmark_2:test_VoteToCurse_OldSubject_NewVoter_NoCurse_gas() (gas: 121413) -RMN_voteToCurse_Benchmark_2:test_VoteToCurse_OldSubject_OldVoter_NoCurse_gas() (gas: 98355) -RMN_voteToCurse_Benchmark_3:test_VoteToCurse_OldSubject_NewVoter_YesCurse_gas() (gas: 145748) +RMN_voteToBless_Benchmark:test_1RootSuccess_gas() (gas: 44706) +RMN_voteToBless_Benchmark:test_3RootSuccess_gas() (gas: 98682) +RMN_voteToBless_Benchmark:test_5RootSuccess_gas() (gas: 152596) +RMN_voteToBless_Blessed_Benchmark:test_1RootSuccessBecameBlessed_gas() (gas: 29676) +RMN_voteToBless_Blessed_Benchmark:test_1RootSuccess_gas() (gas: 27622) +RMN_voteToBless_Blessed_Benchmark:test_3RootSuccess_gas() (gas: 81620) +RMN_voteToBless_Blessed_Benchmark:test_5RootSuccess_gas() (gas: 135512) +RMN_voteToCurse:test_CurseOnlyWhenThresholdReached_Success() (gas: 1651029) +RMN_voteToCurse:test_EmptySubjects_Revert() (gas: 14055) +RMN_voteToCurse:test_EvenIfAlreadyCursed_Success() (gas: 535106) +RMN_voteToCurse:test_OwnerCanCurseAndUncurse() (gas: 399724) +RMN_voteToCurse:test_RepeatedSubject_Revert() (gas: 144396) +RMN_voteToCurse:test_ReusedCurseId_Revert() (gas: 146963) +RMN_voteToCurse:test_UnauthorizedVoter_Revert() (gas: 12660) +RMN_voteToCurse:test_VoteToCurse_NoCurse_Success() (gas: 187466) +RMN_voteToCurse:test_VoteToCurse_YesCurse_Success() (gas: 473034) +RMN_voteToCurse_2:test_VotesAreDroppedIfSubjectIsNotCursedDuringConfigChange() (gas: 370924) +RMN_voteToCurse_2:test_VotesAreRetainedIfSubjectIsCursedDuringConfigChange() (gas: 1153719) +RMN_voteToCurse_Benchmark_1:test_VoteToCurse_NewSubject_NewVoter_NoCurse_gas() (gas: 141103) +RMN_voteToCurse_Benchmark_1:test_VoteToCurse_NewSubject_NewVoter_YesCurse_gas() (gas: 165243) +RMN_voteToCurse_Benchmark_2:test_VoteToCurse_OldSubject_NewVoter_NoCurse_gas() (gas: 121431) +RMN_voteToCurse_Benchmark_2:test_VoteToCurse_OldSubject_OldVoter_NoCurse_gas() (gas: 98367) +RMN_voteToCurse_Benchmark_3:test_VoteToCurse_OldSubject_NewVoter_YesCurse_gas() (gas: 145778) RateLimiter_constructor:test_Constructor_Success() (gas: 19704) -RateLimiter_consume:test_AggregateValueMaxCapacityExceeded_Revert() (gas: 16006) +RateLimiter_consume:test_AggregateValueMaxCapacityExceeded_Revert() (gas: 16012) RateLimiter_consume:test_AggregateValueRateLimitReached_Revert() (gas: 22345) RateLimiter_consume:test_ConsumeAggregateValue_Success() (gas: 31443) RateLimiter_consume:test_ConsumeTokens_Success() (gas: 20366) -RateLimiter_consume:test_ConsumeUnlimited_Success() (gas: 40573) -RateLimiter_consume:test_ConsumingMoreThanUint128_Revert() (gas: 15786) +RateLimiter_consume:test_ConsumeUnlimited_Success() (gas: 40585) +RateLimiter_consume:test_ConsumingMoreThanUint128_Revert() (gas: 15792) RateLimiter_consume:test_RateLimitReachedOverConsecutiveBlocks_Revert() (gas: 25747) RateLimiter_consume:test_Refill_Success() (gas: 37354) RateLimiter_consume:test_TokenMaxCapacityExceeded_Revert() (gas: 18340) RateLimiter_consume:test_TokenRateLimitReached_Revert() (gas: 24823) -RateLimiter_currentTokenBucketState:test_CurrentTokenBucketState_Success() (gas: 38875) -RateLimiter_currentTokenBucketState:test_Refill_Success() (gas: 46768) -RateLimiter_setTokenBucketConfig:test_SetRateLimiterConfig_Success() (gas: 38446) +RateLimiter_currentTokenBucketState:test_CurrentTokenBucketState_Success() (gas: 38884) +RateLimiter_currentTokenBucketState:test_Refill_Success() (gas: 46777) +RateLimiter_setTokenBucketConfig:test_SetRateLimiterConfig_Success() (gas: 38449) RegistryModuleOwnerCustom_constructor:test_constructor_Revert() (gas: 36037) -RegistryModuleOwnerCustom_registerAdminViaGetCCIPAdmin:test_registerAdminViaGetCCIPAdmin_Revert() (gas: 19643) -RegistryModuleOwnerCustom_registerAdminViaGetCCIPAdmin:test_registerAdminViaGetCCIPAdmin_Success() (gas: 129930) -RegistryModuleOwnerCustom_registerAdminViaOwner:test_registerAdminViaOwner_Revert() (gas: 19457) -RegistryModuleOwnerCustom_registerAdminViaOwner:test_registerAdminViaOwner_Success() (gas: 129743) -Router_applyRampUpdates:test_OffRampMismatch_Revert() (gas: 89306) -Router_applyRampUpdates:test_OffRampUpdatesWithRouting() (gas: 10648972) +RegistryModuleOwnerCustom_registerAdminViaGetCCIPAdmin:test_registerAdminViaGetCCIPAdmin_Revert() (gas: 19655) +RegistryModuleOwnerCustom_registerAdminViaGetCCIPAdmin:test_registerAdminViaGetCCIPAdmin_Success() (gas: 129978) +RegistryModuleOwnerCustom_registerAdminViaOwner:test_registerAdminViaOwner_Revert() (gas: 19475) +RegistryModuleOwnerCustom_registerAdminViaOwner:test_registerAdminViaOwner_Success() (gas: 129797) +Router_applyRampUpdates:test_OffRampMismatch_Revert() (gas: 89321) +Router_applyRampUpdates:test_OffRampUpdatesWithRouting() (gas: 10652272) Router_applyRampUpdates:test_OnRampDisable() (gas: 55971) Router_applyRampUpdates:test_OnlyOwner_Revert() (gas: 12317) -Router_ccipSend:test_CCIPSendLinkFeeNoTokenSuccess_gas() (gas: 114039) -Router_ccipSend:test_CCIPSendLinkFeeOneTokenSuccess_gas() (gas: 201534) -Router_ccipSend:test_CCIPSendNativeFeeNoTokenSuccess_gas() (gas: 128767) -Router_ccipSend:test_CCIPSendNativeFeeOneTokenSuccess_gas() (gas: 216264) -Router_ccipSend:test_FeeTokenAmountTooLow_Revert() (gas: 66368) -Router_ccipSend:test_InvalidMsgValue() (gas: 32008) -Router_ccipSend:test_NativeFeeTokenInsufficientValue() (gas: 68827) -Router_ccipSend:test_NativeFeeTokenOverpay_Success() (gas: 173903) -Router_ccipSend:test_NativeFeeTokenZeroValue() (gas: 56109) -Router_ccipSend:test_NativeFeeToken_Success() (gas: 172497) -Router_ccipSend:test_NonLinkFeeToken_Success() (gas: 242837) -Router_ccipSend:test_UnsupportedDestinationChain_Revert() (gas: 24761) -Router_ccipSend:test_WhenNotHealthy_Revert() (gas: 44736) -Router_ccipSend:test_WrappedNativeFeeToken_Success() (gas: 174755) -Router_ccipSend:test_ZeroFeeAndGasPrice_Success() (gas: 245046) +Router_ccipSend:test_CCIPSendLinkFeeNoTokenSuccess_gas() (gas: 114204) +Router_ccipSend:test_CCIPSendLinkFeeOneTokenSuccess_gas() (gas: 201720) +Router_ccipSend:test_CCIPSendNativeFeeNoTokenSuccess_gas() (gas: 128947) +Router_ccipSend:test_CCIPSendNativeFeeOneTokenSuccess_gas() (gas: 216465) +Router_ccipSend:test_FeeTokenAmountTooLow_Revert() (gas: 66428) +Router_ccipSend:test_InvalidMsgValue() (gas: 32014) +Router_ccipSend:test_NativeFeeTokenInsufficientValue() (gas: 68893) +Router_ccipSend:test_NativeFeeTokenOverpay_Success() (gas: 174149) +Router_ccipSend:test_NativeFeeTokenZeroValue() (gas: 56169) +Router_ccipSend:test_NativeFeeToken_Success() (gas: 172743) +Router_ccipSend:test_NonLinkFeeToken_Success() (gas: 243023) +Router_ccipSend:test_UnsupportedDestinationChain_Revert() (gas: 24767) +Router_ccipSend:test_WhenNotHealthy_Revert() (gas: 44742) +Router_ccipSend:test_WrappedNativeFeeToken_Success() (gas: 175001) +Router_ccipSend:test_ZeroFeeAndGasPrice_Success() (gas: 245298) Router_constructor:test_Constructor_Success() (gas: 13070) Router_getArmProxy:test_getArmProxy() (gas: 10561) -Router_getFee:test_GetFeeSupportedChain_Success() (gas: 46536) -Router_getFee:test_UnsupportedDestinationChain_Revert() (gas: 17144) +Router_getFee:test_GetFeeSupportedChain_Success() (gas: 46602) +Router_getFee:test_UnsupportedDestinationChain_Revert() (gas: 17156) Router_getSupportedTokens:test_GetSupportedTokens_Revert() (gas: 10460) -Router_recoverTokens:test_RecoverTokensInvalidRecipient_Revert() (gas: 11316) +Router_recoverTokens:test_RecoverTokensInvalidRecipient_Revert() (gas: 11322) Router_recoverTokens:test_RecoverTokensNoFunds_Revert() (gas: 20261) -Router_recoverTokens:test_RecoverTokensNonOwner_Revert() (gas: 11159) -Router_recoverTokens:test_RecoverTokensValueReceiver_Revert() (gas: 402507) -Router_recoverTokens:test_RecoverTokens_Success() (gas: 52437) +Router_recoverTokens:test_RecoverTokensNonOwner_Revert() (gas: 11171) +Router_recoverTokens:test_RecoverTokensValueReceiver_Revert() (gas: 392489) +Router_recoverTokens:test_RecoverTokens_Success() (gas: 52442) Router_routeMessage:test_AutoExec_Success() (gas: 42738) Router_routeMessage:test_ExecutionEvent_Success() (gas: 158166) Router_routeMessage:test_ManualExec_Success() (gas: 35429) -Router_routeMessage:test_OnlyOffRamp_Revert() (gas: 25140) -Router_routeMessage:test_WhenNotHealthy_Revert() (gas: 44742) -Router_setWrappedNative:test_OnlyOwner_Revert() (gas: 10986) -SelfFundedPingPong_ccipReceive:test_FundingIfNotANop_Revert() (gas: 55572) -SelfFundedPingPong_ccipReceive:test_Funding_Success() (gas: 420162) +Router_routeMessage:test_OnlyOffRamp_Revert() (gas: 25146) +Router_routeMessage:test_WhenNotHealthy_Revert() (gas: 44754) +Router_setWrappedNative:test_OnlyOwner_Revert() (gas: 10992) +SelfFundedPingPong_ccipReceive:test_FundingIfNotANop_Revert() (gas: 55596) +SelfFundedPingPong_ccipReceive:test_Funding_Success() (gas: 420834) SelfFundedPingPong_setCountIncrBeforeFunding:test_setCountIncrBeforeFunding() (gas: 20169) -TokenAdminRegistry_acceptAdminRole:test_acceptAdminRole_OnlyPendingAdministrator_Revert() (gas: 51109) -TokenAdminRegistry_acceptAdminRole:test_acceptAdminRole_Success() (gas: 43956) +TokenAdminRegistry_acceptAdminRole:test_acceptAdminRole_OnlyPendingAdministrator_Revert() (gas: 51115) +TokenAdminRegistry_acceptAdminRole:test_acceptAdminRole_Success() (gas: 43961) TokenAdminRegistry_addRegistryModule:test_addRegistryModule_OnlyOwner_Revert() (gas: 12641) TokenAdminRegistry_addRegistryModule:test_addRegistryModule_Success() (gas: 67038) -TokenAdminRegistry_getAllConfiguredTokens:test_getAllConfiguredTokens_outOfBounds_Success() (gas: 11350) +TokenAdminRegistry_getAllConfiguredTokens:test_getAllConfiguredTokens_outOfBounds_Success() (gas: 11356) TokenAdminRegistry_getPool:test_getPool_Success() (gas: 17596) TokenAdminRegistry_getPools:test_getPools_Success() (gas: 39920) -TokenAdminRegistry_isAdministrator:test_isAdministrator_Success() (gas: 105946) +TokenAdminRegistry_isAdministrator:test_isAdministrator_Success() (gas: 105952) TokenAdminRegistry_proposeAdministrator:test_proposeAdministrator_AlreadyRegistered_Revert() (gas: 104067) TokenAdminRegistry_proposeAdministrator:test_proposeAdministrator_OnlyRegistryModule_Revert() (gas: 15499) TokenAdminRegistry_proposeAdministrator:test_proposeAdministrator_ZeroAddress_Revert() (gas: 15044) -TokenAdminRegistry_proposeAdministrator:test_proposeAdministrator_module_Success() (gas: 112572) -TokenAdminRegistry_proposeAdministrator:test_proposeAdministrator_owner_Success() (gas: 107686) -TokenAdminRegistry_proposeAdministrator:test_proposeAdministrator_reRegisterWhileUnclaimed_Success() (gas: 115710) +TokenAdminRegistry_proposeAdministrator:test_proposeAdministrator_module_Success() (gas: 112578) +TokenAdminRegistry_proposeAdministrator:test_proposeAdministrator_owner_Success() (gas: 107692) +TokenAdminRegistry_proposeAdministrator:test_proposeAdministrator_reRegisterWhileUnclaimed_Success() (gas: 115716) TokenAdminRegistry_removeRegistryModule:test_removeRegistryModule_OnlyOwner_Revert() (gas: 12597) -TokenAdminRegistry_removeRegistryModule:test_removeRegistryModule_Success() (gas: 54495) +TokenAdminRegistry_removeRegistryModule:test_removeRegistryModule_Success() (gas: 54509) TokenAdminRegistry_setPool:test_setPool_InvalidTokenPoolToken_Revert() (gas: 19166) -TokenAdminRegistry_setPool:test_setPool_OnlyAdministrator_Revert() (gas: 18026) +TokenAdminRegistry_setPool:test_setPool_OnlyAdministrator_Revert() (gas: 18032) TokenAdminRegistry_setPool:test_setPool_Success() (gas: 35961) TokenAdminRegistry_setPool:test_setPool_ZeroAddressRemovesPool_Success() (gas: 30635) -TokenAdminRegistry_transferAdminRole:test_transferAdminRole_OnlyAdministrator_Revert() (gas: 18085) -TokenAdminRegistry_transferAdminRole:test_transferAdminRole_Success() (gas: 49390) -TokenPoolAndProxy:test_lockOrBurn_burnMint_Success() (gas: 5945631) -TokenPoolAndProxy:test_lockOrBurn_burnWithFromMint_Success() (gas: 5977107) -TokenPoolAndProxy:test_lockOrBurn_lockRelease_Success() (gas: 6179838) -TokenPoolAndProxy:test_setPreviousPool_Success() (gas: 3334200) -TokenPoolAndProxyMigration:test_tokenPoolMigration_Success_1_2() (gas: 6792268) -TokenPoolAndProxyMigration:test_tokenPoolMigration_Success_1_4() (gas: 7024950) -TokenPoolWithAllowList_applyAllowListUpdates:test_AllowListNotEnabled_Revert() (gas: 2100002) +TokenAdminRegistry_transferAdminRole:test_transferAdminRole_OnlyAdministrator_Revert() (gas: 18091) +TokenAdminRegistry_transferAdminRole:test_transferAdminRole_Success() (gas: 49402) +TokenPoolAndProxy:test_lockOrBurn_burnMint_Success() (gas: 5855541) +TokenPoolAndProxy:test_lockOrBurn_burnWithFromMint_Success() (gas: 5887014) +TokenPoolAndProxy:test_lockOrBurn_lockRelease_Success() (gas: 6040093) +TokenPoolAndProxy:test_setPreviousPool_Success() (gas: 3214305) +TokenPoolAndProxyMigration:test_tokenPoolMigration_Success_1_2() (gas: 6702515) +TokenPoolAndProxyMigration:test_tokenPoolMigration_Success_1_4() (gas: 6915171) +TokenPoolWithAllowList_applyAllowListUpdates:test_AllowListNotEnabled_Revert() (gas: 2069936) TokenPoolWithAllowList_applyAllowListUpdates:test_OnlyOwner_Revert() (gas: 12101) TokenPoolWithAllowList_applyAllowListUpdates:test_SetAllowListSkipsZero_Success() (gas: 23464) TokenPoolWithAllowList_applyAllowListUpdates:test_SetAllowList_Success() (gas: 177802) @@ -947,42 +947,42 @@ TokenPoolWithAllowList_setRouter:test_SetRouter_Success() (gas: 24843) TokenPool_applyChainUpdates:test_applyChainUpdates_DisabledNonZeroRateLimit_Revert() (gas: 271551) TokenPool_applyChainUpdates:test_applyChainUpdates_InvalidRateLimitRate_Revert() (gas: 542134) TokenPool_applyChainUpdates:test_applyChainUpdates_NonExistentChain_Revert() (gas: 18449) -TokenPool_applyChainUpdates:test_applyChainUpdates_OnlyCallableByOwner_Revert() (gas: 11391) +TokenPool_applyChainUpdates:test_applyChainUpdates_OnlyCallableByOwner_Revert() (gas: 11397) TokenPool_applyChainUpdates:test_applyChainUpdates_Success() (gas: 477675) -TokenPool_applyChainUpdates:test_applyChainUpdates_ZeroAddressNotAllowed_Revert() (gas: 157320) -TokenPool_constructor:test_ZeroAddressNotAllowed_Revert() (gas: 70594) +TokenPool_applyChainUpdates:test_applyChainUpdates_ZeroAddressNotAllowed_Revert() (gas: 157356) +TokenPool_constructor:test_ZeroAddressNotAllowed_Revert() (gas: 70564) TokenPool_constructor:test_immutableFields_Success() (gas: 20544) -TokenPool_getRemotePool:test_getRemotePool_Success() (gas: 274133) -TokenPool_onlyOffRamp:test_CallerIsNotARampOnRouter_Revert() (gas: 277110) -TokenPool_onlyOffRamp:test_ChainNotAllowed_Revert() (gas: 289682) +TokenPool_getRemotePool:test_getRemotePool_Success() (gas: 274145) +TokenPool_onlyOffRamp:test_CallerIsNotARampOnRouter_Revert() (gas: 277116) +TokenPool_onlyOffRamp:test_ChainNotAllowed_Revert() (gas: 289701) TokenPool_onlyOffRamp:test_onlyOffRamp_Success() (gas: 349912) -TokenPool_onlyOnRamp:test_CallerIsNotARampOnRouter_Revert() (gas: 276850) -TokenPool_onlyOnRamp:test_ChainNotAllowed_Revert() (gas: 253710) +TokenPool_onlyOnRamp:test_CallerIsNotARampOnRouter_Revert() (gas: 276856) +TokenPool_onlyOnRamp:test_ChainNotAllowed_Revert() (gas: 253729) TokenPool_onlyOnRamp:test_onlyOnRamp_Success() (gas: 304962) -TokenPool_setChainRateLimiterConfig:test_NonExistentChain_Revert() (gas: 17142) -TokenPool_setChainRateLimiterConfig:test_OnlyOwnerOrRateLimitAdmin_Revert() (gas: 15137) -TokenPool_setRemotePool:test_setRemotePool_NonExistentChain_Reverts() (gas: 15653) -TokenPool_setRemotePool:test_setRemotePool_OnlyOwner_Reverts() (gas: 13201) -TokenPool_setRemotePool:test_setRemotePool_Success() (gas: 282083) -TokenProxy_ccipSend:test_CcipSendGasShouldBeZero_Revert() (gas: 17121) -TokenProxy_ccipSend:test_CcipSendInsufficientAllowance_Revert() (gas: 136330) +TokenPool_setChainRateLimiterConfig:test_NonExistentChain_Revert() (gas: 17148) +TokenPool_setChainRateLimiterConfig:test_OnlyOwnerOrRateLimitAdmin_Revert() (gas: 15149) +TokenPool_setRemotePool:test_setRemotePool_NonExistentChain_Reverts() (gas: 15665) +TokenPool_setRemotePool:test_setRemotePool_OnlyOwner_Reverts() (gas: 13213) +TokenPool_setRemotePool:test_setRemotePool_Success() (gas: 282095) +TokenProxy_ccipSend:test_CcipSendGasShouldBeZero_Revert() (gas: 17127) +TokenProxy_ccipSend:test_CcipSendInsufficientAllowance_Revert() (gas: 136396) TokenProxy_ccipSend:test_CcipSendInvalidToken_Revert() (gas: 15931) -TokenProxy_ccipSend:test_CcipSendNative_Success() (gas: 245419) +TokenProxy_ccipSend:test_CcipSendNative_Success() (gas: 245620) TokenProxy_ccipSend:test_CcipSendNoDataAllowed_Revert() (gas: 16315) -TokenProxy_ccipSend:test_CcipSend_Success() (gas: 261760) +TokenProxy_ccipSend:test_CcipSend_Success() (gas: 261961) TokenProxy_constructor:test_Constructor() (gas: 13812) -TokenProxy_getFee:test_GetFeeGasShouldBeZero_Revert() (gas: 16839) +TokenProxy_getFee:test_GetFeeGasShouldBeZero_Revert() (gas: 16845) TokenProxy_getFee:test_GetFeeInvalidToken_Revert() (gas: 12670) TokenProxy_getFee:test_GetFeeNoDataAllowed_Revert() (gas: 15864) -TokenProxy_getFee:test_GetFee_Success() (gas: 86882) +TokenProxy_getFee:test_GetFee_Success() (gas: 87008) USDCTokenPool__validateMessage:test_ValidateInvalidMessage_Revert() (gas: 25407) -USDCTokenPool_lockOrBurn:test_CallerIsNotARampOnRouter_Revert() (gas: 35364) -USDCTokenPool_lockOrBurn:test_LockOrBurnWithAllowList_Revert() (gas: 30106) -USDCTokenPool_lockOrBurn:test_LockOrBurn_Success() (gas: 133143) -USDCTokenPool_lockOrBurn:test_UnknownDomain_Revert() (gas: 477468) -USDCTokenPool_releaseOrMint:test_ReleaseOrMintRealTx_Success() (gas: 268219) -USDCTokenPool_releaseOrMint:test_TokenMaxCapacityExceeded_Revert() (gas: 50718) -USDCTokenPool_releaseOrMint:test_UnlockingUSDCFailed_Revert() (gas: 98636) -USDCTokenPool_setDomains:test_InvalidDomain_Revert() (gas: 66174) -USDCTokenPool_setDomains:test_OnlyOwner_Revert() (gas: 11339) -USDCTokenPool_supportsInterface:test_SupportsInterface_Success() (gas: 9876) \ No newline at end of file +USDCTokenPool_lockOrBurn:test_CallerIsNotARampOnRouter_Revert() (gas: 35376) +USDCTokenPool_lockOrBurn:test_LockOrBurnWithAllowList_Revert() (gas: 30112) +USDCTokenPool_lockOrBurn:test_LockOrBurn_Success() (gas: 133148) +USDCTokenPool_lockOrBurn:test_UnknownDomain_Revert() (gas: 477486) +USDCTokenPool_releaseOrMint:test_ReleaseOrMintRealTx_Success() (gas: 268238) +USDCTokenPool_releaseOrMint:test_TokenMaxCapacityExceeded_Revert() (gas: 50724) +USDCTokenPool_releaseOrMint:test_UnlockingUSDCFailed_Revert() (gas: 98642) +USDCTokenPool_setDomains:test_InvalidDomain_Revert() (gas: 66189) +USDCTokenPool_setDomains:test_OnlyOwner_Revert() (gas: 11345) +USDCTokenPool_supportsInterface:test_SupportsInterface_Success() (gas: 9888) \ No newline at end of file diff --git a/contracts/src/v0.8/ccip/offRamp/OffRamp.sol b/contracts/src/v0.8/ccip/offRamp/OffRamp.sol index 52196f0302..7a264bd179 100644 --- a/contracts/src/v0.8/ccip/offRamp/OffRamp.sol +++ b/contracts/src/v0.8/ccip/offRamp/OffRamp.sol @@ -658,10 +658,9 @@ contract OffRamp is ITypeAndVersion, MultiOCR3Base { } SourceChainConfig storage sourceChainConfig = _getEnabledSourceChainConfig(sourceChainSelector); - bytes memory onRamp = sourceChainConfig.onRamp; - if (keccak256(root.onRampAddress) != keccak256(onRamp)) { - revert InvalidOnRamp(root.onRampAddress, onRamp); + if (keccak256(root.onRampAddress) != keccak256(sourceChainConfig.onRamp)) { + revert InvalidOnRamp(root.onRampAddress, sourceChainConfig.onRamp); } if (sourceChainConfig.minSeqNr != root.minSeqNr || root.minSeqNr > root.maxSeqNr) { diff --git a/core/gethwrappers/ccip/generated/offramp/offramp.go b/core/gethwrappers/ccip/generated/offramp/offramp.go index d2cfd96e75..1f24887773 100644 --- a/core/gethwrappers/ccip/generated/offramp/offramp.go +++ b/core/gethwrappers/ccip/generated/offramp/offramp.go @@ -154,8 +154,8 @@ type OffRampStaticConfig struct { } var OffRampMetaData = &bind.MetaData{ - ABI: "[{\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"chainSelector\",\"type\":\"uint64\"},{\"internalType\":\"contractIRMNV2\",\"name\":\"rmn\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tokenAdminRegistry\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"nonceManager\",\"type\":\"address\"}],\"internalType\":\"structOffRamp.StaticConfig\",\"name\":\"staticConfig\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"feeQuoter\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"permissionLessExecutionThresholdSeconds\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"messageValidator\",\"type\":\"address\"}],\"internalType\":\"structOffRamp.DynamicConfig\",\"name\":\"dynamicConfig\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"contractIRouter\",\"name\":\"router\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"bool\",\"name\":\"isEnabled\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"onRamp\",\"type\":\"bytes\"}],\"internalType\":\"structOffRamp.SourceChainConfigArgs[]\",\"name\":\"sourceChainConfigs\",\"type\":\"tuple[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"CanOnlySelfCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"expected\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"actual\",\"type\":\"bytes32\"}],\"name\":\"ConfigDigestMismatch\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"}],\"name\":\"CursedByRMN\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"EmptyReport\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"messageId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"err\",\"type\":\"bytes\"}],\"name\":\"ExecutionError\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"expected\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"actual\",\"type\":\"uint256\"}],\"name\":\"ForkedChain\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"enumMultiOCR3Base.InvalidConfigErrorType\",\"name\":\"errorType\",\"type\":\"uint8\"}],\"name\":\"InvalidConfig\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"expected\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"got\",\"type\":\"uint256\"}],\"name\":\"InvalidDataLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"encodedAddress\",\"type\":\"bytes\"}],\"name\":\"InvalidEVMAddress\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"min\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"max\",\"type\":\"uint64\"}],\"name\":\"InvalidInterval\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"messageId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"newLimit\",\"type\":\"uint256\"}],\"name\":\"InvalidManualExecutionGasLimit\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"messageId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"tokenIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"oldLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"tokenGasOverride\",\"type\":\"uint256\"}],\"name\":\"InvalidManualExecutionTokenGasOverride\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"messageDestChainSelector\",\"type\":\"uint64\"}],\"name\":\"InvalidMessageDestChainSelector\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"sequenceNumber\",\"type\":\"uint64\"},{\"internalType\":\"enumInternal.MessageExecutionState\",\"name\":\"newState\",\"type\":\"uint8\"}],\"name\":\"InvalidNewState\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidProof\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidRoot\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"}],\"name\":\"InvalidStaticConfig\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LeavesCannotBeEmpty\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"messageId\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"sequenceNumber\",\"type\":\"uint64\"}],\"name\":\"ManualExecutionGasAmountCountMismatch\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ManualExecutionGasLimitMismatch\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"}],\"name\":\"ManualExecutionNotYetEnabled\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"errorReason\",\"type\":\"bytes\"}],\"name\":\"MessageValidationError\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NonUniqueSignatures\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"notPool\",\"type\":\"address\"}],\"name\":\"NotACompatiblePool\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OracleCannotBeZeroAddress\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"err\",\"type\":\"bytes\"}],\"name\":\"ReceiverError\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amountReleased\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balancePre\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balancePost\",\"type\":\"uint256\"}],\"name\":\"ReleaseOrMintBalanceMismatch\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"merkleRoot\",\"type\":\"bytes32\"}],\"name\":\"RootAlreadyCommitted\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"}],\"name\":\"RootNotCommitted\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SignatureVerificationDisabled\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SignaturesOutOfRegistration\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"}],\"name\":\"SourceChainNotEnabled\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"reportSourceChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"messageSourceChainSelector\",\"type\":\"uint64\"}],\"name\":\"SourceChainSelectorMismatch\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"StaleCommitReport\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"ocrPluginType\",\"type\":\"uint8\"}],\"name\":\"StaticConfigCannotBeChanged\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"sequenceNumber\",\"type\":\"uint64\"}],\"name\":\"TokenDataMismatch\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"err\",\"type\":\"bytes\"}],\"name\":\"TokenHandlingError\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UnauthorizedSigner\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UnauthorizedTransmitter\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UnexpectedTokenData\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"expected\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"actual\",\"type\":\"uint256\"}],\"name\":\"WrongMessageLength\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"WrongNumberOfSignatures\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZeroAddressNotAllowed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZeroChainSelectorNotAllowed\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"sequenceNumber\",\"type\":\"uint64\"}],\"name\":\"AlreadyAttempted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"onRampAddress\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"minSeqNr\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"maxSeqNr\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"merkleRoot\",\"type\":\"bytes32\"}],\"indexed\":false,\"internalType\":\"structInternal.MerkleRoot[]\",\"name\":\"merkleRoots\",\"type\":\"tuple[]\"},{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"sourceToken\",\"type\":\"address\"},{\"internalType\":\"uint224\",\"name\":\"usdPerToken\",\"type\":\"uint224\"}],\"internalType\":\"structInternal.TokenPriceUpdate[]\",\"name\":\"tokenPriceUpdates\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"uint64\",\"name\":\"destChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"uint224\",\"name\":\"usdPerUnitGas\",\"type\":\"uint224\"}],\"internalType\":\"structInternal.GasPriceUpdate[]\",\"name\":\"gasPriceUpdates\",\"type\":\"tuple[]\"}],\"indexed\":false,\"internalType\":\"structInternal.PriceUpdates\",\"name\":\"priceUpdates\",\"type\":\"tuple\"}],\"name\":\"CommitReportAccepted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"ocrPluginType\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"configDigest\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"signers\",\"type\":\"address[]\"},{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"transmitters\",\"type\":\"address[]\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"F\",\"type\":\"uint8\"}],\"name\":\"ConfigSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"feeQuoter\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"permissionLessExecutionThresholdSeconds\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"messageValidator\",\"type\":\"address\"}],\"indexed\":false,\"internalType\":\"structOffRamp.DynamicConfig\",\"name\":\"dynamicConfig\",\"type\":\"tuple\"}],\"name\":\"DynamicConfigSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"sequenceNumber\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"messageId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"messageHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"enumInternal.MessageExecutionState\",\"name\":\"state\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"returnData\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"gasUsed\",\"type\":\"uint256\"}],\"name\":\"ExecutionStateChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"OwnershipTransferRequested\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"root\",\"type\":\"bytes32\"}],\"name\":\"RootRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"sequenceNumber\",\"type\":\"uint64\"}],\"name\":\"SkippedAlreadyExecutedMessage\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"}],\"name\":\"SkippedReportExecution\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"components\":[{\"internalType\":\"contractIRouter\",\"name\":\"router\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"isEnabled\",\"type\":\"bool\"},{\"internalType\":\"uint64\",\"name\":\"minSeqNr\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"onRamp\",\"type\":\"bytes\"}],\"indexed\":false,\"internalType\":\"structOffRamp.SourceChainConfig\",\"name\":\"sourceConfig\",\"type\":\"tuple\"}],\"name\":\"SourceChainConfigSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"}],\"name\":\"SourceChainSelectorAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"chainSelector\",\"type\":\"uint64\"},{\"internalType\":\"contractIRMNV2\",\"name\":\"rmn\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tokenAdminRegistry\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"nonceManager\",\"type\":\"address\"}],\"indexed\":false,\"internalType\":\"structOffRamp.StaticConfig\",\"name\":\"staticConfig\",\"type\":\"tuple\"}],\"name\":\"StaticConfigSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint8\",\"name\":\"ocrPluginType\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"configDigest\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"sequenceNumber\",\"type\":\"uint64\"}],\"name\":\"Transmitted\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"acceptOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"contractIRouter\",\"name\":\"router\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"bool\",\"name\":\"isEnabled\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"onRamp\",\"type\":\"bytes\"}],\"internalType\":\"structOffRamp.SourceChainConfigArgs[]\",\"name\":\"sourceChainConfigUpdates\",\"type\":\"tuple[]\"}],\"name\":\"applySourceChainConfigUpdates\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"messageId\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"sender\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"structClient.EVMTokenAmount[]\",\"name\":\"destTokenAmounts\",\"type\":\"tuple[]\"}],\"internalType\":\"structClient.Any2EVMMessage\",\"name\":\"\",\"type\":\"tuple\"}],\"name\":\"ccipReceive\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32[3]\",\"name\":\"reportContext\",\"type\":\"bytes32[3]\"},{\"internalType\":\"bytes\",\"name\":\"report\",\"type\":\"bytes\"},{\"internalType\":\"bytes32[]\",\"name\":\"rs\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes32[]\",\"name\":\"ss\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes32\",\"name\":\"rawVs\",\"type\":\"bytes32\"}],\"name\":\"commit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32[3]\",\"name\":\"reportContext\",\"type\":\"bytes32[3]\"},{\"internalType\":\"bytes\",\"name\":\"report\",\"type\":\"bytes\"}],\"name\":\"execute\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"messageId\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"destChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"sequenceNumber\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"internalType\":\"structInternal.RampMessageHeader\",\"name\":\"header\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"sender\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"gasLimit\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"bytes\",\"name\":\"sourcePoolAddress\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"destTokenAddress\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"extraData\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"destExecData\",\"type\":\"bytes\"}],\"internalType\":\"structInternal.RampTokenAmount[]\",\"name\":\"tokenAmounts\",\"type\":\"tuple[]\"}],\"internalType\":\"structInternal.Any2EVMRampMessage\",\"name\":\"message\",\"type\":\"tuple\"},{\"internalType\":\"bytes[]\",\"name\":\"offchainTokenData\",\"type\":\"bytes[]\"},{\"internalType\":\"uint32[]\",\"name\":\"tokenGasOverrides\",\"type\":\"uint32[]\"}],\"name\":\"executeSingleMessage\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getDynamicConfig\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"feeQuoter\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"permissionLessExecutionThresholdSeconds\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"messageValidator\",\"type\":\"address\"}],\"internalType\":\"structOffRamp.DynamicConfig\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"sequenceNumber\",\"type\":\"uint64\"}],\"name\":\"getExecutionState\",\"outputs\":[{\"internalType\":\"enumInternal.MessageExecutionState\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getLatestPriceSequenceNumber\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"root\",\"type\":\"bytes32\"}],\"name\":\"getMerkleRoot\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"}],\"name\":\"getSourceChainConfig\",\"outputs\":[{\"components\":[{\"internalType\":\"contractIRouter\",\"name\":\"router\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"isEnabled\",\"type\":\"bool\"},{\"internalType\":\"uint64\",\"name\":\"minSeqNr\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"onRamp\",\"type\":\"bytes\"}],\"internalType\":\"structOffRamp.SourceChainConfig\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getStaticConfig\",\"outputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"chainSelector\",\"type\":\"uint64\"},{\"internalType\":\"contractIRMNV2\",\"name\":\"rmn\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tokenAdminRegistry\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"nonceManager\",\"type\":\"address\"}],\"internalType\":\"structOffRamp.StaticConfig\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"ocrPluginType\",\"type\":\"uint8\"}],\"name\":\"latestConfigDetails\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"configDigest\",\"type\":\"bytes32\"},{\"internalType\":\"uint8\",\"name\":\"F\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"n\",\"type\":\"uint8\"},{\"internalType\":\"bool\",\"name\":\"isSignatureVerificationEnabled\",\"type\":\"bool\"}],\"internalType\":\"structMultiOCR3Base.ConfigInfo\",\"name\":\"configInfo\",\"type\":\"tuple\"},{\"internalType\":\"address[]\",\"name\":\"signers\",\"type\":\"address[]\"},{\"internalType\":\"address[]\",\"name\":\"transmitters\",\"type\":\"address[]\"}],\"internalType\":\"structMultiOCR3Base.OCRConfig\",\"name\":\"ocrConfig\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"components\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"messageId\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"destChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"sequenceNumber\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"internalType\":\"structInternal.RampMessageHeader\",\"name\":\"header\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"sender\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"gasLimit\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"bytes\",\"name\":\"sourcePoolAddress\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"destTokenAddress\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"extraData\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"destExecData\",\"type\":\"bytes\"}],\"internalType\":\"structInternal.RampTokenAmount[]\",\"name\":\"tokenAmounts\",\"type\":\"tuple[]\"}],\"internalType\":\"structInternal.Any2EVMRampMessage[]\",\"name\":\"messages\",\"type\":\"tuple[]\"},{\"internalType\":\"bytes[][]\",\"name\":\"offchainTokenData\",\"type\":\"bytes[][]\"},{\"internalType\":\"bytes32[]\",\"name\":\"proofs\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"proofFlagBits\",\"type\":\"uint256\"}],\"internalType\":\"structInternal.ExecutionReportSingleChain[]\",\"name\":\"reports\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"receiverExecutionGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint32[]\",\"name\":\"tokenGasOverrides\",\"type\":\"uint32[]\"}],\"internalType\":\"structOffRamp.GasLimitOverride[][]\",\"name\":\"gasLimitOverrides\",\"type\":\"tuple[][]\"}],\"name\":\"manuallyExecute\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"feeQuoter\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"permissionLessExecutionThresholdSeconds\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"messageValidator\",\"type\":\"address\"}],\"internalType\":\"structOffRamp.DynamicConfig\",\"name\":\"dynamicConfig\",\"type\":\"tuple\"}],\"name\":\"setDynamicConfig\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"configDigest\",\"type\":\"bytes32\"},{\"internalType\":\"uint8\",\"name\":\"ocrPluginType\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"F\",\"type\":\"uint8\"},{\"internalType\":\"bool\",\"name\":\"isSignatureVerificationEnabled\",\"type\":\"bool\"},{\"internalType\":\"address[]\",\"name\":\"signers\",\"type\":\"address[]\"},{\"internalType\":\"address[]\",\"name\":\"transmitters\",\"type\":\"address[]\"}],\"internalType\":\"structMultiOCR3Base.OCRConfigArgs[]\",\"name\":\"ocrConfigArgs\",\"type\":\"tuple[]\"}],\"name\":\"setOCR3Configs\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"typeAndVersion\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"}]", - Bin: "0x6101206040523480156200001257600080fd5b50604051620068603803806200686083398101604081905262000035916200085e565b33806000816200008c5760405162461bcd60e51b815260206004820152601860248201527f43616e6e6f7420736574206f776e657220746f207a65726f000000000000000060448201526064015b60405180910390fd5b600080546001600160a01b0319166001600160a01b0384811691909117909155811615620000bf57620000bf81620001fa565b5050466080525060208301516001600160a01b03161580620000ec575060408301516001600160a01b0316155b8062000103575060608301516001600160a01b0316155b1562000122576040516342bcdf7f60e11b815260040160405180910390fd5b82516001600160401b03166000036200014e5760405163c656089560e01b815260040160405180910390fd5b82516001600160401b0390811660a052602080850180516001600160a01b0390811660c05260408088018051831660e0526060808a01805185166101005283518b519098168852945184169587019590955251821690850152905116908201527f683eb52ee924eb817377cfa8f41f238f4bb7a877da5267869dfffbad85f564d89060800160405180910390a1620001e682620002a5565b620001f1816200036d565b50505062000be5565b336001600160a01b03821603620002545760405162461bcd60e51b815260206004820152601760248201527f43616e6e6f74207472616e7366657220746f2073656c66000000000000000000604482015260640162000083565b600180546001600160a01b0319166001600160a01b0383811691821790925560008054604051929316917fed8889f560326eb138920d842192f0eb3dd22b4f139c87a2c57538e05bae12789190a350565b80516001600160a01b0316620002ce576040516342bcdf7f60e11b815260040160405180910390fd5b805160048054602080850180516001600160a01b039586166001600160c01b03199094168417600160a01b63ffffffff928316021790945560408087018051600580546001600160a01b031916918916919091179055815194855291519094169183019190915251909216908201527fa1c15688cb2c24508e158f6942b9276c6f3028a85e1af8cf3fff0c3ff3d5fc8d9060600160405180910390a150565b60005b8151811015620006125760008282815181106200039157620003916200099b565b60200260200101519050600081602001519050806001600160401b0316600003620003cf5760405163c656089560e01b815260040160405180910390fd5b81516001600160a01b0316620003f8576040516342bcdf7f60e11b815260040160405180910390fd5b6001600160401b03811660009081526006602052604081206001810180549192916200042490620009b1565b80601f01602080910402602001604051908101604052809291908181526020018280546200045290620009b1565b8015620004a35780601f106200047757610100808354040283529160200191620004a3565b820191906000526020600020905b8154815290600101906020018083116200048557829003601f168201915b5050505050905060008460600151905081516000036200054a578051600003620004e0576040516342bcdf7f60e11b815260040160405180910390fd5b60018301620004f0828262000a42565b508254600160a81b600160e81b031916600160a81b1783556040516001600160401b03851681527ff4c1390c70e5c0f491ae1ccbc06f9117cbbadf2767b247b3bc203280f24c0fb99060200160405180910390a162000585565b8080519060200120828051906020012014620005855760405163c39a620560e01b81526001600160401b038516600482015260240162000083565b604080860151845487516001600160a01b03166001600160a01b0319921515600160a01b02929092166001600160a81b031990911617178455516001600160401b038516907f49f51971edd25182e97182d6ea372a0488ce2ab639f6a3a7ab4df0d2636fe56b90620005f990869062000b0e565b60405180910390a2505050505080600101905062000370565b5050565b634e487b7160e01b600052604160045260246000fd5b604051608081016001600160401b038111828210171562000651576200065162000616565b60405290565b604051601f8201601f191681016001600160401b038111828210171562000682576200068262000616565b604052919050565b80516001600160401b0381168114620006a257600080fd5b919050565b6001600160a01b0381168114620006bd57600080fd5b50565b6000601f83601f840112620006d457600080fd5b825160206001600160401b0380831115620006f357620006f362000616565b8260051b6200070483820162000657565b93845286810183019383810190898611156200071f57600080fd5b84890192505b8583101562000851578251848111156200073f5760008081fd5b89016080601f19828d038101821315620007595760008081fd5b620007636200062c565b888401516200077281620006a7565b81526040620007838582016200068a565b8a83015260608086015180151581146200079d5760008081fd5b83830152938501519389851115620007b55760008081fd5b84860195508f603f870112620007cd57600094508485fd5b8a860151945089851115620007e657620007e662000616565b620007f78b858f8801160162000657565b93508484528f828688010111156200080f5760008081fd5b60005b858110156200082f578681018301518582018d01528b0162000812565b5060009484018b01949094525091820152835250918401919084019062000725565b9998505050505050505050565b60008060008385036101008112156200087657600080fd5b60808112156200088557600080fd5b6200088f6200062c565b6200089a866200068a565b81526020860151620008ac81620006a7565b60208201526040860151620008c181620006a7565b60408201526060860151620008d681620006a7565b606082810191909152909450607f1982011215620008f357600080fd5b50604051606081016001600160401b0380821183831017156200091a576200091a62000616565b81604052608087015191506200093082620006a7565b90825260a08601519063ffffffff821682146200094c57600080fd5b81602084015260c087015191506200096482620006a7565b6040830182905260e0870151929450808311156200098157600080fd5b50506200099186828701620006c0565b9150509250925092565b634e487b7160e01b600052603260045260246000fd5b600181811c90821680620009c657607f821691505b602082108103620009e757634e487b7160e01b600052602260045260246000fd5b50919050565b601f82111562000a3d576000816000526020600020601f850160051c8101602086101562000a185750805b601f850160051c820191505b8181101562000a395782815560010162000a24565b5050505b505050565b81516001600160401b0381111562000a5e5762000a5e62000616565b62000a768162000a6f8454620009b1565b84620009ed565b602080601f83116001811462000aae576000841562000a955750858301515b600019600386901b1c1916600185901b17855562000a39565b600085815260208120601f198616915b8281101562000adf5788860151825594840194600190910190840162000abe565b508582101562000afe5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b602080825282546001600160a01b0381168383015260a081901c60ff161515604084015260a81c6001600160401b0316606083015260808083015260018084018054600093929190849062000b6381620009b1565b8060a089015260c0600183166000811462000b87576001811462000ba45762000bd6565b60ff19841660c08b015260c083151560051b8b0101945062000bd6565b85600052602060002060005b8481101562000bcd5781548c820185015290880190890162000bb0565b8b0160c0019550505b50929998505050505050505050565b60805160a05160c05160e05161010051615c0562000c5b6000396000818161022c015261292c0152600081816101fd0152612bfe0152600081816101ce01528181610552015281816106ff015261237001526000818161019f01526125af015260008181611d980152611dcb0152615c056000f3fe608060405234801561001057600080fd5b50600436106101515760003560e01c806379ba5097116100cd578063d434969111610081578063e9d68a8e11610066578063e9d68a8e146104bc578063f2fde38b146104dc578063f716f99f146104ef57600080fd5b8063d434969114610496578063e62653f5146104a957600080fd5b80638da5cb5b116100b25780638da5cb5b14610417578063c673e58414610432578063ccd37ba31461045257600080fd5b806379ba50971461040157806385572ffb1461040957600080fd5b8063311cd513116101245780635e36480c116101095780635e36480c1461033c5780636f9e320f1461035c5780637437ff9f1461036f57600080fd5b8063311cd5131461030e5780633f4b04aa1461032157600080fd5b806304666f9c1461015657806306285c691461016b578063181f5a77146102b25780632d04ab76146102fb575b600080fd5b610169610164366004613bc5565b610502565b005b61025c60408051608081018252600080825260208201819052918101829052606081019190915260405180608001604052807f00000000000000000000000000000000000000000000000000000000000000006001600160401b031681526020017f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031681526020017f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031681526020017f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316815250905090565b6040516102a9919081516001600160401b031681526020808301516001600160a01b0390811691830191909152604080840151821690830152606092830151169181019190915260800190565b60405180910390f35b6102ee6040518060400160405280601181526020017f4f666652616d7020312e362e302d64657600000000000000000000000000000081525081565b6040516102a99190613d33565b610169610309366004613de3565b610516565b61016961031c366004613e95565b6109c5565b6009546040516001600160401b0390911681526020016102a9565b61034f61034a366004613ee8565b610a2e565b6040516102a99190613f45565b61016961036a366004613f70565b610a83565b6103cb604080516060810182526000808252602082018190529181019190915250604080516060810182526004546001600160a01b038082168352600160a01b90910463ffffffff166020830152600554169181019190915290565b6040805182516001600160a01b03908116825260208085015163ffffffff169083015292820151909216908201526060016102a9565b610169610a94565b610169610151366004613fc4565b6000546040516001600160a01b0390911681526020016102a9565b61044561044036600461400f565b610b45565b6040516102a9919061406f565b6104886104603660046140e4565b6001600160401b03919091166000908152600860209081526040808320938352929052205490565b6040519081526020016102a9565b6101696104a4366004614380565b610ca3565b6101696104b7366004614708565b610f83565b6104cf6104ca36600461494f565b61122a565b6040516102a9919061496a565b6101696104ea3660046149b7565b611336565b6101696104fd366004614a3c565b611347565b61050a611389565b610513816113e5565b50565b600061052487890189614d91565b602081015151909150156105b6576020810151604080830151905162ccd5af60e81b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169263ccd5af009261058592600401614fb9565b60006040518083038186803b15801561059d57600080fd5b505afa1580156105b1573d6000803e3d6000fd5b505050505b805151511515806105cc57508051602001515115155b156106985760095460208a0135906001600160401b0380831691161015610670576009805467ffffffffffffffff19166001600160401b038316179055600480548351604051633937306f60e01b81526001600160a01b0390921692633937306f926106399291016150ed565b600060405180830381600087803b15801561065357600080fd5b505af1158015610667573d6000803e3d6000fd5b50505050610696565b81602001515160000361069657604051632261116760e01b815260040160405180910390fd5b505b60005b816020015151811015610906576000826020015182815181106106c0576106c061501b565b60209081029190910101518051604051632cbc26bb60e01b815267ffffffffffffffff60801b608083901b166004820152919250906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690632cbc26bb90602401602060405180830381865afa158015610746573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061076a9190615100565b1561079857604051637edeb53960e11b81526001600160401b03821660048201526024015b60405180910390fd5b60006107a38261168b565b604084015181549192506001600160401b03908116600160a81b909204161415806107e7575082606001516001600160401b031683604001516001600160401b0316115b1561082c57825160408085015160608601519151636af0786b60e11b81526001600160401b03938416600482015290831660248201529116604482015260640161078f565b60808301518061084f5760405163504570e360e01b815260040160405180910390fd5b83516001600160401b03166000908152600860209081526040808320848452909152902054156108a75783516040516332cf0cbf60e01b81526001600160401b0390911660048201526024810182905260440161078f565b60608401516108b7906001615133565b825467ffffffffffffffff60a81b1916600160a81b6001600160401b0392831602179092559251166000908152600860209081526040808320948352939052919091204290555060010161069b565b50602081015181516040517f35c02761bcd3ef995c6a601a1981f4ed3934dcbe5041e24e286c89f5531d17e49261093e92909161515a565b60405180910390a16109ba60008a8a8a8a8a8080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020808e0282810182019093528d82529093508d92508c9182918501908490808284376000920191909152508b92506116d7915050565b505050505050505050565b610a056109d48284018461517f565b60408051600080825260208201909252906109ff565b60608152602001906001900390816109ea5790505b506119d0565b604080516000808252602082019092529050610a286001858585858660006116d7565b50505050565b6000610a3c600160046151b3565b6002610a496080856151dc565b6001600160401b0316610a5c9190615202565b610a668585611a92565b901c166003811115610a7a57610a7a613f1b565b90505b92915050565b610a8b611389565b61051381611ad7565b6001546001600160a01b03163314610aee5760405162461bcd60e51b815260206004820152601660248201527f4d7573742062652070726f706f736564206f776e657200000000000000000000604482015260640161078f565b60008054336001600160a01b0319808316821784556001805490911690556040516001600160a01b0390921692909183917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a350565b610b886040805160e081019091526000606082018181526080830182905260a0830182905260c08301919091528190815260200160608152602001606081525090565b60ff808316600090815260026020818152604092839020835160e081018552815460608201908152600183015480881660808401526101008104881660a0840152620100009004909616151560c082015294855291820180548451818402810184019095528085529293858301939092830182828015610c3157602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610c13575b5050505050815260200160038201805480602002602001604051908101604052809291908181526020018280548015610c9357602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610c75575b5050505050815250509050919050565b333014610cc3576040516306e34e6560e31b815260040160405180910390fd5b6040805160008082526020820190925281610d00565b6040805180820190915260008082526020820152815260200190600190039081610cd95790505b5060a08701515190915015610d3657610d338660a001518760200151886060015189600001516020015189898989611bb6565b90505b6040805160a081018252875151815287516020908101516001600160401b031681830152808901518351600094840192610d71929101613d33565b60408051601f19818403018152918152908252898101516020830152018390526005549091506001600160a01b03168015610e4c576040516308d450a160e01b81526001600160a01b038216906308d450a190610dd29085906004016152ba565b600060405180830381600087803b158015610dec57600080fd5b505af1925050508015610dfd575060015b610e4c573d808015610e2b576040519150601f19603f3d011682016040523d82523d6000602084013e610e30565b606091505b50806040516309c2532560e01b815260040161078f9190613d33565b604088015151158015610e6157506080880151155b80610e78575060608801516001600160a01b03163b155b80610e9f57506060880151610e9d906001600160a01b03166385572ffb60e01b611d79565b155b15610eac57505050610f7c565b87516020908101516001600160401b03166000908152600690915260408082205460808b015160608c01519251633cf9798360e01b815284936001600160a01b0390931692633cf9798392610f0a92899261138892916004016152cd565b6000604051808303816000875af1158015610f29573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610f519190810190615309565b509150915081610f7657806040516302a35ba360e21b815260040161078f9190613d33565b50505050505b5050505050565b610f8b611d95565b815181518114610fae576040516320f8fd5960e21b815260040160405180910390fd5b60005b8181101561121a576000848281518110610fcd57610fcd61501b565b60200260200101519050600081602001515190506000858481518110610ff557610ff561501b565b6020026020010151905080518214611020576040516320f8fd5960e21b815260040160405180910390fd5b60005b8281101561120b57600082828151811061103f5761103f61501b565b60200260200101516000015190506000856020015183815181106110655761106561501b565b60200260200101519050816000146110b95780608001518210156110b9578551815151604051633a98d46360e11b81526001600160401b03909216600483015260248201526044810183905260640161078f565b8383815181106110cb576110cb61501b565b602002602001015160200151518160a00151511461111857805180516060909101516040516370a193fd60e01b815260048101929092526001600160401b0316602482015260440161078f565b60005b8160a00151518110156111fd57600085858151811061113c5761113c61501b565b60200260200101516020015182815181106111595761115961501b565b602002602001015163ffffffff169050806000146111f45760008360a0015183815181106111895761118961501b565b6020026020010151608001518060200190518101906111a8919061539e565b90508063ffffffff168210156111f2578351516040516348e617b360e01b815260048101919091526024810184905263ffffffff821660448201526064810183905260840161078f565b505b5060010161111b565b505050806001019050611023565b50505050806001019050610fb1565b5061122583836119d0565b505050565b60408051608080820183526000808352602080840182905283850182905260608085018190526001600160401b03878116845260068352928690208651948501875280546001600160a01b0381168652600160a01b810460ff16151593860193909352600160a81b9092049092169483019490945260018401805493949293918401916112b6906153bb565b80601f01602080910402602001604051908101604052809291908181526020018280546112e2906153bb565b8015610c935780601f1061130457610100808354040283529160200191610c93565b820191906000526020600020905b81548152906001019060200180831161131257505050919092525091949350505050565b61133e611389565b61051381611dfd565b61134f611389565b60005b81518110156113855761137d8282815181106113705761137061501b565b6020026020010151611ea6565b600101611352565b5050565b6000546001600160a01b031633146113e35760405162461bcd60e51b815260206004820152601660248201527f4f6e6c792063616c6c61626c65206279206f776e657200000000000000000000604482015260640161078f565b565b60005b81518110156113855760008282815181106114055761140561501b565b60200260200101519050600081602001519050806001600160401b03166000036114425760405163c656089560e01b815260040160405180910390fd5b81516001600160a01b031661146a576040516342bcdf7f60e11b815260040160405180910390fd5b6001600160401b0381166000908152600660205260408120600181018054919291611494906153bb565b80601f01602080910402602001604051908101604052809291908181526020018280546114c0906153bb565b801561150d5780601f106114e25761010080835404028352916020019161150d565b820191906000526020600020905b8154815290600101906020018083116114f057829003601f168201915b5050505050905060008460600151905081516000036115b0578051600003611548576040516342bcdf7f60e11b815260040160405180910390fd5b600183016115568282615445565b50825467ffffffffffffffff60a81b1916600160a81b1783556040516001600160401b03851681527ff4c1390c70e5c0f491ae1ccbc06f9117cbbadf2767b247b3bc203280f24c0fb99060200160405180910390a16115e9565b80805190602001208280519060200120146115e95760405163c39a620560e01b81526001600160401b038516600482015260240161078f565b604080860151845487516001600160a01b03166001600160a01b0319921515600160a01b02929092167fffffffffffffffffffffff00000000000000000000000000000000000000000090911617178455516001600160401b038516907f49f51971edd25182e97182d6ea372a0488ce2ab639f6a3a7ab4df0d2636fe56b90611673908690615504565b60405180910390a250505050508060010190506113e8565b6001600160401b03811660009081526006602052604081208054600160a01b900460ff16610a7d5760405163ed053c5960e01b81526001600160401b038416600482015260240161078f565b60ff878116600090815260026020908152604080832081516080810183528154815260019091015480861693820193909352610100830485169181019190915262010000909104909216151560608301528735906117368760a46155d1565b905082606001511561177e57845161174f906020615202565b865161175c906020615202565b6117679060a06155d1565b61177191906155d1565b61177b90826155d1565b90505b3681146117a757604051638e1192e160e01b81526004810182905236602482015260440161078f565b50815181146117d65781516040516324f7d61360e21b815260048101919091526024810182905260440161078f565b6117de611d95565b60ff808a166000908152600360209081526040808320338452825280832081518083019092528054808616835293949193909284019161010090910416600281111561182c5761182c613f1b565b600281111561183d5761183d613f1b565b905250905060028160200151600281111561185a5761185a613f1b565b1480156118ae5750600260008b60ff1660ff168152602001908152602001600020600301816000015160ff16815481106118965761189661501b565b6000918252602090912001546001600160a01b031633145b6118cb57604051631b41e11d60e31b815260040160405180910390fd5b5081606001511561197b5760208201516118e69060016155e4565b60ff16855114611909576040516371253a2560e01b815260040160405180910390fd5b835185511461192b5760405163a75d88af60e01b815260040160405180910390fd5b6000878760405161193d9291906155fd565b604051908190038120611954918b9060200161560d565b6040516020818303038152906040528051906020012090506119798a82888888612185565b505b6040805182815260208a8101356001600160401b03169082015260ff8b16917f198d6990ef96613a9026203077e422916918b03ff47f0be6bee7b02d8e139ef0910160405180910390a2505050505050505050565b81516000036119f15760405162bf199760e01b815260040160405180910390fd5b80516040805160008082526020820190925291159181611a34565b604080518082019091526000815260606020820152815260200190600190039081611a0c5790505b50905060005b8451811015610f7c57611a8a858281518110611a5857611a5861501b565b602002602001015184611a8457858381518110611a7757611a7761501b565b6020026020010151612342565b83612342565b600101611a3a565b6001600160401b038216600090815260076020526040812081611ab6608085615621565b6001600160401b031681526020810191909152604001600020549392505050565b80516001600160a01b0316611aff576040516342bcdf7f60e11b815260040160405180910390fd5b805160048054602080850180516001600160a01b039586167fffffffffffffffff0000000000000000000000000000000000000000000000009094168417600160a01b63ffffffff928316021790945560408087018051600580546001600160a01b031916918916919091179055815194855291519094169183019190915251909216908201527fa1c15688cb2c24508e158f6942b9276c6f3028a85e1af8cf3fff0c3ff3d5fc8d9060600160405180910390a150565b606088516001600160401b03811115611bd157611bd16139e5565b604051908082528060200260200182016040528015611c1657816020015b6040805180820190915260008082526020820152815260200190600190039081611bef5790505b509050811560005b8a51811015611d6b5781611cc857848482818110611c3e57611c3e61501b565b9050602002016020810190611c539190615647565b63ffffffff1615611cc857848482818110611c7057611c7061501b565b9050602002016020810190611c859190615647565b6040805163ffffffff9092166020830152016040516020818303038152906040528b8281518110611cb857611cb861501b565b6020026020010151608001819052505b611d468b8281518110611cdd57611cdd61501b565b60200260200101518b8b8b8b8b87818110611cfa57611cfa61501b565b9050602002810190611d0c9190615664565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612bb692505050565b838281518110611d5857611d5861501b565b6020908102919091010152600101611c1e565b505098975050505050505050565b6000611d8483612eb4565b8015610a7a5750610a7a8383612eff565b467f0000000000000000000000000000000000000000000000000000000000000000146113e357604051630f01ce8560e01b81527f0000000000000000000000000000000000000000000000000000000000000000600482015246602482015260440161078f565b336001600160a01b03821603611e555760405162461bcd60e51b815260206004820152601760248201527f43616e6e6f74207472616e7366657220746f2073656c66000000000000000000604482015260640161078f565b600180546001600160a01b0319166001600160a01b0383811691821790925560008054604051929316917fed8889f560326eb138920d842192f0eb3dd22b4f139c87a2c57538e05bae12789190a350565b806040015160ff16600003611ed1576000604051631b3fab5160e11b815260040161078f91906156aa565b60208082015160ff80821660009081526002909352604083206001810154929390928392169003611f22576060840151600182018054911515620100000262ff000019909216919091179055611f5e565b6060840151600182015460ff6201000090910416151590151514611f5e576040516321fd80df60e21b815260ff8416600482015260240161078f565b60a084015180516101001015611f8a576001604051631b3fab5160e11b815260040161078f91906156aa565b611ff08484600301805480602002602001604051908101604052809291908181526020018280548015611fe657602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611fc8575b5050505050612fa1565b8460600151156120fa5761205e8484600201805480602002602001604051908101604052809291908181526020018280548015611fe6576020028201919060005260206000209081546001600160a01b03168152600190910190602001808311611fc8575050505050612fa1565b60808501518051610100101561208a576002604051631b3fab5160e11b815260040161078f91906156aa565b604086015161209a9060036156c4565b60ff168151116120c0576003604051631b3fab5160e11b815260040161078f91906156aa565b805160018401805461ff00191661010060ff8416021790556120eb906002860190602084019061396b565b506120f88582600161300a565b505b6121068482600261300a565b805161211b906003850190602084019061396b565b5060408581015160018401805460ff191660ff8316179055865180855560a088015192517fab8b1b57514019638d7b5ce9c638fe71366fe8e2be1c40a7a80f1733d0e9f547936121749389939260028a019291906156e0565b60405180910390a1610f7c84613165565b8251600090815b818110156123385760006001888684602081106121ab576121ab61501b565b6121b891901a601b6155e4565b8985815181106121ca576121ca61501b565b60200260200101518986815181106121e4576121e461501b565b602002602001015160405160008152602001604052604051612222949392919093845260ff9290921660208401526040830152606082015260800190565b6020604051602081039080840390855afa158015612244573d6000803e3d6000fd5b505060408051601f1981015160ff808e166000908152600360209081528582206001600160a01b038516835281528582208587019096528554808416865293975090955092939284019161010090041660028111156122a5576122a5613f1b565b60028111156122b6576122b6613f1b565b90525090506001816020015160028111156122d3576122d3613f1b565b146122f157604051636518c33d60e11b815260040160405180910390fd5b8051600160ff9091161b85161561231b57604051633d9ef1f160e21b815260040160405180910390fd5b806000015160ff166001901b85179450505080600101905061218c565b5050505050505050565b81518151604051632cbc26bb60e01b8152608083901b67ffffffffffffffff60801b166004820152901515907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690632cbc26bb90602401602060405180830381865afa1580156123bf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123e39190615100565b1561245457801561241257604051637edeb53960e11b81526001600160401b038316600482015260240161078f565b6040516001600160401b03831681527faab522ed53d887e56ed53dd37398a01aeef6a58e0fa77c2173beb9512d8949339060200160405180910390a150505050565b600061245f8361168b565b600101805461246d906153bb565b80601f0160208091040260200160405190810160405280929190818152602001828054612499906153bb565b80156124e65780601f106124bb576101008083540402835291602001916124e6565b820191906000526020600020905b8154815290600101906020018083116124c957829003601f168201915b505050602088015151929350505060008190036125155760405162bf199760e01b815260040160405180910390fd5b856040015151811461253a576040516357e0e08360e01b815260040160405180910390fd5b6000816001600160401b03811115612554576125546139e5565b60405190808252806020026020018201604052801561257d578160200160208202803683370190505b50905060005b8281101561269e576000886020015182815181106125a3576125a361501b565b602002602001015190507f00000000000000000000000000000000000000000000000000000000000000006001600160401b03168160000151604001516001600160401b03161461261a5780516040908101519051631c21951160e11b81526001600160401b03909116600482015260240161078f565b866001600160401b03168160000151602001516001600160401b03161461266e57805160200151604051636c95f1eb60e01b81526001600160401b03808a166004830152909116602482015260440161078f565b61267881866131bc565b83838151811061268a5761268a61501b565b602090810291909101015250600101612583565b5060006126b586838a606001518b608001516132de565b9050806000036126e357604051633ee8bd3f60e11b81526001600160401b038716600482015260240161078f565b60005b838110156109ba5760005a905060008a60200151838151811061270b5761270b61501b565b6020026020010151905060006127298a836000015160600151610a2e565b9050600081600381111561273f5761273f613f1b565b148061275c5750600381600381111561275a5761275a613f1b565b145b6127b257815160600151604080516001600160401b03808e16825290921660208301527f3b575419319662b2a6f5e2467d84521517a3382b908eb3d557bb3fdb0c50e23c910160405180910390a1505050612bae565b60608915612891578b85815181106127cc576127cc61501b565b6020908102919091018101510151600454909150600090600160a01b900463ffffffff166127fa88426151b3565b119050808061281a5750600383600381111561281857612818613f1b565b145b612842576040516354e7e43160e11b81526001600160401b038d16600482015260240161078f565b8c86815181106128545761285461501b565b60200260200101516000015160001461288b578c86815181106128795761287961501b565b60209081029190910101515160808501525b506128fd565b60008260038111156128a5576128a5613f1b565b146128fd57825160600151604080516001600160401b03808f16825290921660208301527f3ef2a99c550a751d4b0b261268f05a803dfb049ab43616a1ffb388f61fe65120910160405180910390a150505050612bae565b8251608001516001600160401b0316156129d657600082600381111561292557612925613f1b565b036129d6577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e0e03cae8c85600001516080015186602001516040518463ffffffff1660e01b815260040161298693929190615792565b6020604051808303816000875af11580156129a5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129c99190615100565b6129d65750505050612bae565b60008d6040015186815181106129ee576129ee61501b565b6020026020010151905080518460a001515114612a3857835160600151604051631cfe6d8b60e01b81526001600160401b03808f166004830152909116602482015260440161078f565b612a4c8c856000015160600151600161331b565b600080612a5a8684866133c0565b91509150612a718e8760000151606001518461331b565b8c15612ac8576003826003811115612a8b57612a8b613f1b565b03612ac8576000856003811115612aa457612aa4613f1b565b14612ac857855151604051632b11b8d960e01b815261078f919083906004016157be565b6002826003811115612adc57612adc613f1b565b14612b21576003826003811115612af557612af5613f1b565b14612b21578d866000015160600151836040516349362d1f60e11b815260040161078f939291906157d7565b8560000151600001518660000151606001516001600160401b03168f6001600160401b03167f05665fe9ad095383d018353f4cbcba77e84db27dd215081bbf7cdf9ae6fbe48b8d8c81518110612b7957612b7961501b565b602002602001015186865a612b8e908f6151b3565b604051612b9e94939291906157fc565b60405180910390a4505050505050505b6001016126e6565b60408051808201909152600080825260208201526000612bd98760200151613474565b60405163bbe4f6db60e01b81526001600160a01b0380831660048301529192506000917f0000000000000000000000000000000000000000000000000000000000000000169063bbe4f6db90602401602060405180830381865afa158015612c45573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c699190615833565b90506001600160a01b0381161580612c985750612c966001600160a01b03821663aff2afbf60e01b611d79565b155b15612cc15760405163ae9b4ce960e01b81526001600160a01b038216600482015260240161078f565b600080612cec88858c60800151806020019051810190612ce1919061539e565b63ffffffff166134e8565b915091506000806000612d9f6040518061010001604052808e81526020018c6001600160401b031681526020018d6001600160a01b031681526020018f606001518152602001896001600160a01b031681526020018f6000015181526020018f6040015181526020018b815250604051602401612d699190615850565b60408051601f198184030181529190526020810180516001600160e01b0316633907753760e01b179052878661138860846135cb565b92509250925082612dc5578160405163e1cd550960e01b815260040161078f9190613d33565b8151602014612df4578151604051631e3be00960e21b815260206004820152602481019190915260440161078f565b600082806020019051810190612e0a919061591c565b9050866001600160a01b03168c6001600160a01b031614612e86576000612e3b8d8a612e36868a6151b3565b6134e8565b50905086811080612e55575081612e5288836151b3565b14155b15612e845760405163a966e21f60e01b815260048101839052602481018890526044810182905260640161078f565b505b604080518082019091526001600160a01b039098168852602088015250949550505050505095945050505050565b6000612ec7826301ffc9a760e01b612eff565b8015610a7d5750612ef8827fffffffff00000000000000000000000000000000000000000000000000000000612eff565b1592915050565b6040517fffffffff0000000000000000000000000000000000000000000000000000000082166024820152600090819060440160408051601f19818403018152919052602080820180516001600160e01b03166301ffc9a760e01b178152825192935060009283928392909183918a617530fa92503d91506000519050828015612f8a575060208210155b8015612f965750600081115b979650505050505050565b60005b81518110156112255760ff831660009081526003602052604081208351909190849084908110612fd657612fd661501b565b6020908102919091018101516001600160a01b03168252810191909152604001600020805461ffff19169055600101612fa4565b60005b8251811015610a2857600083828151811061302a5761302a61501b565b602002602001015190506000600281111561304757613047613f1b565b60ff80871660009081526003602090815260408083206001600160a01b0387168452909152902054610100900416600281111561308657613086613f1b565b146130a7576004604051631b3fab5160e11b815260040161078f91906156aa565b6001600160a01b0381166130ce5760405163d6c62c9b60e01b815260040160405180910390fd5b60405180604001604052808360ff1681526020018460028111156130f4576130f4613f1b565b905260ff80871660009081526003602090815260408083206001600160a01b0387168452825290912083518154931660ff198416811782559184015190929091839161ffff19161761010083600281111561315157613151613f1b565b02179055509050505080600101905061300d565b60ff81166105135760ff808216600090815260026020526040902060010154620100009004166131a857604051631e8ed32560e21b815260040160405180910390fd5b6009805467ffffffffffffffff1916905550565b815160208082015160409283015192516000938493613202937f2425b0b9f9054c76ff151b0a175b18f37a4a4e82013a72e9f15c9caa095ed21f93909291889101615935565b60408051601f1981840301815290829052805160209182012086518051888401516060808b0151908401516080808d0151950151959761324b9794969395929491939101615967565b604051602081830303815290604052805190602001208560400151805190602001208660a001516040516020016132829190615a6b565b60408051601f198184030181528282528051602091820120908301969096528101939093526060830191909152608082015260a081019190915260c0015b60405160208183030381529060405280519060200120905092915050565b6000806132ec8585856136a5565b6001600160401b038716600090815260086020908152604080832093835292905220549150505b949350505050565b6000600261332a6080856151dc565b6001600160401b031661333d9190615202565b9050600061334b8585611a92565b90508161335a600160046151b3565b901b19168183600381111561337157613371613f1b565b6001600160401b03871660009081526007602052604081209190921b9290921791829161339f608088615621565b6001600160401b031681526020810191909152604001600020555050505050565b60405163d434969160e01b8152600090606090309063d4349691906133ed90889088908890600401615b02565b600060405180830381600087803b15801561340757600080fd5b505af1925050508015613418575060015b613457573d808015613446576040519150601f19603f3d011682016040523d82523d6000602084013e61344b565b606091505b5060039250905061346c565b50506040805160208101909152600081526002905b935093915050565b6000815160201461349a578160405163046b337b60e51b815260040161078f9190613d33565b6000828060200190518101906134b0919061591c565b90506001600160a01b038111806134c8575061040081105b15610a7d578260405163046b337b60e51b815260040161078f9190613d33565b60008060008060006135498860405160240161351391906001600160a01b0391909116815260200190565b60408051601f198184030181529190526020810180516001600160e01b03166370a0823160e01b179052888861138860846135cb565b9250925092508261356f578160405163e1cd550960e01b815260040161078f9190613d33565b602082511461359e578151604051631e3be00960e21b815260206004820152602481019190915260440161078f565b818060200190518101906135b2919061591c565b6135bc82886151b3565b94509450505050935093915050565b6000606060008361ffff166001600160401b038111156135ed576135ed6139e5565b6040519080825280601f01601f191660200182016040528015613617576020820181803683370190505b509150863b6136315763030ed58f60e21b60005260046000fd5b5a8581101561364b57632be8ca8b60e21b60005260046000fd5b859003604081048103871061366b576337c3be2960e01b60005260046000fd5b505a6000808a5160208c0160008c8cf193505a900390503d8481111561368e5750835b808352806000602085013e50955095509592505050565b82518251600091908183036136cd57604051630469ac9960e21b815260040160405180910390fd5b61010182118015906136e157506101018111155b6136fe576040516309bde33960e01b815260040160405180910390fd5b60001982820101610100811115613728576040516309bde33960e01b815260040160405180910390fd5b8060000361375557866000815181106137435761374361501b565b60200260200101519350505050613923565b6000816001600160401b0381111561376f5761376f6139e5565b604051908082528060200260200182016040528015613798578160200160208202803683370190505b50905060008080805b858110156138c25760006001821b8b8116036137fc57888510156137e5578c5160018601958e9181106137d6576137d661501b565b6020026020010151905061381e565b85516001850194879181106137d6576137d661501b565b8b5160018401938d9181106138135761381361501b565b602002602001015190505b60008986101561384e578d5160018701968f91811061383f5761383f61501b565b60200260200101519050613870565b86516001860195889181106138655761386561501b565b602002602001015190505b82851115613891576040516309bde33960e01b815260040160405180910390fd5b61389b828261392a565b8784815181106138ad576138ad61501b565b602090810291909101015250506001016137a1565b5060018503821480156138d457508683145b80156138df57508581145b6138fc576040516309bde33960e01b815260040160405180910390fd5b8360018603815181106139115761391161501b565b60200260200101519750505050505050505b9392505050565b60008183106139425761393d8284613948565b610a7a565b610a7a83835b6040805160016020820152908101839052606081018290526000906080016132c0565b8280548282559060005260206000209081019282156139c0579160200282015b828111156139c057825182546001600160a01b0319166001600160a01b0390911617825560209092019160019091019061398b565b506139cc9291506139d0565b5090565b5b808211156139cc57600081556001016139d1565b634e487b7160e01b600052604160045260246000fd5b604051608081016001600160401b0381118282101715613a1d57613a1d6139e5565b60405290565b604051606081016001600160401b0381118282101715613a1d57613a1d6139e5565b60405160a081016001600160401b0381118282101715613a1d57613a1d6139e5565b60405160c081016001600160401b0381118282101715613a1d57613a1d6139e5565b604080519081016001600160401b0381118282101715613a1d57613a1d6139e5565b604051601f8201601f191681016001600160401b0381118282101715613ad357613ad36139e5565b604052919050565b60006001600160401b03821115613af457613af46139e5565b5060051b60200190565b6001600160a01b038116811461051357600080fd5b80356001600160401b0381168114613b2a57600080fd5b919050565b801515811461051357600080fd5b8035613b2a81613b2f565b60006001600160401b03821115613b6157613b616139e5565b50601f01601f191660200190565b600082601f830112613b8057600080fd5b8135613b93613b8e82613b48565b613aab565b818152846020838601011115613ba857600080fd5b816020850160208301376000918101602001919091529392505050565b60006020808385031215613bd857600080fd5b82356001600160401b0380821115613bef57600080fd5b818501915085601f830112613c0357600080fd5b8135613c11613b8e82613adb565b81815260059190911b83018401908481019088831115613c3057600080fd5b8585015b83811015613cd657803585811115613c4c5760008081fd5b86016080818c03601f1901811315613c645760008081fd5b613c6c6139fb565b89830135613c7981613afe565b81526040613c88848201613b13565b8b830152606080850135613c9b81613b2f565b83830152928401359289841115613cb457600091508182fd5b613cc28f8d86880101613b6f565b908301525085525050918601918601613c34565b5098975050505050505050565b60005b83811015613cfe578181015183820152602001613ce6565b50506000910152565b60008151808452613d1f816020860160208601613ce3565b601f01601f19169290920160200192915050565b602081526000610a7a6020830184613d07565b8060608101831015610a7d57600080fd5b60008083601f840112613d6957600080fd5b5081356001600160401b03811115613d8057600080fd5b602083019150836020828501011115613d9857600080fd5b9250929050565b60008083601f840112613db157600080fd5b5081356001600160401b03811115613dc857600080fd5b6020830191508360208260051b8501011115613d9857600080fd5b60008060008060008060008060e0898b031215613dff57600080fd5b613e098a8a613d46565b975060608901356001600160401b0380821115613e2557600080fd5b613e318c838d01613d57565b909950975060808b0135915080821115613e4a57600080fd5b613e568c838d01613d9f565b909750955060a08b0135915080821115613e6f57600080fd5b50613e7c8b828c01613d9f565b999c989b50969995989497949560c00135949350505050565b600080600060808486031215613eaa57600080fd5b613eb48585613d46565b925060608401356001600160401b03811115613ecf57600080fd5b613edb86828701613d57565b9497909650939450505050565b60008060408385031215613efb57600080fd5b613f0483613b13565b9150613f1260208401613b13565b90509250929050565b634e487b7160e01b600052602160045260246000fd5b60048110613f4157613f41613f1b565b9052565b60208101610a7d8284613f31565b8035613b2a81613afe565b63ffffffff8116811461051357600080fd5b600060608284031215613f8257600080fd5b613f8a613a23565b8235613f9581613afe565b81526020830135613fa581613f5e565b60208201526040830135613fb881613afe565b60408201529392505050565b600060208284031215613fd657600080fd5b81356001600160401b03811115613fec57600080fd5b820160a0818503121561392357600080fd5b803560ff81168114613b2a57600080fd5b60006020828403121561402157600080fd5b610a7a82613ffe565b60008151808452602080850194506020840160005b838110156140645781516001600160a01b03168752958201959082019060010161403f565b509495945050505050565b60208152600082518051602084015260ff602082015116604084015260ff604082015116606084015260608101511515608084015250602083015160c060a08401526140be60e084018261402a565b90506040840151601f198483030160c08501526140db828261402a565b95945050505050565b600080604083850312156140f757600080fd5b61410083613b13565b946020939093013593505050565b600060a0828403121561412057600080fd5b614128613a45565b90508135815261413a60208301613b13565b602082015261414b60408301613b13565b604082015261415c60608301613b13565b606082015261416d60808301613b13565b608082015292915050565b600082601f83011261418957600080fd5b81356020614199613b8e83613adb565b82815260059290921b840181019181810190868411156141b857600080fd5b8286015b848110156142b25780356001600160401b03808211156141dc5760008081fd5b9088019060a0828b03601f19018113156141f65760008081fd5b6141fe613a45565b87840135838111156142105760008081fd5b61421e8d8a83880101613b6f565b825250604080850135848111156142355760008081fd5b6142438e8b83890101613b6f565b8a840152506060808601358581111561425c5760008081fd5b61426a8f8c838a0101613b6f565b838501525060809150818601358184015250828501359250838311156142905760008081fd5b61429e8d8a85880101613b6f565b9082015286525050509183019183016141bc565b509695505050505050565b600061014082840312156142d057600080fd5b6142d8613a67565b90506142e4838361410e565b815260a08201356001600160401b038082111561430057600080fd5b61430c85838601613b6f565b602084015260c084013591508082111561432557600080fd5b61433185838601613b6f565b604084015261434260e08501613f53565b6060840152610100840135608084015261012084013591508082111561436757600080fd5b5061437484828501614178565b60a08301525092915050565b60008060008060006060868803121561439857600080fd5b85356001600160401b03808211156143af57600080fd5b6143bb89838a016142bd565b965060208801359150808211156143d157600080fd5b6143dd89838a01613d9f565b909650945060408801359150808211156143f657600080fd5b5061440388828901613d9f565b969995985093965092949392505050565b600082601f83011261442557600080fd5b81356020614435613b8e83613adb565b82815260059290921b8401810191818101908684111561445457600080fd5b8286015b848110156142b25780356001600160401b038111156144775760008081fd5b6144858986838b01016142bd565b845250918301918301614458565b600082601f8301126144a457600080fd5b813560206144b4613b8e83613adb565b82815260059290921b840181019181810190868411156144d357600080fd5b8286015b848110156142b25780356001600160401b03808211156144f657600080fd5b818901915089603f83011261450a57600080fd5b8582013561451a613b8e82613adb565b81815260059190911b830160400190878101908c83111561453a57600080fd5b604085015b838110156145735780358581111561455657600080fd5b6145658f6040838a0101613b6f565b84525091890191890161453f565b508752505050928401925083016144d7565b600082601f83011261459657600080fd5b813560206145a6613b8e83613adb565b8083825260208201915060208460051b8701019350868411156145c857600080fd5b602086015b848110156142b257803583529183019183016145cd565b600082601f8301126145f557600080fd5b81356020614605613b8e83613adb565b82815260059290921b8401810191818101908684111561462457600080fd5b8286015b848110156142b25780356001600160401b03808211156146485760008081fd5b9088019060a0828b03601f19018113156146625760008081fd5b61466a613a45565b614675888501613b13565b81526040808501358481111561468b5760008081fd5b6146998e8b83890101614414565b8a84015250606080860135858111156146b25760008081fd5b6146c08f8c838a0101614493565b83850152506080915081860135858111156146db5760008081fd5b6146e98f8c838a0101614585565b9184019190915250919093013590830152508352918301918301614628565b6000806040838503121561471b57600080fd5b6001600160401b038335111561473057600080fd5b61473d84843585016145e4565b91506001600160401b036020840135111561475757600080fd5b6020830135830184601f82011261476d57600080fd5b61477a613b8e8235613adb565b81358082526020808301929160051b84010187101561479857600080fd5b602083015b6020843560051b850101811015614941576001600160401b03813511156147c357600080fd5b87603f8235860101126147d557600080fd5b6147e8613b8e6020833587010135613adb565b81358501602081810135808452908301929160059190911b016040018a101561481057600080fd5b604083358701015b83358701602081013560051b01604001811015614931576001600160401b038135111561484457600080fd5b833587018135016040818d03603f1901121561485f57600080fd5b614867613a89565b604082013581526001600160401b036060830135111561488657600080fd5b8c605f60608401358401011261489b57600080fd5b60406060830135830101356148b2613b8e82613adb565b808282526020820191508f60608460051b60608801358801010111156148d757600080fd5b6060808601358601015b60608460051b606088013588010101811015614911576149018135613f5e565b80358352602092830192016148e1565b508060208501525050508085525050602083019250602081019050614818565b508452506020928301920161479d565b508093505050509250929050565b60006020828403121561496157600080fd5b610a7a82613b13565b602081526001600160a01b0382511660208201526020820151151560408201526001600160401b0360408301511660608201526000606083015160808084015261331360a0840182613d07565b6000602082840312156149c957600080fd5b813561392381613afe565b600082601f8301126149e557600080fd5b813560206149f5613b8e83613adb565b8083825260208201915060208460051b870101935086841115614a1757600080fd5b602086015b848110156142b2578035614a2f81613afe565b8352918301918301614a1c565b60006020808385031215614a4f57600080fd5b82356001600160401b0380821115614a6657600080fd5b818501915085601f830112614a7a57600080fd5b8135614a88613b8e82613adb565b81815260059190911b83018401908481019088831115614aa757600080fd5b8585015b83811015613cd657803585811115614ac257600080fd5b860160c0818c03601f19011215614ad95760008081fd5b614ae1613a67565b8882013581526040614af4818401613ffe565b8a8301526060614b05818501613ffe565b8284015260809150614b18828501613b3d565b9083015260a08381013589811115614b305760008081fd5b614b3e8f8d838801016149d4565b838501525060c0840135915088821115614b585760008081fd5b614b668e8c848701016149d4565b9083015250845250918601918601614aab565b80356001600160e01b0381168114613b2a57600080fd5b600082601f830112614ba157600080fd5b81356020614bb1613b8e83613adb565b82815260069290921b84018101918181019086841115614bd057600080fd5b8286015b848110156142b25760408189031215614bed5760008081fd5b614bf5613a89565b614bfe82613b13565b8152614c0b858301614b79565b81860152835291830191604001614bd4565b600082601f830112614c2e57600080fd5b81356020614c3e613b8e83613adb565b82815260059290921b84018101918181019086841115614c5d57600080fd5b8286015b848110156142b25780356001600160401b0380821115614c815760008081fd5b9088019060a0828b03601f1901811315614c9b5760008081fd5b614ca3613a45565b614cae888501613b13565b815260408085013584811115614cc45760008081fd5b614cd28e8b83890101613b6f565b8a8401525060609350614ce6848601613b13565b908201526080614cf7858201613b13565b93820193909352920135908201528352918301918301614c61565b600082601f830112614d2357600080fd5b81356020614d33613b8e83613adb565b82815260069290921b84018101918181019086841115614d5257600080fd5b8286015b848110156142b25760408189031215614d6f5760008081fd5b614d77613a89565b813581528482013585820152835291830191604001614d56565b60006020808385031215614da457600080fd5b82356001600160401b0380821115614dbb57600080fd5b9084019060608287031215614dcf57600080fd5b614dd7613a23565b823582811115614de657600080fd5b83016040818903811315614df957600080fd5b614e01613a89565b823585811115614e1057600080fd5b8301601f81018b13614e2157600080fd5b8035614e2f613b8e82613adb565b81815260069190911b8201890190898101908d831115614e4e57600080fd5b928a01925b82841015614e9e5785848f031215614e6b5760008081fd5b614e73613a89565b8435614e7e81613afe565b8152614e8b858d01614b79565b818d0152825292850192908a0190614e53565b845250505082870135915084821115614eb657600080fd5b614ec28a838501614b90565b81880152835250508284013582811115614edb57600080fd5b614ee788828601614c1d565b85830152506040830135935081841115614f0057600080fd5b614f0c87858501614d12565b60408201529695505050505050565b600082825180855260208086019550808260051b84010181860160005b84811015614fac57601f19868403018952815160a06001600160401b03808351168652868301518288880152614f7083880182613d07565b60408581015184169089015260608086015190931692880192909252506080928301519290950191909152509783019790830190600101614f38565b5090979650505050505050565b60006040808352614fcd6040840186614f1b565b83810360208581019190915285518083528682019282019060005b8181101561500d57845180518452840151848401529383019391850191600101614fe8565b509098975050505050505050565b634e487b7160e01b600052603260045260246000fd5b805160408084528151848201819052600092602091908201906060870190855b8181101561508857835180516001600160a01b031684528501516001600160e01b0316858401529284019291850191600101615051565b50508583015187820388850152805180835290840192506000918401905b808310156150e157835180516001600160401b031683528501516001600160e01b0316858301529284019260019290920191908501906150a6565b50979650505050505050565b602081526000610a7a6020830184615031565b60006020828403121561511257600080fd5b815161392381613b2f565b634e487b7160e01b600052601160045260246000fd5b6001600160401b038181168382160190808211156151535761515361511d565b5092915050565b60408152600061516d6040830185614f1b565b82810360208401526140db8185615031565b60006020828403121561519157600080fd5b81356001600160401b038111156151a757600080fd5b613313848285016145e4565b81810381811115610a7d57610a7d61511d565b634e487b7160e01b600052601260045260246000fd5b60006001600160401b03808416806151f6576151f66151c6565b92169190910692915050565b8082028115828204841417610a7d57610a7d61511d565b80518252600060206001600160401b0381840151168185015260408084015160a0604087015261524c60a0870182613d07565b9050606085015186820360608801526152658282613d07565b608087810151898303918a01919091528051808352908601935060009250908501905b808310156150e157835180516001600160a01b0316835286015186830152928501926001929092019190840190615288565b602081526000610a7a6020830184615219565b6080815260006152e06080830187615219565b61ffff9590951660208301525060408101929092526001600160a01b0316606090910152919050565b60008060006060848603121561531e57600080fd5b835161532981613b2f565b60208501519093506001600160401b0381111561534557600080fd5b8401601f8101861361535657600080fd5b8051615364613b8e82613b48565b81815287602083850101111561537957600080fd5b61538a826020830160208601613ce3565b809450505050604084015190509250925092565b6000602082840312156153b057600080fd5b815161392381613f5e565b600181811c908216806153cf57607f821691505b6020821081036153ef57634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115611225576000816000526020600020601f850160051c8101602086101561541e5750805b601f850160051c820191505b8181101561543d5782815560010161542a565b505050505050565b81516001600160401b0381111561545e5761545e6139e5565b6154728161546c84546153bb565b846153f5565b602080601f8311600181146154a7576000841561548f5750858301515b600019600386901b1c1916600185901b17855561543d565b600085815260208120601f198616915b828110156154d6578886015182559484019460019091019084016154b7565b50858210156154f45787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6000602080835283546001600160a01b038116602085015260ff8160a01c16151560408501526001600160401b038160a81c16606085015250600180850160808086015260008154615555816153bb565b8060a089015260c060018316600081146155765760018114615592576155c2565b60ff19841660c08b015260c083151560051b8b010194506155c2565b85600052602060002060005b848110156155b95781548c820185015290880190890161559e565b8b0160c0019550505b50929998505050505050505050565b80820180821115610a7d57610a7d61511d565b60ff8181168382160190811115610a7d57610a7d61511d565b8183823760009101908152919050565b828152606082602083013760800192915050565b60006001600160401b038084168061563b5761563b6151c6565b92169190910492915050565b60006020828403121561565957600080fd5b813561392381613f5e565b6000808335601e1984360301811261567b57600080fd5b8301803591506001600160401b0382111561569557600080fd5b602001915036819003821315613d9857600080fd5b60208101600583106156be576156be613f1b565b91905290565b60ff81811683821602908116908181146151535761515361511d565b600060a0820160ff881683526020878185015260a0604085015281875480845260c0860191508860005282600020935060005b818110156157385784546001600160a01b031683526001948501949284019201615713565b50508481036060860152865180825290820192508187019060005b818110156157785782516001600160a01b031685529383019391830191600101615753565b50505060ff851660808501525090505b9695505050505050565b60006001600160401b038086168352808516602084015250606060408301526140db6060830184613d07565b8281526040602082015260006133136040830184613d07565b6001600160401b03848116825283166020820152606081016133136040830184613f31565b84815261580c6020820185613f31565b6080604082015260006158226080830185613d07565b905082606083015295945050505050565b60006020828403121561584557600080fd5b815161392381613afe565b602081526000825161010080602085015261586f610120850183613d07565b9150602085015161588b60408601826001600160401b03169052565b5060408501516001600160a01b0381166060860152506060850151608085015260808501516158c560a08601826001600160a01b03169052565b5060a0850151601f19808685030160c08701526158e28483613d07565b935060c08701519150808685030160e08701526158ff8483613d07565b935060e08701519150808685030183870152506157888382613d07565b60006020828403121561592e57600080fd5b5051919050565b84815260006001600160401b038086166020840152808516604084015250608060608301526157886080830184613d07565b86815260c06020820152600061598060c0830188613d07565b6001600160a01b03969096166040830152506001600160401b039384166060820152608081019290925290911660a09091015292915050565b600082825180855260208086019550808260051b84010181860160005b84811015614fac57601f19868403018952815160a081518186526159fc82870182613d07565b9150508582015185820387870152615a148282613d07565b91505060408083015186830382880152615a2e8382613d07565b92505050606080830151818701525060808083015192508582038187015250615a578183613d07565b9a86019a94505050908301906001016159d6565b602081526000610a7a60208301846159b9565b60008282518085526020808601955060208260051b8401016020860160005b84811015614fac57601f19868403018952615ab9838351613d07565b98840198925090830190600101615a9d565b60008151808452602080850194506020840160005b8381101561406457815163ffffffff1687529582019590820190600101615ae0565b60608152600084518051606084015260208101516001600160401b0380821660808601528060408401511660a08601528060608401511660c08601528060808401511660e0860152505050602085015161014080610100850152615b6a6101a0850183613d07565b91506040870151605f198086850301610120870152615b898483613d07565b935060608901519150615ba6838701836001600160a01b03169052565b608089015161016087015260a0890151925080868503016101808701525050615bcf82826159b9565b9150508281036020840152615be48186615a7e565b905082810360408401526157888185615acb56fea164736f6c6343000818000a", + ABI: "[{\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"chainSelector\",\"type\":\"uint64\"},{\"internalType\":\"contractIRMNV2\",\"name\":\"rmn\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tokenAdminRegistry\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"nonceManager\",\"type\":\"address\"}],\"internalType\":\"structOffRamp.StaticConfig\",\"name\":\"staticConfig\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"feeQuoter\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"permissionLessExecutionThresholdSeconds\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"messageValidator\",\"type\":\"address\"}],\"internalType\":\"structOffRamp.DynamicConfig\",\"name\":\"dynamicConfig\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"contractIRouter\",\"name\":\"router\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"bool\",\"name\":\"isEnabled\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"onRamp\",\"type\":\"bytes\"}],\"internalType\":\"structOffRamp.SourceChainConfigArgs[]\",\"name\":\"sourceChainConfigs\",\"type\":\"tuple[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"CanOnlySelfCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"expected\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"actual\",\"type\":\"bytes32\"}],\"name\":\"ConfigDigestMismatch\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"}],\"name\":\"CursedByRMN\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"EmptyReport\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"messageId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"err\",\"type\":\"bytes\"}],\"name\":\"ExecutionError\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"expected\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"actual\",\"type\":\"uint256\"}],\"name\":\"ForkedChain\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"enumMultiOCR3Base.InvalidConfigErrorType\",\"name\":\"errorType\",\"type\":\"uint8\"}],\"name\":\"InvalidConfig\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"expected\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"got\",\"type\":\"uint256\"}],\"name\":\"InvalidDataLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"encodedAddress\",\"type\":\"bytes\"}],\"name\":\"InvalidEVMAddress\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"min\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"max\",\"type\":\"uint64\"}],\"name\":\"InvalidInterval\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"messageId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"newLimit\",\"type\":\"uint256\"}],\"name\":\"InvalidManualExecutionGasLimit\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"messageId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"tokenIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"oldLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"tokenGasOverride\",\"type\":\"uint256\"}],\"name\":\"InvalidManualExecutionTokenGasOverride\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"messageDestChainSelector\",\"type\":\"uint64\"}],\"name\":\"InvalidMessageDestChainSelector\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"sequenceNumber\",\"type\":\"uint64\"},{\"internalType\":\"enumInternal.MessageExecutionState\",\"name\":\"newState\",\"type\":\"uint8\"}],\"name\":\"InvalidNewState\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"reportOnRamp\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"configOnRamp\",\"type\":\"bytes\"}],\"name\":\"InvalidOnRamp\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidOnRampUpdate\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidProof\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidRoot\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"}],\"name\":\"InvalidStaticConfig\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LeavesCannotBeEmpty\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"messageId\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"sequenceNumber\",\"type\":\"uint64\"}],\"name\":\"ManualExecutionGasAmountCountMismatch\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ManualExecutionGasLimitMismatch\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"}],\"name\":\"ManualExecutionNotYetEnabled\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"errorReason\",\"type\":\"bytes\"}],\"name\":\"MessageValidationError\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NonUniqueSignatures\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"notPool\",\"type\":\"address\"}],\"name\":\"NotACompatiblePool\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OracleCannotBeZeroAddress\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"err\",\"type\":\"bytes\"}],\"name\":\"ReceiverError\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amountReleased\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balancePre\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balancePost\",\"type\":\"uint256\"}],\"name\":\"ReleaseOrMintBalanceMismatch\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"merkleRoot\",\"type\":\"bytes32\"}],\"name\":\"RootAlreadyCommitted\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"}],\"name\":\"RootNotCommitted\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SignatureVerificationDisabled\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SignaturesOutOfRegistration\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"}],\"name\":\"SourceChainNotEnabled\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"reportSourceChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"messageSourceChainSelector\",\"type\":\"uint64\"}],\"name\":\"SourceChainSelectorMismatch\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"StaleCommitReport\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"ocrPluginType\",\"type\":\"uint8\"}],\"name\":\"StaticConfigCannotBeChanged\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"sequenceNumber\",\"type\":\"uint64\"}],\"name\":\"TokenDataMismatch\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"err\",\"type\":\"bytes\"}],\"name\":\"TokenHandlingError\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UnauthorizedSigner\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UnauthorizedTransmitter\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UnexpectedTokenData\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"expected\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"actual\",\"type\":\"uint256\"}],\"name\":\"WrongMessageLength\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"WrongNumberOfSignatures\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZeroAddressNotAllowed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZeroChainSelectorNotAllowed\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"sequenceNumber\",\"type\":\"uint64\"}],\"name\":\"AlreadyAttempted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"onRampAddress\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"minSeqNr\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"maxSeqNr\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"merkleRoot\",\"type\":\"bytes32\"}],\"indexed\":false,\"internalType\":\"structInternal.MerkleRoot[]\",\"name\":\"merkleRoots\",\"type\":\"tuple[]\"},{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"sourceToken\",\"type\":\"address\"},{\"internalType\":\"uint224\",\"name\":\"usdPerToken\",\"type\":\"uint224\"}],\"internalType\":\"structInternal.TokenPriceUpdate[]\",\"name\":\"tokenPriceUpdates\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"uint64\",\"name\":\"destChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"uint224\",\"name\":\"usdPerUnitGas\",\"type\":\"uint224\"}],\"internalType\":\"structInternal.GasPriceUpdate[]\",\"name\":\"gasPriceUpdates\",\"type\":\"tuple[]\"}],\"indexed\":false,\"internalType\":\"structInternal.PriceUpdates\",\"name\":\"priceUpdates\",\"type\":\"tuple\"}],\"name\":\"CommitReportAccepted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"ocrPluginType\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"configDigest\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"signers\",\"type\":\"address[]\"},{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"transmitters\",\"type\":\"address[]\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"F\",\"type\":\"uint8\"}],\"name\":\"ConfigSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"feeQuoter\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"permissionLessExecutionThresholdSeconds\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"messageValidator\",\"type\":\"address\"}],\"indexed\":false,\"internalType\":\"structOffRamp.DynamicConfig\",\"name\":\"dynamicConfig\",\"type\":\"tuple\"}],\"name\":\"DynamicConfigSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"sequenceNumber\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"messageId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"messageHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"enumInternal.MessageExecutionState\",\"name\":\"state\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"returnData\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"gasUsed\",\"type\":\"uint256\"}],\"name\":\"ExecutionStateChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"OwnershipTransferRequested\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"root\",\"type\":\"bytes32\"}],\"name\":\"RootRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"sequenceNumber\",\"type\":\"uint64\"}],\"name\":\"SkippedAlreadyExecutedMessage\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"}],\"name\":\"SkippedReportExecution\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"components\":[{\"internalType\":\"contractIRouter\",\"name\":\"router\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"isEnabled\",\"type\":\"bool\"},{\"internalType\":\"uint64\",\"name\":\"minSeqNr\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"onRamp\",\"type\":\"bytes\"}],\"indexed\":false,\"internalType\":\"structOffRamp.SourceChainConfig\",\"name\":\"sourceConfig\",\"type\":\"tuple\"}],\"name\":\"SourceChainConfigSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"}],\"name\":\"SourceChainSelectorAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"chainSelector\",\"type\":\"uint64\"},{\"internalType\":\"contractIRMNV2\",\"name\":\"rmn\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tokenAdminRegistry\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"nonceManager\",\"type\":\"address\"}],\"indexed\":false,\"internalType\":\"structOffRamp.StaticConfig\",\"name\":\"staticConfig\",\"type\":\"tuple\"}],\"name\":\"StaticConfigSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint8\",\"name\":\"ocrPluginType\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"configDigest\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"sequenceNumber\",\"type\":\"uint64\"}],\"name\":\"Transmitted\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"acceptOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"contractIRouter\",\"name\":\"router\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"bool\",\"name\":\"isEnabled\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"onRamp\",\"type\":\"bytes\"}],\"internalType\":\"structOffRamp.SourceChainConfigArgs[]\",\"name\":\"sourceChainConfigUpdates\",\"type\":\"tuple[]\"}],\"name\":\"applySourceChainConfigUpdates\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"messageId\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"sender\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"structClient.EVMTokenAmount[]\",\"name\":\"destTokenAmounts\",\"type\":\"tuple[]\"}],\"internalType\":\"structClient.Any2EVMMessage\",\"name\":\"\",\"type\":\"tuple\"}],\"name\":\"ccipReceive\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32[3]\",\"name\":\"reportContext\",\"type\":\"bytes32[3]\"},{\"internalType\":\"bytes\",\"name\":\"report\",\"type\":\"bytes\"},{\"internalType\":\"bytes32[]\",\"name\":\"rs\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes32[]\",\"name\":\"ss\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes32\",\"name\":\"rawVs\",\"type\":\"bytes32\"}],\"name\":\"commit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32[3]\",\"name\":\"reportContext\",\"type\":\"bytes32[3]\"},{\"internalType\":\"bytes\",\"name\":\"report\",\"type\":\"bytes\"}],\"name\":\"execute\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"messageId\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"destChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"sequenceNumber\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"internalType\":\"structInternal.RampMessageHeader\",\"name\":\"header\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"sender\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"gasLimit\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"bytes\",\"name\":\"sourcePoolAddress\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"destTokenAddress\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"extraData\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"destExecData\",\"type\":\"bytes\"}],\"internalType\":\"structInternal.RampTokenAmount[]\",\"name\":\"tokenAmounts\",\"type\":\"tuple[]\"}],\"internalType\":\"structInternal.Any2EVMRampMessage\",\"name\":\"message\",\"type\":\"tuple\"},{\"internalType\":\"bytes[]\",\"name\":\"offchainTokenData\",\"type\":\"bytes[]\"},{\"internalType\":\"uint32[]\",\"name\":\"tokenGasOverrides\",\"type\":\"uint32[]\"}],\"name\":\"executeSingleMessage\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getDynamicConfig\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"feeQuoter\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"permissionLessExecutionThresholdSeconds\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"messageValidator\",\"type\":\"address\"}],\"internalType\":\"structOffRamp.DynamicConfig\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"sequenceNumber\",\"type\":\"uint64\"}],\"name\":\"getExecutionState\",\"outputs\":[{\"internalType\":\"enumInternal.MessageExecutionState\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getLatestPriceSequenceNumber\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"root\",\"type\":\"bytes32\"}],\"name\":\"getMerkleRoot\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"}],\"name\":\"getSourceChainConfig\",\"outputs\":[{\"components\":[{\"internalType\":\"contractIRouter\",\"name\":\"router\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"isEnabled\",\"type\":\"bool\"},{\"internalType\":\"uint64\",\"name\":\"minSeqNr\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"onRamp\",\"type\":\"bytes\"}],\"internalType\":\"structOffRamp.SourceChainConfig\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getStaticConfig\",\"outputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"chainSelector\",\"type\":\"uint64\"},{\"internalType\":\"contractIRMNV2\",\"name\":\"rmn\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tokenAdminRegistry\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"nonceManager\",\"type\":\"address\"}],\"internalType\":\"structOffRamp.StaticConfig\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"ocrPluginType\",\"type\":\"uint8\"}],\"name\":\"latestConfigDetails\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"configDigest\",\"type\":\"bytes32\"},{\"internalType\":\"uint8\",\"name\":\"F\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"n\",\"type\":\"uint8\"},{\"internalType\":\"bool\",\"name\":\"isSignatureVerificationEnabled\",\"type\":\"bool\"}],\"internalType\":\"structMultiOCR3Base.ConfigInfo\",\"name\":\"configInfo\",\"type\":\"tuple\"},{\"internalType\":\"address[]\",\"name\":\"signers\",\"type\":\"address[]\"},{\"internalType\":\"address[]\",\"name\":\"transmitters\",\"type\":\"address[]\"}],\"internalType\":\"structMultiOCR3Base.OCRConfig\",\"name\":\"ocrConfig\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"components\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"messageId\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"destChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"sequenceNumber\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"internalType\":\"structInternal.RampMessageHeader\",\"name\":\"header\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"sender\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"gasLimit\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"bytes\",\"name\":\"sourcePoolAddress\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"destTokenAddress\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"extraData\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"destExecData\",\"type\":\"bytes\"}],\"internalType\":\"structInternal.RampTokenAmount[]\",\"name\":\"tokenAmounts\",\"type\":\"tuple[]\"}],\"internalType\":\"structInternal.Any2EVMRampMessage[]\",\"name\":\"messages\",\"type\":\"tuple[]\"},{\"internalType\":\"bytes[][]\",\"name\":\"offchainTokenData\",\"type\":\"bytes[][]\"},{\"internalType\":\"bytes32[]\",\"name\":\"proofs\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"proofFlagBits\",\"type\":\"uint256\"}],\"internalType\":\"structInternal.ExecutionReportSingleChain[]\",\"name\":\"reports\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"receiverExecutionGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint32[]\",\"name\":\"tokenGasOverrides\",\"type\":\"uint32[]\"}],\"internalType\":\"structOffRamp.GasLimitOverride[][]\",\"name\":\"gasLimitOverrides\",\"type\":\"tuple[][]\"}],\"name\":\"manuallyExecute\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"feeQuoter\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"permissionLessExecutionThresholdSeconds\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"messageValidator\",\"type\":\"address\"}],\"internalType\":\"structOffRamp.DynamicConfig\",\"name\":\"dynamicConfig\",\"type\":\"tuple\"}],\"name\":\"setDynamicConfig\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"configDigest\",\"type\":\"bytes32\"},{\"internalType\":\"uint8\",\"name\":\"ocrPluginType\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"F\",\"type\":\"uint8\"},{\"internalType\":\"bool\",\"name\":\"isSignatureVerificationEnabled\",\"type\":\"bool\"},{\"internalType\":\"address[]\",\"name\":\"signers\",\"type\":\"address[]\"},{\"internalType\":\"address[]\",\"name\":\"transmitters\",\"type\":\"address[]\"}],\"internalType\":\"structMultiOCR3Base.OCRConfigArgs[]\",\"name\":\"ocrConfigArgs\",\"type\":\"tuple[]\"}],\"name\":\"setOCR3Configs\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"typeAndVersion\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"}]", + Bin: "0x6101206040523480156200001257600080fd5b506040516200687b3803806200687b8339810160408190526200003591620007f5565b33806000816200008c5760405162461bcd60e51b815260206004820152601860248201527f43616e6e6f7420736574206f776e657220746f207a65726f000000000000000060448201526064015b60405180910390fd5b600080546001600160a01b0319166001600160a01b0384811691909117909155811615620000bf57620000bf81620001fa565b5050466080525060208301516001600160a01b03161580620000ec575060408301516001600160a01b0316155b8062000103575060608301516001600160a01b0316155b1562000122576040516342bcdf7f60e11b815260040160405180910390fd5b82516001600160401b03166000036200014e5760405163c656089560e01b815260040160405180910390fd5b82516001600160401b0390811660a052602080850180516001600160a01b0390811660c05260408088018051831660e0526060808a01805185166101005283518b519098168852945184169587019590955251821690850152905116908201527f683eb52ee924eb817377cfa8f41f238f4bb7a877da5267869dfffbad85f564d89060800160405180910390a1620001e682620002a5565b620001f1816200036d565b50505062000b7c565b336001600160a01b03821603620002545760405162461bcd60e51b815260206004820152601760248201527f43616e6e6f74207472616e7366657220746f2073656c66000000000000000000604482015260640162000083565b600180546001600160a01b0319166001600160a01b0383811691821790925560008054604051929316917fed8889f560326eb138920d842192f0eb3dd22b4f139c87a2c57538e05bae12789190a350565b80516001600160a01b0316620002ce576040516342bcdf7f60e11b815260040160405180910390fd5b805160048054602080850180516001600160a01b039586166001600160c01b03199094168417600160a01b63ffffffff928316021790945560408087018051600580546001600160a01b031916918916919091179055815194855291519094169183019190915251909216908201527fa1c15688cb2c24508e158f6942b9276c6f3028a85e1af8cf3fff0c3ff3d5fc8d9060600160405180910390a150565b60005b8151811015620005a957600082828151811062000391576200039162000932565b60200260200101519050600081602001519050806001600160401b0316600003620003cf5760405163c656089560e01b815260040160405180910390fd5b81516001600160a01b0316620003f8576040516342bcdf7f60e11b815260040160405180910390fd5b6001600160401b03811660009081526006602052604090206060830151600182018054620004269062000948565b905060000362000484578154600160a81b600160e81b031916600160a81b1782556040516001600160401b03841681527ff4c1390c70e5c0f491ae1ccbc06f9117cbbadf2767b247b3bc203280f24c0fb99060200160405180910390a15b80511580620004ba5750604080516000602082015201604051602081830303815290604052805190602001208180519060200120145b15620004d9576040516342bcdf7f60e11b815260040160405180910390fd5b8154600160a81b90046001600160401b03166001146200050c57604051634ffae15560e11b815260040160405180910390fd5b600182016200051c8282620009d9565b50604080850151835486516001600160a01b03166001600160a01b0319921515600160a01b02929092166001600160a81b031990911617178355516001600160401b038416907f49f51971edd25182e97182d6ea372a0488ce2ab639f6a3a7ab4df0d2636fe56b906200059190859062000aa5565b60405180910390a25050505080600101905062000370565b5050565b634e487b7160e01b600052604160045260246000fd5b604051608081016001600160401b0381118282101715620005e857620005e8620005ad565b60405290565b604051601f8201601f191681016001600160401b0381118282101715620006195762000619620005ad565b604052919050565b80516001600160401b03811681146200063957600080fd5b919050565b6001600160a01b03811681146200065457600080fd5b50565b6000601f83601f8401126200066b57600080fd5b825160206001600160401b03808311156200068a576200068a620005ad565b8260051b6200069b838201620005ee565b9384528681018301938381019089861115620006b657600080fd5b84890192505b85831015620007e857825184811115620006d65760008081fd5b89016080601f19828d038101821315620006f05760008081fd5b620006fa620005c3565b8884015162000709816200063e565b815260406200071a85820162000621565b8a8301526060808601518015158114620007345760008081fd5b838301529385015193898511156200074c5760008081fd5b84860195508f603f8701126200076457600094508485fd5b8a8601519450898511156200077d576200077d620005ad565b6200078e8b858f88011601620005ee565b93508484528f82868801011115620007a65760008081fd5b60005b85811015620007c6578681018301518582018d01528b01620007a9565b5060009484018b019490945250918201528352509184019190840190620006bc565b9998505050505050505050565b60008060008385036101008112156200080d57600080fd5b60808112156200081c57600080fd5b62000826620005c3565b620008318662000621565b8152602086015162000843816200063e565b6020820152604086015162000858816200063e565b604082015260608601516200086d816200063e565b606082810191909152909450607f19820112156200088a57600080fd5b50604051606081016001600160401b038082118383101715620008b157620008b1620005ad565b8160405260808701519150620008c7826200063e565b90825260a08601519063ffffffff82168214620008e357600080fd5b81602084015260c08701519150620008fb826200063e565b6040830182905260e0870151929450808311156200091857600080fd5b5050620009288682870162000657565b9150509250925092565b634e487b7160e01b600052603260045260246000fd5b600181811c908216806200095d57607f821691505b6020821081036200097e57634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620009d4576000816000526020600020601f850160051c81016020861015620009af5750805b601f850160051c820191505b81811015620009d057828155600101620009bb565b5050505b505050565b81516001600160401b03811115620009f557620009f5620005ad565b62000a0d8162000a06845462000948565b8462000984565b602080601f83116001811462000a45576000841562000a2c5750858301515b600019600386901b1c1916600185901b178555620009d0565b600085815260208120601f198616915b8281101562000a765788860151825594840194600190910190840162000a55565b508582101562000a955787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b602080825282546001600160a01b0381168383015260a081901c60ff161515604084015260a81c6001600160401b0316606083015260808083015260018084018054600093929190849062000afa8162000948565b8060a089015260c0600183166000811462000b1e576001811462000b3b5762000b6d565b60ff19841660c08b015260c083151560051b8b0101945062000b6d565b85600052602060002060005b8481101562000b645781548c820185015290880190890162000b47565b8b0160c0019550505b50929998505050505050505050565b60805160a05160c05160e05161010051615c8962000bf26000396000818161022c01526129170152600081816101fd0152612be90152600081816101ce01528181610552015281816106ff015261235b01526000818161019f015261259a015260008181611d830152611db60152615c896000f3fe608060405234801561001057600080fd5b50600436106101515760003560e01c806379ba5097116100cd578063d434969111610081578063e9d68a8e11610066578063e9d68a8e146104bc578063f2fde38b146104dc578063f716f99f146104ef57600080fd5b8063d434969114610496578063e62653f5146104a957600080fd5b80638da5cb5b116100b25780638da5cb5b14610417578063c673e58414610432578063ccd37ba31461045257600080fd5b806379ba50971461040157806385572ffb1461040957600080fd5b8063311cd513116101245780635e36480c116101095780635e36480c1461033c5780636f9e320f1461035c5780637437ff9f1461036f57600080fd5b8063311cd5131461030e5780633f4b04aa1461032157600080fd5b806304666f9c1461015657806306285c691461016b578063181f5a77146102b25780632d04ab76146102fb575b600080fd5b610169610164366004613bb0565b610502565b005b61025c60408051608081018252600080825260208201819052918101829052606081019190915260405180608001604052807f00000000000000000000000000000000000000000000000000000000000000006001600160401b031681526020017f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031681526020017f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031681526020017f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316815250905090565b6040516102a9919081516001600160401b031681526020808301516001600160a01b0390811691830191909152604080840151821690830152606092830151169181019190915260800190565b60405180910390f35b6102ee6040518060400160405280601181526020017f4f666652616d7020312e362e302d64657600000000000000000000000000000081525081565b6040516102a99190613d1e565b610169610309366004613dce565b610516565b61016961031c366004613e80565b610a12565b6009546040516001600160401b0390911681526020016102a9565b61034f61034a366004613ed3565b610a7b565b6040516102a99190613f30565b61016961036a366004613f5b565b610ad0565b6103cb604080516060810182526000808252602082018190529181019190915250604080516060810182526004546001600160a01b038082168352600160a01b90910463ffffffff166020830152600554169181019190915290565b6040805182516001600160a01b03908116825260208085015163ffffffff169083015292820151909216908201526060016102a9565b610169610ae1565b610169610151366004613faf565b6000546040516001600160a01b0390911681526020016102a9565b610445610440366004613ffa565b610b92565b6040516102a9919061405a565b6104886104603660046140cf565b6001600160401b03919091166000908152600860209081526040808320938352929052205490565b6040519081526020016102a9565b6101696104a436600461436b565b610cf0565b6101696104b73660046146f3565b610fd0565b6104cf6104ca36600461493a565b611277565b6040516102a99190614955565b6101696104ea3660046149a2565b611383565b6101696104fd366004614a27565b611394565b61050a6113d6565b61051381611432565b50565b600061052487890189614d7c565b602081015151909150156105b6576020810151604080830151905162ccd5af60e81b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169263ccd5af009261058592600401614fa4565b60006040518083038186803b15801561059d57600080fd5b505afa1580156105b1573d6000803e3d6000fd5b505050505b805151511515806105cc57508051602001515115155b156106985760095460208a0135906001600160401b0380831691161015610670576009805467ffffffffffffffff19166001600160401b038316179055600480548351604051633937306f60e01b81526001600160a01b0390921692633937306f926106399291016150d8565b600060405180830381600087803b15801561065357600080fd5b505af1158015610667573d6000803e3d6000fd5b50505050610696565b81602001515160000361069657604051632261116760e01b815260040160405180910390fd5b505b60005b816020015151811015610953576000826020015182815181106106c0576106c0615006565b60209081029190910101518051604051632cbc26bb60e01b815267ffffffffffffffff60801b608083901b166004820152919250906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690632cbc26bb90602401602060405180830381865afa158015610746573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061076a91906150eb565b1561079857604051637edeb53960e11b81526001600160401b03821660048201526024015b60405180910390fd5b60006107a382611676565b9050806001016040516107b69190615142565b6040518091039020836020015180519060200120146107f357826020015181600101604051630426012b60e31b815260040161078f929190615235565b60408301518154600160a81b90046001600160401b039081169116141580610834575082606001516001600160401b031683604001516001600160401b0316115b1561087957825160408085015160608601519151636af0786b60e11b81526001600160401b03938416600482015290831660248201529116604482015260640161078f565b60808301518061089c5760405163504570e360e01b815260040160405180910390fd5b83516001600160401b03166000908152600860209081526040808320848452909152902054156108f45783516040516332cf0cbf60e01b81526001600160401b0390911660048201526024810182905260440161078f565b6060840151610904906001615270565b825467ffffffffffffffff60a81b1916600160a81b6001600160401b0392831602179092559251166000908152600860209081526040808320948352939052919091204290555060010161069b565b50602081015181516040517f35c02761bcd3ef995c6a601a1981f4ed3934dcbe5041e24e286c89f5531d17e49261098b929091615297565b60405180910390a1610a0760008a8a8a8a8a8080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020808e0282810182019093528d82529093508d92508c9182918501908490808284376000920191909152508b92506116c2915050565b505050505050505050565b610a52610a21828401846152bc565b6040805160008082526020820190925290610a4c565b6060815260200190600190039081610a375790505b506119bb565b604080516000808252602082019092529050610a756001858585858660006116c2565b50505050565b6000610a89600160046152f0565b6002610a96608085615319565b6001600160401b0316610aa9919061533f565b610ab38585611a7d565b901c166003811115610ac757610ac7613f06565b90505b92915050565b610ad86113d6565b61051381611ac2565b6001546001600160a01b03163314610b3b5760405162461bcd60e51b815260206004820152601660248201527f4d7573742062652070726f706f736564206f776e657200000000000000000000604482015260640161078f565b60008054336001600160a01b0319808316821784556001805490911690556040516001600160a01b0390921692909183917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a350565b610bd56040805160e081019091526000606082018181526080830182905260a0830182905260c08301919091528190815260200160608152602001606081525090565b60ff808316600090815260026020818152604092839020835160e081018552815460608201908152600183015480881660808401526101008104881660a0840152620100009004909616151560c082015294855291820180548451818402810184019095528085529293858301939092830182828015610c7e57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610c60575b5050505050815260200160038201805480602002602001604051908101604052809291908181526020018280548015610ce057602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610cc2575b5050505050815250509050919050565b333014610d10576040516306e34e6560e31b815260040160405180910390fd5b6040805160008082526020820190925281610d4d565b6040805180820190915260008082526020820152815260200190600190039081610d265790505b5060a08701515190915015610d8357610d808660a001518760200151886060015189600001516020015189898989611ba1565b90505b6040805160a081018252875151815287516020908101516001600160401b031681830152808901518351600094840192610dbe929101613d1e565b60408051601f19818403018152918152908252898101516020830152018390526005549091506001600160a01b03168015610e99576040516308d450a160e01b81526001600160a01b038216906308d450a190610e1f9085906004016153f7565b600060405180830381600087803b158015610e3957600080fd5b505af1925050508015610e4a575060015b610e99573d808015610e78576040519150601f19603f3d011682016040523d82523d6000602084013e610e7d565b606091505b50806040516309c2532560e01b815260040161078f9190613d1e565b604088015151158015610eae57506080880151155b80610ec5575060608801516001600160a01b03163b155b80610eec57506060880151610eea906001600160a01b03166385572ffb60e01b611d64565b155b15610ef957505050610fc9565b87516020908101516001600160401b03166000908152600690915260408082205460808b015160608c01519251633cf9798360e01b815284936001600160a01b0390931692633cf9798392610f57928992611388929160040161540a565b6000604051808303816000875af1158015610f76573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610f9e9190810190615446565b509150915081610fc357806040516302a35ba360e21b815260040161078f9190613d1e565b50505050505b5050505050565b610fd8611d80565b815181518114610ffb576040516320f8fd5960e21b815260040160405180910390fd5b60005b8181101561126757600084828151811061101a5761101a615006565b6020026020010151905060008160200151519050600085848151811061104257611042615006565b602002602001015190508051821461106d576040516320f8fd5960e21b815260040160405180910390fd5b60005b8281101561125857600082828151811061108c5761108c615006565b60200260200101516000015190506000856020015183815181106110b2576110b2615006565b6020026020010151905081600014611106578060800151821015611106578551815151604051633a98d46360e11b81526001600160401b03909216600483015260248201526044810183905260640161078f565b83838151811061111857611118615006565b602002602001015160200151518160a00151511461116557805180516060909101516040516370a193fd60e01b815260048101929092526001600160401b0316602482015260440161078f565b60005b8160a001515181101561124a57600085858151811061118957611189615006565b60200260200101516020015182815181106111a6576111a6615006565b602002602001015163ffffffff169050806000146112415760008360a0015183815181106111d6576111d6615006565b6020026020010151608001518060200190518101906111f591906154db565b90508063ffffffff1682101561123f578351516040516348e617b360e01b815260048101919091526024810184905263ffffffff821660448201526064810183905260840161078f565b505b50600101611168565b505050806001019050611070565b50505050806001019050610ffe565b5061127283836119bb565b505050565b60408051608080820183526000808352602080840182905283850182905260608085018190526001600160401b03878116845260068352928690208651948501875280546001600160a01b0381168652600160a01b810460ff16151593860193909352600160a81b90920490921694830194909452600184018054939492939184019161130390615108565b80601f016020809104026020016040519081016040528092919081815260200182805461132f90615108565b8015610ce05780601f1061135157610100808354040283529160200191610ce0565b820191906000526020600020905b81548152906001019060200180831161135f57505050919092525091949350505050565b61138b6113d6565b61051381611de8565b61139c6113d6565b60005b81518110156113d2576113ca8282815181106113bd576113bd615006565b6020026020010151611e91565b60010161139f565b5050565b6000546001600160a01b031633146114305760405162461bcd60e51b815260206004820152601660248201527f4f6e6c792063616c6c61626c65206279206f776e657200000000000000000000604482015260640161078f565b565b60005b81518110156113d257600082828151811061145257611452615006565b60200260200101519050600081602001519050806001600160401b031660000361148f5760405163c656089560e01b815260040160405180910390fd5b81516001600160a01b03166114b7576040516342bcdf7f60e11b815260040160405180910390fd5b6001600160401b038116600090815260066020526040902060608301516001820180546114e390615108565b905060000361154157815467ffffffffffffffff60a81b1916600160a81b1782556040516001600160401b03841681527ff4c1390c70e5c0f491ae1ccbc06f9117cbbadf2767b247b3bc203280f24c0fb99060200160405180910390a15b805115806115765750604080516000602082015201604051602081830303815290604052805190602001208180519060200120145b15611594576040516342bcdf7f60e11b815260040160405180910390fd5b8154600160a81b90046001600160401b03166001146115c657604051634ffae15560e11b815260040160405180910390fd5b600182016115d48282615548565b50604080850151835486516001600160a01b03166001600160a01b0319921515600160a01b02929092167fffffffffffffffffffffff00000000000000000000000000000000000000000090911617178355516001600160401b038416907f49f51971edd25182e97182d6ea372a0488ce2ab639f6a3a7ab4df0d2636fe56b9061165f908590615607565b60405180910390a250505050806001019050611435565b6001600160401b03811660009081526006602052604081208054600160a01b900460ff16610aca5760405163ed053c5960e01b81526001600160401b038416600482015260240161078f565b60ff878116600090815260026020908152604080832081516080810183528154815260019091015480861693820193909352610100830485169181019190915262010000909104909216151560608301528735906117218760a4615655565b905082606001511561176957845161173a90602061533f565b865161174790602061533f565b6117529060a0615655565b61175c9190615655565b6117669082615655565b90505b36811461179257604051638e1192e160e01b81526004810182905236602482015260440161078f565b50815181146117c15781516040516324f7d61360e21b815260048101919091526024810182905260440161078f565b6117c9611d80565b60ff808a166000908152600360209081526040808320338452825280832081518083019092528054808616835293949193909284019161010090910416600281111561181757611817613f06565b600281111561182857611828613f06565b905250905060028160200151600281111561184557611845613f06565b1480156118995750600260008b60ff1660ff168152602001908152602001600020600301816000015160ff168154811061188157611881615006565b6000918252602090912001546001600160a01b031633145b6118b657604051631b41e11d60e31b815260040160405180910390fd5b508160600151156119665760208201516118d1906001615668565b60ff168551146118f4576040516371253a2560e01b815260040160405180910390fd5b83518551146119165760405163a75d88af60e01b815260040160405180910390fd5b60008787604051611928929190615681565b60405190819003812061193f918b90602001615691565b6040516020818303038152906040528051906020012090506119648a82888888612170565b505b6040805182815260208a8101356001600160401b03169082015260ff8b16917f198d6990ef96613a9026203077e422916918b03ff47f0be6bee7b02d8e139ef0910160405180910390a2505050505050505050565b81516000036119dc5760405162bf199760e01b815260040160405180910390fd5b80516040805160008082526020820190925291159181611a1f565b6040805180820190915260008152606060208201528152602001906001900390816119f75790505b50905060005b8451811015610fc957611a75858281518110611a4357611a43615006565b602002602001015184611a6f57858381518110611a6257611a62615006565b602002602001015161232d565b8361232d565b600101611a25565b6001600160401b038216600090815260076020526040812081611aa16080856156a5565b6001600160401b031681526020810191909152604001600020549392505050565b80516001600160a01b0316611aea576040516342bcdf7f60e11b815260040160405180910390fd5b805160048054602080850180516001600160a01b039586167fffffffffffffffff0000000000000000000000000000000000000000000000009094168417600160a01b63ffffffff928316021790945560408087018051600580546001600160a01b031916918916919091179055815194855291519094169183019190915251909216908201527fa1c15688cb2c24508e158f6942b9276c6f3028a85e1af8cf3fff0c3ff3d5fc8d9060600160405180910390a150565b606088516001600160401b03811115611bbc57611bbc6139d0565b604051908082528060200260200182016040528015611c0157816020015b6040805180820190915260008082526020820152815260200190600190039081611bda5790505b509050811560005b8a51811015611d565781611cb357848482818110611c2957611c29615006565b9050602002016020810190611c3e91906156cb565b63ffffffff1615611cb357848482818110611c5b57611c5b615006565b9050602002016020810190611c7091906156cb565b6040805163ffffffff9092166020830152016040516020818303038152906040528b8281518110611ca357611ca3615006565b6020026020010151608001819052505b611d318b8281518110611cc857611cc8615006565b60200260200101518b8b8b8b8b87818110611ce557611ce5615006565b9050602002810190611cf791906156e8565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612ba192505050565b838281518110611d4357611d43615006565b6020908102919091010152600101611c09565b505098975050505050505050565b6000611d6f83612e9f565b8015610ac75750610ac78383612eea565b467f00000000000000000000000000000000000000000000000000000000000000001461143057604051630f01ce8560e01b81527f0000000000000000000000000000000000000000000000000000000000000000600482015246602482015260440161078f565b336001600160a01b03821603611e405760405162461bcd60e51b815260206004820152601760248201527f43616e6e6f74207472616e7366657220746f2073656c66000000000000000000604482015260640161078f565b600180546001600160a01b0319166001600160a01b0383811691821790925560008054604051929316917fed8889f560326eb138920d842192f0eb3dd22b4f139c87a2c57538e05bae12789190a350565b806040015160ff16600003611ebc576000604051631b3fab5160e11b815260040161078f919061572e565b60208082015160ff80821660009081526002909352604083206001810154929390928392169003611f0d576060840151600182018054911515620100000262ff000019909216919091179055611f49565b6060840151600182015460ff6201000090910416151590151514611f49576040516321fd80df60e21b815260ff8416600482015260240161078f565b60a084015180516101001015611f75576001604051631b3fab5160e11b815260040161078f919061572e565b611fdb8484600301805480602002602001604051908101604052809291908181526020018280548015611fd157602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611fb3575b5050505050612f8c565b8460600151156120e5576120498484600201805480602002602001604051908101604052809291908181526020018280548015611fd1576020028201919060005260206000209081546001600160a01b03168152600190910190602001808311611fb3575050505050612f8c565b608085015180516101001015612075576002604051631b3fab5160e11b815260040161078f919061572e565b6040860151612085906003615748565b60ff168151116120ab576003604051631b3fab5160e11b815260040161078f919061572e565b805160018401805461ff00191661010060ff8416021790556120d69060028601906020840190613956565b506120e385826001612ff5565b505b6120f184826002612ff5565b80516121069060038501906020840190613956565b5060408581015160018401805460ff191660ff8316179055865180855560a088015192517fab8b1b57514019638d7b5ce9c638fe71366fe8e2be1c40a7a80f1733d0e9f5479361215f9389939260028a01929190615764565b60405180910390a1610fc984613150565b8251600090815b8181101561232357600060018886846020811061219657612196615006565b6121a391901a601b615668565b8985815181106121b5576121b5615006565b60200260200101518986815181106121cf576121cf615006565b60200260200101516040516000815260200160405260405161220d949392919093845260ff9290921660208401526040830152606082015260800190565b6020604051602081039080840390855afa15801561222f573d6000803e3d6000fd5b505060408051601f1981015160ff808e166000908152600360209081528582206001600160a01b0385168352815285822085870190965285548084168652939750909550929392840191610100900416600281111561229057612290613f06565b60028111156122a1576122a1613f06565b90525090506001816020015160028111156122be576122be613f06565b146122dc57604051636518c33d60e11b815260040160405180910390fd5b8051600160ff9091161b85161561230657604051633d9ef1f160e21b815260040160405180910390fd5b806000015160ff166001901b851794505050806001019050612177565b5050505050505050565b81518151604051632cbc26bb60e01b8152608083901b67ffffffffffffffff60801b166004820152901515907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690632cbc26bb90602401602060405180830381865afa1580156123aa573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123ce91906150eb565b1561243f5780156123fd57604051637edeb53960e11b81526001600160401b038316600482015260240161078f565b6040516001600160401b03831681527faab522ed53d887e56ed53dd37398a01aeef6a58e0fa77c2173beb9512d8949339060200160405180910390a150505050565b600061244a83611676565b600101805461245890615108565b80601f016020809104026020016040519081016040528092919081815260200182805461248490615108565b80156124d15780601f106124a6576101008083540402835291602001916124d1565b820191906000526020600020905b8154815290600101906020018083116124b457829003601f168201915b505050602088015151929350505060008190036125005760405162bf199760e01b815260040160405180910390fd5b8560400151518114612525576040516357e0e08360e01b815260040160405180910390fd5b6000816001600160401b0381111561253f5761253f6139d0565b604051908082528060200260200182016040528015612568578160200160208202803683370190505b50905060005b828110156126895760008860200151828151811061258e5761258e615006565b602002602001015190507f00000000000000000000000000000000000000000000000000000000000000006001600160401b03168160000151604001516001600160401b0316146126055780516040908101519051631c21951160e11b81526001600160401b03909116600482015260240161078f565b866001600160401b03168160000151602001516001600160401b03161461265957805160200151604051636c95f1eb60e01b81526001600160401b03808a166004830152909116602482015260440161078f565b61266381866131a7565b83838151811061267557612675615006565b60209081029190910101525060010161256e565b5060006126a086838a606001518b608001516132c9565b9050806000036126ce57604051633ee8bd3f60e11b81526001600160401b038716600482015260240161078f565b60005b83811015610a075760005a905060008a6020015183815181106126f6576126f6615006565b6020026020010151905060006127148a836000015160600151610a7b565b9050600081600381111561272a5761272a613f06565b14806127475750600381600381111561274557612745613f06565b145b61279d57815160600151604080516001600160401b03808e16825290921660208301527f3b575419319662b2a6f5e2467d84521517a3382b908eb3d557bb3fdb0c50e23c910160405180910390a1505050612b99565b6060891561287c578b85815181106127b7576127b7615006565b6020908102919091018101510151600454909150600090600160a01b900463ffffffff166127e588426152f0565b11905080806128055750600383600381111561280357612803613f06565b145b61282d576040516354e7e43160e11b81526001600160401b038d16600482015260240161078f565b8c868151811061283f5761283f615006565b602002602001015160000151600014612876578c868151811061286457612864615006565b60209081029190910101515160808501525b506128e8565b600082600381111561289057612890613f06565b146128e857825160600151604080516001600160401b03808f16825290921660208301527f3ef2a99c550a751d4b0b261268f05a803dfb049ab43616a1ffb388f61fe65120910160405180910390a150505050612b99565b8251608001516001600160401b0316156129c157600082600381111561291057612910613f06565b036129c1577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e0e03cae8c85600001516080015186602001516040518463ffffffff1660e01b815260040161297193929190615816565b6020604051808303816000875af1158015612990573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129b491906150eb565b6129c15750505050612b99565b60008d6040015186815181106129d9576129d9615006565b6020026020010151905080518460a001515114612a2357835160600151604051631cfe6d8b60e01b81526001600160401b03808f166004830152909116602482015260440161078f565b612a378c8560000151606001516001613306565b600080612a458684866133ab565b91509150612a5c8e87600001516060015184613306565b8c15612ab3576003826003811115612a7657612a76613f06565b03612ab3576000856003811115612a8f57612a8f613f06565b14612ab357855151604051632b11b8d960e01b815261078f91908390600401615842565b6002826003811115612ac757612ac7613f06565b14612b0c576003826003811115612ae057612ae0613f06565b14612b0c578d866000015160600151836040516349362d1f60e11b815260040161078f9392919061585b565b8560000151600001518660000151606001516001600160401b03168f6001600160401b03167f05665fe9ad095383d018353f4cbcba77e84db27dd215081bbf7cdf9ae6fbe48b8d8c81518110612b6457612b64615006565b602002602001015186865a612b79908f6152f0565b604051612b899493929190615880565b60405180910390a4505050505050505b6001016126d1565b60408051808201909152600080825260208201526000612bc4876020015161345f565b60405163bbe4f6db60e01b81526001600160a01b0380831660048301529192506000917f0000000000000000000000000000000000000000000000000000000000000000169063bbe4f6db90602401602060405180830381865afa158015612c30573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c5491906158b7565b90506001600160a01b0381161580612c835750612c816001600160a01b03821663aff2afbf60e01b611d64565b155b15612cac5760405163ae9b4ce960e01b81526001600160a01b038216600482015260240161078f565b600080612cd788858c60800151806020019051810190612ccc91906154db565b63ffffffff166134d3565b915091506000806000612d8a6040518061010001604052808e81526020018c6001600160401b031681526020018d6001600160a01b031681526020018f606001518152602001896001600160a01b031681526020018f6000015181526020018f6040015181526020018b815250604051602401612d5491906158d4565b60408051601f198184030181529190526020810180516001600160e01b0316633907753760e01b179052878661138860846135b6565b92509250925082612db0578160405163e1cd550960e01b815260040161078f9190613d1e565b8151602014612ddf578151604051631e3be00960e21b815260206004820152602481019190915260440161078f565b600082806020019051810190612df591906159a0565b9050866001600160a01b03168c6001600160a01b031614612e71576000612e268d8a612e21868a6152f0565b6134d3565b50905086811080612e40575081612e3d88836152f0565b14155b15612e6f5760405163a966e21f60e01b815260048101839052602481018890526044810182905260640161078f565b505b604080518082019091526001600160a01b039098168852602088015250949550505050505095945050505050565b6000612eb2826301ffc9a760e01b612eea565b8015610aca5750612ee3827fffffffff00000000000000000000000000000000000000000000000000000000612eea565b1592915050565b6040517fffffffff0000000000000000000000000000000000000000000000000000000082166024820152600090819060440160408051601f19818403018152919052602080820180516001600160e01b03166301ffc9a760e01b178152825192935060009283928392909183918a617530fa92503d91506000519050828015612f75575060208210155b8015612f815750600081115b979650505050505050565b60005b81518110156112725760ff831660009081526003602052604081208351909190849084908110612fc157612fc1615006565b6020908102919091018101516001600160a01b03168252810191909152604001600020805461ffff19169055600101612f8f565b60005b8251811015610a7557600083828151811061301557613015615006565b602002602001015190506000600281111561303257613032613f06565b60ff80871660009081526003602090815260408083206001600160a01b0387168452909152902054610100900416600281111561307157613071613f06565b14613092576004604051631b3fab5160e11b815260040161078f919061572e565b6001600160a01b0381166130b95760405163d6c62c9b60e01b815260040160405180910390fd5b60405180604001604052808360ff1681526020018460028111156130df576130df613f06565b905260ff80871660009081526003602090815260408083206001600160a01b0387168452825290912083518154931660ff198416811782559184015190929091839161ffff19161761010083600281111561313c5761313c613f06565b021790555090505050806001019050612ff8565b60ff81166105135760ff8082166000908152600260205260409020600101546201000090041661319357604051631e8ed32560e21b815260040160405180910390fd5b6009805467ffffffffffffffff1916905550565b8151602080820151604092830151925160009384936131ed937f2425b0b9f9054c76ff151b0a175b18f37a4a4e82013a72e9f15c9caa095ed21f939092918891016159b9565b60408051601f1981840301815290829052805160209182012086518051888401516060808b0151908401516080808d0151950151959761323697949693959294919391016159eb565b604051602081830303815290604052805190602001208560400151805190602001208660a0015160405160200161326d9190615aef565b60408051601f198184030181528282528051602091820120908301969096528101939093526060830191909152608082015260a081019190915260c0015b60405160208183030381529060405280519060200120905092915050565b6000806132d7858585613690565b6001600160401b038716600090815260086020908152604080832093835292905220549150505b949350505050565b60006002613315608085615319565b6001600160401b0316613328919061533f565b905060006133368585611a7d565b905081613345600160046152f0565b901b19168183600381111561335c5761335c613f06565b6001600160401b03871660009081526007602052604081209190921b9290921791829161338a6080886156a5565b6001600160401b031681526020810191909152604001600020555050505050565b60405163d434969160e01b8152600090606090309063d4349691906133d890889088908890600401615b86565b600060405180830381600087803b1580156133f257600080fd5b505af1925050508015613403575060015b613442573d808015613431576040519150601f19603f3d011682016040523d82523d6000602084013e613436565b606091505b50600392509050613457565b50506040805160208101909152600081526002905b935093915050565b60008151602014613485578160405163046b337b60e51b815260040161078f9190613d1e565b60008280602001905181019061349b91906159a0565b90506001600160a01b038111806134b3575061040081105b15610aca578260405163046b337b60e51b815260040161078f9190613d1e565b6000806000806000613534886040516024016134fe91906001600160a01b0391909116815260200190565b60408051601f198184030181529190526020810180516001600160e01b03166370a0823160e01b179052888861138860846135b6565b9250925092508261355a578160405163e1cd550960e01b815260040161078f9190613d1e565b6020825114613589578151604051631e3be00960e21b815260206004820152602481019190915260440161078f565b8180602001905181019061359d91906159a0565b6135a782886152f0565b94509450505050935093915050565b6000606060008361ffff166001600160401b038111156135d8576135d86139d0565b6040519080825280601f01601f191660200182016040528015613602576020820181803683370190505b509150863b61361c5763030ed58f60e21b60005260046000fd5b5a8581101561363657632be8ca8b60e21b60005260046000fd5b8590036040810481038710613656576337c3be2960e01b60005260046000fd5b505a6000808a5160208c0160008c8cf193505a900390503d848111156136795750835b808352806000602085013e50955095509592505050565b82518251600091908183036136b857604051630469ac9960e21b815260040160405180910390fd5b61010182118015906136cc57506101018111155b6136e9576040516309bde33960e01b815260040160405180910390fd5b60001982820101610100811115613713576040516309bde33960e01b815260040160405180910390fd5b80600003613740578660008151811061372e5761372e615006565b6020026020010151935050505061390e565b6000816001600160401b0381111561375a5761375a6139d0565b604051908082528060200260200182016040528015613783578160200160208202803683370190505b50905060008080805b858110156138ad5760006001821b8b8116036137e757888510156137d0578c5160018601958e9181106137c1576137c1615006565b60200260200101519050613809565b85516001850194879181106137c1576137c1615006565b8b5160018401938d9181106137fe576137fe615006565b602002602001015190505b600089861015613839578d5160018701968f91811061382a5761382a615006565b6020026020010151905061385b565b865160018601958891811061385057613850615006565b602002602001015190505b8285111561387c576040516309bde33960e01b815260040160405180910390fd5b6138868282613915565b87848151811061389857613898615006565b6020908102919091010152505060010161378c565b5060018503821480156138bf57508683145b80156138ca57508581145b6138e7576040516309bde33960e01b815260040160405180910390fd5b8360018603815181106138fc576138fc615006565b60200260200101519750505050505050505b9392505050565b600081831061392d576139288284613933565b610ac7565b610ac783835b6040805160016020820152908101839052606081018290526000906080016132ab565b8280548282559060005260206000209081019282156139ab579160200282015b828111156139ab57825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190613976565b506139b79291506139bb565b5090565b5b808211156139b757600081556001016139bc565b634e487b7160e01b600052604160045260246000fd5b604051608081016001600160401b0381118282101715613a0857613a086139d0565b60405290565b604051606081016001600160401b0381118282101715613a0857613a086139d0565b60405160a081016001600160401b0381118282101715613a0857613a086139d0565b60405160c081016001600160401b0381118282101715613a0857613a086139d0565b604080519081016001600160401b0381118282101715613a0857613a086139d0565b604051601f8201601f191681016001600160401b0381118282101715613abe57613abe6139d0565b604052919050565b60006001600160401b03821115613adf57613adf6139d0565b5060051b60200190565b6001600160a01b038116811461051357600080fd5b80356001600160401b0381168114613b1557600080fd5b919050565b801515811461051357600080fd5b8035613b1581613b1a565b60006001600160401b03821115613b4c57613b4c6139d0565b50601f01601f191660200190565b600082601f830112613b6b57600080fd5b8135613b7e613b7982613b33565b613a96565b818152846020838601011115613b9357600080fd5b816020850160208301376000918101602001919091529392505050565b60006020808385031215613bc357600080fd5b82356001600160401b0380821115613bda57600080fd5b818501915085601f830112613bee57600080fd5b8135613bfc613b7982613ac6565b81815260059190911b83018401908481019088831115613c1b57600080fd5b8585015b83811015613cc157803585811115613c375760008081fd5b86016080818c03601f1901811315613c4f5760008081fd5b613c576139e6565b89830135613c6481613ae9565b81526040613c73848201613afe565b8b830152606080850135613c8681613b1a565b83830152928401359289841115613c9f57600091508182fd5b613cad8f8d86880101613b5a565b908301525085525050918601918601613c1f565b5098975050505050505050565b60005b83811015613ce9578181015183820152602001613cd1565b50506000910152565b60008151808452613d0a816020860160208601613cce565b601f01601f19169290920160200192915050565b602081526000610ac76020830184613cf2565b8060608101831015610aca57600080fd5b60008083601f840112613d5457600080fd5b5081356001600160401b03811115613d6b57600080fd5b602083019150836020828501011115613d8357600080fd5b9250929050565b60008083601f840112613d9c57600080fd5b5081356001600160401b03811115613db357600080fd5b6020830191508360208260051b8501011115613d8357600080fd5b60008060008060008060008060e0898b031215613dea57600080fd5b613df48a8a613d31565b975060608901356001600160401b0380821115613e1057600080fd5b613e1c8c838d01613d42565b909950975060808b0135915080821115613e3557600080fd5b613e418c838d01613d8a565b909750955060a08b0135915080821115613e5a57600080fd5b50613e678b828c01613d8a565b999c989b50969995989497949560c00135949350505050565b600080600060808486031215613e9557600080fd5b613e9f8585613d31565b925060608401356001600160401b03811115613eba57600080fd5b613ec686828701613d42565b9497909650939450505050565b60008060408385031215613ee657600080fd5b613eef83613afe565b9150613efd60208401613afe565b90509250929050565b634e487b7160e01b600052602160045260246000fd5b60048110613f2c57613f2c613f06565b9052565b60208101610aca8284613f1c565b8035613b1581613ae9565b63ffffffff8116811461051357600080fd5b600060608284031215613f6d57600080fd5b613f75613a0e565b8235613f8081613ae9565b81526020830135613f9081613f49565b60208201526040830135613fa381613ae9565b60408201529392505050565b600060208284031215613fc157600080fd5b81356001600160401b03811115613fd757600080fd5b820160a0818503121561390e57600080fd5b803560ff81168114613b1557600080fd5b60006020828403121561400c57600080fd5b610ac782613fe9565b60008151808452602080850194506020840160005b8381101561404f5781516001600160a01b03168752958201959082019060010161402a565b509495945050505050565b60208152600082518051602084015260ff602082015116604084015260ff604082015116606084015260608101511515608084015250602083015160c060a08401526140a960e0840182614015565b90506040840151601f198483030160c08501526140c68282614015565b95945050505050565b600080604083850312156140e257600080fd5b6140eb83613afe565b946020939093013593505050565b600060a0828403121561410b57600080fd5b614113613a30565b90508135815261412560208301613afe565b602082015261413660408301613afe565b604082015261414760608301613afe565b606082015261415860808301613afe565b608082015292915050565b600082601f83011261417457600080fd5b81356020614184613b7983613ac6565b82815260059290921b840181019181810190868411156141a357600080fd5b8286015b8481101561429d5780356001600160401b03808211156141c75760008081fd5b9088019060a0828b03601f19018113156141e15760008081fd5b6141e9613a30565b87840135838111156141fb5760008081fd5b6142098d8a83880101613b5a565b825250604080850135848111156142205760008081fd5b61422e8e8b83890101613b5a565b8a84015250606080860135858111156142475760008081fd5b6142558f8c838a0101613b5a565b8385015250608091508186013581840152508285013592508383111561427b5760008081fd5b6142898d8a85880101613b5a565b9082015286525050509183019183016141a7565b509695505050505050565b600061014082840312156142bb57600080fd5b6142c3613a52565b90506142cf83836140f9565b815260a08201356001600160401b03808211156142eb57600080fd5b6142f785838601613b5a565b602084015260c084013591508082111561431057600080fd5b61431c85838601613b5a565b604084015261432d60e08501613f3e565b6060840152610100840135608084015261012084013591508082111561435257600080fd5b5061435f84828501614163565b60a08301525092915050565b60008060008060006060868803121561438357600080fd5b85356001600160401b038082111561439a57600080fd5b6143a689838a016142a8565b965060208801359150808211156143bc57600080fd5b6143c889838a01613d8a565b909650945060408801359150808211156143e157600080fd5b506143ee88828901613d8a565b969995985093965092949392505050565b600082601f83011261441057600080fd5b81356020614420613b7983613ac6565b82815260059290921b8401810191818101908684111561443f57600080fd5b8286015b8481101561429d5780356001600160401b038111156144625760008081fd5b6144708986838b01016142a8565b845250918301918301614443565b600082601f83011261448f57600080fd5b8135602061449f613b7983613ac6565b82815260059290921b840181019181810190868411156144be57600080fd5b8286015b8481101561429d5780356001600160401b03808211156144e157600080fd5b818901915089603f8301126144f557600080fd5b85820135614505613b7982613ac6565b81815260059190911b830160400190878101908c83111561452557600080fd5b604085015b8381101561455e5780358581111561454157600080fd5b6145508f6040838a0101613b5a565b84525091890191890161452a565b508752505050928401925083016144c2565b600082601f83011261458157600080fd5b81356020614591613b7983613ac6565b8083825260208201915060208460051b8701019350868411156145b357600080fd5b602086015b8481101561429d57803583529183019183016145b8565b600082601f8301126145e057600080fd5b813560206145f0613b7983613ac6565b82815260059290921b8401810191818101908684111561460f57600080fd5b8286015b8481101561429d5780356001600160401b03808211156146335760008081fd5b9088019060a0828b03601f190181131561464d5760008081fd5b614655613a30565b614660888501613afe565b8152604080850135848111156146765760008081fd5b6146848e8b838901016143ff565b8a840152506060808601358581111561469d5760008081fd5b6146ab8f8c838a010161447e565b83850152506080915081860135858111156146c65760008081fd5b6146d48f8c838a0101614570565b9184019190915250919093013590830152508352918301918301614613565b6000806040838503121561470657600080fd5b6001600160401b038335111561471b57600080fd5b61472884843585016145cf565b91506001600160401b036020840135111561474257600080fd5b6020830135830184601f82011261475857600080fd5b614765613b798235613ac6565b81358082526020808301929160051b84010187101561478357600080fd5b602083015b6020843560051b85010181101561492c576001600160401b03813511156147ae57600080fd5b87603f8235860101126147c057600080fd5b6147d3613b796020833587010135613ac6565b81358501602081810135808452908301929160059190911b016040018a10156147fb57600080fd5b604083358701015b83358701602081013560051b0160400181101561491c576001600160401b038135111561482f57600080fd5b833587018135016040818d03603f1901121561484a57600080fd5b614852613a74565b604082013581526001600160401b036060830135111561487157600080fd5b8c605f60608401358401011261488657600080fd5b604060608301358301013561489d613b7982613ac6565b808282526020820191508f60608460051b60608801358801010111156148c257600080fd5b6060808601358601015b60608460051b6060880135880101018110156148fc576148ec8135613f49565b80358352602092830192016148cc565b508060208501525050508085525050602083019250602081019050614803565b5084525060209283019201614788565b508093505050509250929050565b60006020828403121561494c57600080fd5b610ac782613afe565b602081526001600160a01b0382511660208201526020820151151560408201526001600160401b036040830151166060820152600060608301516080808401526132fe60a0840182613cf2565b6000602082840312156149b457600080fd5b813561390e81613ae9565b600082601f8301126149d057600080fd5b813560206149e0613b7983613ac6565b8083825260208201915060208460051b870101935086841115614a0257600080fd5b602086015b8481101561429d578035614a1a81613ae9565b8352918301918301614a07565b60006020808385031215614a3a57600080fd5b82356001600160401b0380821115614a5157600080fd5b818501915085601f830112614a6557600080fd5b8135614a73613b7982613ac6565b81815260059190911b83018401908481019088831115614a9257600080fd5b8585015b83811015613cc157803585811115614aad57600080fd5b860160c0818c03601f19011215614ac45760008081fd5b614acc613a52565b8882013581526040614adf818401613fe9565b8a8301526060614af0818501613fe9565b8284015260809150614b03828501613b28565b9083015260a08381013589811115614b1b5760008081fd5b614b298f8d838801016149bf565b838501525060c0840135915088821115614b435760008081fd5b614b518e8c848701016149bf565b9083015250845250918601918601614a96565b80356001600160e01b0381168114613b1557600080fd5b600082601f830112614b8c57600080fd5b81356020614b9c613b7983613ac6565b82815260069290921b84018101918181019086841115614bbb57600080fd5b8286015b8481101561429d5760408189031215614bd85760008081fd5b614be0613a74565b614be982613afe565b8152614bf6858301614b64565b81860152835291830191604001614bbf565b600082601f830112614c1957600080fd5b81356020614c29613b7983613ac6565b82815260059290921b84018101918181019086841115614c4857600080fd5b8286015b8481101561429d5780356001600160401b0380821115614c6c5760008081fd5b9088019060a0828b03601f1901811315614c865760008081fd5b614c8e613a30565b614c99888501613afe565b815260408085013584811115614caf5760008081fd5b614cbd8e8b83890101613b5a565b8a8401525060609350614cd1848601613afe565b908201526080614ce2858201613afe565b93820193909352920135908201528352918301918301614c4c565b600082601f830112614d0e57600080fd5b81356020614d1e613b7983613ac6565b82815260069290921b84018101918181019086841115614d3d57600080fd5b8286015b8481101561429d5760408189031215614d5a5760008081fd5b614d62613a74565b813581528482013585820152835291830191604001614d41565b60006020808385031215614d8f57600080fd5b82356001600160401b0380821115614da657600080fd5b9084019060608287031215614dba57600080fd5b614dc2613a0e565b823582811115614dd157600080fd5b83016040818903811315614de457600080fd5b614dec613a74565b823585811115614dfb57600080fd5b8301601f81018b13614e0c57600080fd5b8035614e1a613b7982613ac6565b81815260069190911b8201890190898101908d831115614e3957600080fd5b928a01925b82841015614e895785848f031215614e565760008081fd5b614e5e613a74565b8435614e6981613ae9565b8152614e76858d01614b64565b818d0152825292850192908a0190614e3e565b845250505082870135915084821115614ea157600080fd5b614ead8a838501614b7b565b81880152835250508284013582811115614ec657600080fd5b614ed288828601614c08565b85830152506040830135935081841115614eeb57600080fd5b614ef787858501614cfd565b60408201529695505050505050565b600082825180855260208086019550808260051b84010181860160005b84811015614f9757601f19868403018952815160a06001600160401b03808351168652868301518288880152614f5b83880182613cf2565b60408581015184169089015260608086015190931692880192909252506080928301519290950191909152509783019790830190600101614f23565b5090979650505050505050565b60006040808352614fb86040840186614f06565b83810360208581019190915285518083528682019282019060005b81811015614ff857845180518452840151848401529383019391850191600101614fd3565b509098975050505050505050565b634e487b7160e01b600052603260045260246000fd5b805160408084528151848201819052600092602091908201906060870190855b8181101561507357835180516001600160a01b031684528501516001600160e01b031685840152928401929185019160010161503c565b50508583015187820388850152805180835290840192506000918401905b808310156150cc57835180516001600160401b031683528501516001600160e01b031685830152928401926001929092019190850190615091565b50979650505050505050565b602081526000610ac7602083018461501c565b6000602082840312156150fd57600080fd5b815161390e81613b1a565b600181811c9082168061511c57607f821691505b60208210810361513c57634e487b7160e01b600052602260045260246000fd5b50919050565b600080835461515081615108565b60018281168015615168576001811461517d576151ac565b60ff19841687528215158302870194506151ac565b8760005260208060002060005b858110156151a35781548a82015290840190820161518a565b50505082870194505b50929695505050505050565b600081546151c581615108565b8085526020600183811680156151e257600181146151fc5761522a565b60ff1985168884015283151560051b88018301955061522a565b866000528260002060005b858110156152225781548a8201860152908301908401615207565b890184019650505b505050505092915050565b6040815260006152486040830185613cf2565b82810360208401526140c681856151b8565b634e487b7160e01b600052601160045260246000fd5b6001600160401b038181168382160190808211156152905761529061525a565b5092915050565b6040815260006152aa6040830185614f06565b82810360208401526140c6818561501c565b6000602082840312156152ce57600080fd5b81356001600160401b038111156152e457600080fd5b6132fe848285016145cf565b81810381811115610aca57610aca61525a565b634e487b7160e01b600052601260045260246000fd5b60006001600160401b038084168061533357615333615303565b92169190910692915050565b8082028115828204841417610aca57610aca61525a565b80518252600060206001600160401b0381840151168185015260408084015160a0604087015261538960a0870182613cf2565b9050606085015186820360608801526153a28282613cf2565b608087810151898303918a01919091528051808352908601935060009250908501905b808310156150cc57835180516001600160a01b03168352860151868301529285019260019290920191908401906153c5565b602081526000610ac76020830184615356565b60808152600061541d6080830187615356565b61ffff9590951660208301525060408101929092526001600160a01b0316606090910152919050565b60008060006060848603121561545b57600080fd5b835161546681613b1a565b60208501519093506001600160401b0381111561548257600080fd5b8401601f8101861361549357600080fd5b80516154a1613b7982613b33565b8181528760208385010111156154b657600080fd5b6154c7826020830160208601613cce565b809450505050604084015190509250925092565b6000602082840312156154ed57600080fd5b815161390e81613f49565b601f821115611272576000816000526020600020601f850160051c810160208610156155215750805b601f850160051c820191505b818110156155405782815560010161552d565b505050505050565b81516001600160401b03811115615561576155616139d0565b6155758161556f8454615108565b846154f8565b602080601f8311600181146155aa57600084156155925750858301515b600019600386901b1c1916600185901b178555615540565b600085815260208120601f198616915b828110156155d9578886015182559484019460019091019084016155ba565b50858210156155f75787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60208152600082546001600160a01b038116602084015260ff8160a01c16151560408401526001600160401b038160a81c16606084015250608080830152610ac760a08301600185016151b8565b80820180821115610aca57610aca61525a565b60ff8181168382160190811115610aca57610aca61525a565b8183823760009101908152919050565b828152606082602083013760800192915050565b60006001600160401b03808416806156bf576156bf615303565b92169190910492915050565b6000602082840312156156dd57600080fd5b813561390e81613f49565b6000808335601e198436030181126156ff57600080fd5b8301803591506001600160401b0382111561571957600080fd5b602001915036819003821315613d8357600080fd5b602081016005831061574257615742613f06565b91905290565b60ff81811683821602908116908181146152905761529061525a565b600060a0820160ff881683526020878185015260a0604085015281875480845260c0860191508860005282600020935060005b818110156157bc5784546001600160a01b031683526001948501949284019201615797565b50508481036060860152865180825290820192508187019060005b818110156157fc5782516001600160a01b0316855293830193918301916001016157d7565b50505060ff851660808501525090505b9695505050505050565b60006001600160401b038086168352808516602084015250606060408301526140c66060830184613cf2565b8281526040602082015260006132fe6040830184613cf2565b6001600160401b03848116825283166020820152606081016132fe6040830184613f1c565b8481526158906020820185613f1c565b6080604082015260006158a66080830185613cf2565b905082606083015295945050505050565b6000602082840312156158c957600080fd5b815161390e81613ae9565b60208152600082516101008060208501526158f3610120850183613cf2565b9150602085015161590f60408601826001600160401b03169052565b5060408501516001600160a01b03811660608601525060608501516080850152608085015161594960a08601826001600160a01b03169052565b5060a0850151601f19808685030160c08701526159668483613cf2565b935060c08701519150808685030160e08701526159838483613cf2565b935060e087015191508086850301838701525061580c8382613cf2565b6000602082840312156159b257600080fd5b5051919050565b84815260006001600160401b0380861660208401528085166040840152506080606083015261580c6080830184613cf2565b86815260c060208201526000615a0460c0830188613cf2565b6001600160a01b03969096166040830152506001600160401b039384166060820152608081019290925290911660a09091015292915050565b600082825180855260208086019550808260051b84010181860160005b84811015614f9757601f19868403018952815160a08151818652615a8082870182613cf2565b9150508582015185820387870152615a988282613cf2565b91505060408083015186830382880152615ab28382613cf2565b92505050606080830151818701525060808083015192508582038187015250615adb8183613cf2565b9a86019a9450505090830190600101615a5a565b602081526000610ac76020830184615a3d565b60008282518085526020808601955060208260051b8401016020860160005b84811015614f9757601f19868403018952615b3d838351613cf2565b98840198925090830190600101615b21565b60008151808452602080850194506020840160005b8381101561404f57815163ffffffff1687529582019590820190600101615b64565b60608152600084518051606084015260208101516001600160401b0380821660808601528060408401511660a08601528060608401511660c08601528060808401511660e0860152505050602085015161014080610100850152615bee6101a0850183613cf2565b91506040870151605f198086850301610120870152615c0d8483613cf2565b935060608901519150615c2a838701836001600160a01b03169052565b608089015161016087015260a0890151925080868503016101808701525050615c538282615a3d565b9150508281036020840152615c688186615b02565b9050828103604084015261580c8185615b4f56fea164736f6c6343000818000a", } var OffRampABI = OffRampMetaData.ABI diff --git a/core/gethwrappers/ccip/generation/generated-wrapper-dependency-versions-do-not-edit.txt b/core/gethwrappers/ccip/generation/generated-wrapper-dependency-versions-do-not-edit.txt index 9908bcfcd8..f7bbdb7243 100644 --- a/core/gethwrappers/ccip/generation/generated-wrapper-dependency-versions-do-not-edit.txt +++ b/core/gethwrappers/ccip/generation/generated-wrapper-dependency-versions-do-not-edit.txt @@ -23,7 +23,7 @@ multi_aggregate_rate_limiter: ../../../contracts/solc/v0.8.24/MultiAggregateRate multi_ocr3_helper: ../../../contracts/solc/v0.8.24/MultiOCR3Helper/MultiOCR3Helper.abi ../../../contracts/solc/v0.8.24/MultiOCR3Helper/MultiOCR3Helper.bin 6b56e0114a4d50797d30a34aecc2641ef340451d0c3fcb9d729bba4df2435122 nonce_manager: ../../../contracts/solc/v0.8.24/NonceManager/NonceManager.abi ../../../contracts/solc/v0.8.24/NonceManager/NonceManager.bin 6f64e1083b356c06ee66b9138e398b9c97a4cd3e8c9ec38cf3010cebc79af536 ocr3_config_encoder: ../../../contracts/solc/v0.8.24/IOCR3ConfigEncoder/IOCR3ConfigEncoder.abi ../../../contracts/solc/v0.8.24/IOCR3ConfigEncoder/IOCR3ConfigEncoder.bin 9254b35a86f00fde7b7193a033ca58f6521a66e87b9cf9da6ce5660082e79f5d -offramp: ../../../contracts/solc/v0.8.24/OffRamp/OffRamp.abi ../../../contracts/solc/v0.8.24/OffRamp/OffRamp.bin d7f33e895b1b282930c81ac4e19ec51f6a7900fe6dddda3a7ba1b2796eacff32 +offramp: ../../../contracts/solc/v0.8.24/OffRamp/OffRamp.abi ../../../contracts/solc/v0.8.24/OffRamp/OffRamp.bin a444810e2636722726d4c79ed083f9dd57ca54bbbd35accc70bb59c2be675f33 onramp: ../../../contracts/solc/v0.8.24/OnRamp/OnRamp.abi ../../../contracts/solc/v0.8.24/OnRamp/OnRamp.bin 594439983f963f4158f9c5009dee7cba4ee56be61900bb1d5b9108eaeac3d6a6 ping_pong_demo: ../../../contracts/solc/v0.8.24/PingPongDemo/PingPongDemo.abi ../../../contracts/solc/v0.8.24/PingPongDemo/PingPongDemo.bin c1c2f8a65c7ffd971899cae7fe62f2da57d09e936151e2b92163c4bebe699d6b price_registry: ../../../contracts/solc/v0.8.24/PriceRegistry/PriceRegistry.abi ../../../contracts/solc/v0.8.24/PriceRegistry/PriceRegistry.bin e7781d600c1bb7aa4620106af7f6e146a109b97f4cb6a7d06c9e15773340ecb2 From 77db35ebaf69e14b8925b4f17d9d5c4e5c15cd46 Mon Sep 17 00:00:00 2001 From: Ryan <80392855+RayXpub@users.noreply.github.com> Date: Thu, 12 Sep 2024 13:21:27 +0400 Subject: [PATCH 11/19] chore: move check into else if statement --- contracts/src/v0.8/ccip/offRamp/OffRamp.sol | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/contracts/src/v0.8/ccip/offRamp/OffRamp.sol b/contracts/src/v0.8/ccip/offRamp/OffRamp.sol index 7a264bd179..45091d9fea 100644 --- a/contracts/src/v0.8/ccip/offRamp/OffRamp.sol +++ b/contracts/src/v0.8/ccip/offRamp/OffRamp.sol @@ -788,6 +788,11 @@ contract OffRamp is ITypeAndVersion, MultiOCR3Base { if (currentConfig.onRamp.length == 0) { currentConfig.minSeqNr = 1; emit SourceChainSelectorAdded(sourceChainSelector); + } else if (currentConfig.minSeqNr != 1) { + // OnRamp updates should only happens due to a misconfiguration + // If an OnRamp is misconfigured not reports should have been committed and no messages should have been executed + // This is enforced byt the onRamp address check in the commit function + revert InvalidOnRampUpdate(); } // OnRamp can never be zero - if it is, then the source chain has been added for the first time @@ -795,12 +800,6 @@ contract OffRamp is ITypeAndVersion, MultiOCR3Base { revert ZeroAddressNotAllowed(); } - // OnRamp updates should only happens due to a misconfiguration - // If an OnRamp is misconfigured not reports should have been committed and no messages should have been executed - // This is enforced byt the onRamp address check in the commit function - if (currentConfig.minSeqNr != 1) { - revert InvalidOnRampUpdate(); - } currentConfig.onRamp = newOnRamp; currentConfig.isEnabled = sourceConfigUpdate.isEnabled; From cfbf85c20d769a8e5826ff274ce3aa375b269003 Mon Sep 17 00:00:00 2001 From: Ryan <80392855+RayXpub@users.noreply.github.com> Date: Thu, 12 Sep 2024 13:21:59 +0400 Subject: [PATCH 12/19] chore: rm unused error --- contracts/src/v0.8/ccip/offRamp/OffRamp.sol | 1 - 1 file changed, 1 deletion(-) diff --git a/contracts/src/v0.8/ccip/offRamp/OffRamp.sol b/contracts/src/v0.8/ccip/offRamp/OffRamp.sol index 45091d9fea..75de7dfda5 100644 --- a/contracts/src/v0.8/ccip/offRamp/OffRamp.sol +++ b/contracts/src/v0.8/ccip/offRamp/OffRamp.sol @@ -57,7 +57,6 @@ contract OffRamp is ITypeAndVersion, MultiOCR3Base { error NotACompatiblePool(address notPool); error InvalidDataLength(uint256 expected, uint256 got); error InvalidNewState(uint64 sourceChainSelector, uint64 sequenceNumber, Internal.MessageExecutionState newState); - error InvalidStaticConfig(uint64 sourceChainSelector); error StaleCommitReport(); error InvalidInterval(uint64 sourceChainSelector, uint64 min, uint64 max); error ZeroAddressNotAllowed(); From 54afc4ff43006d4fee44ce0f499acc072b375634 Mon Sep 17 00:00:00 2001 From: Ryan <80392855+RayXpub@users.noreply.github.com> Date: Thu, 12 Sep 2024 13:57:52 +0400 Subject: [PATCH 13/19] chore: move check to else if block and add test --- contracts/src/v0.8/ccip/offRamp/OffRamp.sol | 4 +-- .../src/v0.8/ccip/test/offRamp/OffRamp.t.sol | 35 +++++++++++++++++++ 2 files changed, 37 insertions(+), 2 deletions(-) diff --git a/contracts/src/v0.8/ccip/offRamp/OffRamp.sol b/contracts/src/v0.8/ccip/offRamp/OffRamp.sol index 75de7dfda5..1d2e9ae73e 100644 --- a/contracts/src/v0.8/ccip/offRamp/OffRamp.sol +++ b/contracts/src/v0.8/ccip/offRamp/OffRamp.sol @@ -64,7 +64,7 @@ contract OffRamp is ITypeAndVersion, MultiOCR3Base { error SourceChainSelectorMismatch(uint64 reportSourceChainSelector, uint64 messageSourceChainSelector); error SignatureVerificationDisabled(); error InvalidOnRamp(bytes reportOnRamp, bytes configOnRamp); - error InvalidOnRampUpdate(); + error InvalidOnRampUpdate(uint64 sourceChainSelector); /// @dev Atlas depends on this event, if changing, please notify Atlas. event StaticConfigSet(StaticConfig staticConfig); @@ -791,7 +791,7 @@ contract OffRamp is ITypeAndVersion, MultiOCR3Base { // OnRamp updates should only happens due to a misconfiguration // If an OnRamp is misconfigured not reports should have been committed and no messages should have been executed // This is enforced byt the onRamp address check in the commit function - revert InvalidOnRampUpdate(); + revert InvalidOnRampUpdate(sourceChainSelector); } // OnRamp can never be zero - if it is, then the source chain has been added for the first time diff --git a/contracts/src/v0.8/ccip/test/offRamp/OffRamp.t.sol b/contracts/src/v0.8/ccip/test/offRamp/OffRamp.t.sol index f766c2dbfb..75fb1bac27 100644 --- a/contracts/src/v0.8/ccip/test/offRamp/OffRamp.t.sol +++ b/contracts/src/v0.8/ccip/test/offRamp/OffRamp.t.sol @@ -3234,6 +3234,41 @@ contract OffRamp_applySourceChainConfigUpdates is OffRampSetup { vm.expectRevert(OffRamp.ZeroChainSelectorNotAllowed.selector); s_offRamp.applySourceChainConfigUpdates(sourceChainConfigs); } + + function test_InvalidOnRampUpdate_Revert() public { + OffRamp.SourceChainConfigArgs[] memory sourceChainConfigs = new OffRamp.SourceChainConfigArgs[](1); + sourceChainConfigs[0] = OffRamp.SourceChainConfigArgs({ + router: s_destRouter, + sourceChainSelector: SOURCE_CHAIN_SELECTOR_1, + onRamp: ON_RAMP_ADDRESS_1, + isEnabled: true + }); + + s_offRamp.applySourceChainConfigUpdates(sourceChainConfigs); + + Internal.MerkleRoot[] memory roots = new Internal.MerkleRoot[](1); + roots[0] = Internal.MerkleRoot({ + sourceChainSelector: SOURCE_CHAIN_SELECTOR_1, + onRampAddress: ON_RAMP_ADDRESS_1, + minSeqNr: 1, + maxSeqNr: 2, + merkleRoot: "test #2" + }); + + _commit(OffRamp.CommitReport({ + priceUpdates: _getSingleTokenPriceUpdateStruct(s_sourceFeeToken, 4e18), + merkleRoots: roots, + rmnSignatures: s_rmnSignatures + }), s_latestSequenceNumber); + + vm.stopPrank(); + vm.startPrank(OWNER); + + sourceChainConfigs[0].onRamp = ON_RAMP_ADDRESS_2; + + vm.expectRevert(abi.encodeWithSelector(OffRamp.InvalidOnRampUpdate.selector, SOURCE_CHAIN_SELECTOR_1)); + s_offRamp.applySourceChainConfigUpdates(sourceChainConfigs); + } } contract OffRamp_commit is OffRampSetup { From 2b52acd0e3c13a147f330ebb603bcb3e7c7ea583 Mon Sep 17 00:00:00 2001 From: Ryan <80392855+RayXpub@users.noreply.github.com> Date: Thu, 12 Sep 2024 14:06:06 +0400 Subject: [PATCH 14/19] chore: update gas snapshot and geth wrappers --- contracts/gas-snapshots/ccip.gas-snapshot | 1441 +++++++++++---------- 1 file changed, 721 insertions(+), 720 deletions(-) diff --git a/contracts/gas-snapshots/ccip.gas-snapshot b/contracts/gas-snapshots/ccip.gas-snapshot index bafefa2261..60f5ec68ad 100644 --- a/contracts/gas-snapshots/ccip.gas-snapshot +++ b/contracts/gas-snapshots/ccip.gas-snapshot @@ -2,259 +2,259 @@ ARMProxyStandaloneTest:test_ARMCallEmptyContractRevert() (gas: 19675) ARMProxyStandaloneTest:test_Constructor() (gas: 315049) ARMProxyStandaloneTest:test_SetARM() (gas: 16581) ARMProxyStandaloneTest:test_SetARMzero() (gas: 11267) -ARMProxyTest:test_ARMCallRevertReasonForwarded() (gas: 47868) -ARMProxyTest:test_ARMIsBlessed_Success() (gas: 36334) +ARMProxyTest:test_ARMCallRevertReasonForwarded() (gas: 47874) +ARMProxyTest:test_ARMIsBlessed_Success() (gas: 36353) ARMProxyTest:test_ARMIsCursed_Success() (gas: 49833) -AggregateTokenLimiter_constructor:test_Constructor_Success() (gas: 26992) -AggregateTokenLimiter_getTokenBucket:test_GetTokenBucket_Success() (gas: 19835) -AggregateTokenLimiter_getTokenBucket:test_Refill_Success() (gas: 41499) -AggregateTokenLimiter_getTokenBucket:test_TimeUnderflow_Revert() (gas: 15446) +AggregateTokenLimiter_constructor:test_Constructor_Success() (gas: 26998) +AggregateTokenLimiter_getTokenBucket:test_GetTokenBucket_Success() (gas: 19841) +AggregateTokenLimiter_getTokenBucket:test_Refill_Success() (gas: 41523) +AggregateTokenLimiter_getTokenBucket:test_TimeUnderflow_Revert() (gas: 15452) AggregateTokenLimiter_getTokenLimitAdmin:test_GetTokenLimitAdmin_Success() (gas: 10531) -AggregateTokenLimiter_getTokenValue:test_GetTokenValue_Success() (gas: 17465) -AggregateTokenLimiter_getTokenValue:test_NoTokenPrice_Reverts() (gas: 21360) -AggregateTokenLimiter_rateLimitValue:test_AggregateValueMaxCapacityExceeded_Revert() (gas: 16508) -AggregateTokenLimiter_rateLimitValue:test_RateLimitValueSuccess_gas() (gas: 18348) -AggregateTokenLimiter_setAdmin:test_OnlyOwnerOrAdmin_Revert() (gas: 13054) +AggregateTokenLimiter_getTokenValue:test_GetTokenValue_Success() (gas: 17471) +AggregateTokenLimiter_getTokenValue:test_NoTokenPrice_Reverts() (gas: 21366) +AggregateTokenLimiter_rateLimitValue:test_AggregateValueMaxCapacityExceeded_Revert() (gas: 16520) +AggregateTokenLimiter_rateLimitValue:test_RateLimitValueSuccess_gas() (gas: 18354) +AggregateTokenLimiter_setAdmin:test_OnlyOwnerOrAdmin_Revert() (gas: 13066) AggregateTokenLimiter_setAdmin:test_Owner_Success() (gas: 18998) -AggregateTokenLimiter_setRateLimiterConfig:test_OnlyOnlyCallableByAdminOrOwner_Revert() (gas: 17510) -AggregateTokenLimiter_setRateLimiterConfig:test_Owner_Success() (gas: 30230) -AggregateTokenLimiter_setRateLimiterConfig:test_TokenLimitAdmin_Success() (gas: 32244) -BurnFromMintTokenPool_lockOrBurn:test_ChainNotAllowed_Revert() (gas: 28779) -BurnFromMintTokenPool_lockOrBurn:test_PoolBurnRevertNotHealthy_Revert() (gas: 55124) -BurnFromMintTokenPool_lockOrBurn:test_PoolBurn_Success() (gas: 243680) +AggregateTokenLimiter_setRateLimiterConfig:test_OnlyOnlyCallableByAdminOrOwner_Revert() (gas: 17522) +AggregateTokenLimiter_setRateLimiterConfig:test_Owner_Success() (gas: 30249) +AggregateTokenLimiter_setRateLimiterConfig:test_TokenLimitAdmin_Success() (gas: 32263) +BurnFromMintTokenPool_lockOrBurn:test_ChainNotAllowed_Revert() (gas: 28791) +BurnFromMintTokenPool_lockOrBurn:test_PoolBurnRevertNotHealthy_Revert() (gas: 55142) +BurnFromMintTokenPool_lockOrBurn:test_PoolBurn_Success() (gas: 243690) BurnFromMintTokenPool_lockOrBurn:test_Setup_Success() (gas: 23947) -BurnMintTokenPool_lockOrBurn:test_ChainNotAllowed_Revert() (gas: 27546) -BurnMintTokenPool_lockOrBurn:test_PoolBurnRevertNotHealthy_Revert() (gas: 55130) -BurnMintTokenPool_lockOrBurn:test_PoolBurn_Success() (gas: 241573) +BurnMintTokenPool_lockOrBurn:test_ChainNotAllowed_Revert() (gas: 27558) +BurnMintTokenPool_lockOrBurn:test_PoolBurnRevertNotHealthy_Revert() (gas: 55142) +BurnMintTokenPool_lockOrBurn:test_PoolBurn_Success() (gas: 241578) BurnMintTokenPool_lockOrBurn:test_Setup_Success() (gas: 17677) -BurnMintTokenPool_releaseOrMint:test_ChainNotAllowed_Revert() (gas: 28775) -BurnMintTokenPool_releaseOrMint:test_PoolMintNotHealthy_Revert() (gas: 56211) -BurnMintTokenPool_releaseOrMint:test_PoolMint_Success() (gas: 112343) -BurnWithFromMintTokenPool_lockOrBurn:test_ChainNotAllowed_Revert() (gas: 28779) -BurnWithFromMintTokenPool_lockOrBurn:test_PoolBurnRevertNotHealthy_Revert() (gas: 55124) -BurnWithFromMintTokenPool_lockOrBurn:test_PoolBurn_Success() (gas: 243707) +BurnMintTokenPool_releaseOrMint:test_ChainNotAllowed_Revert() (gas: 28787) +BurnMintTokenPool_releaseOrMint:test_PoolMintNotHealthy_Revert() (gas: 56223) +BurnMintTokenPool_releaseOrMint:test_PoolMint_Success() (gas: 112349) +BurnWithFromMintTokenPool_lockOrBurn:test_ChainNotAllowed_Revert() (gas: 28791) +BurnWithFromMintTokenPool_lockOrBurn:test_PoolBurnRevertNotHealthy_Revert() (gas: 55142) +BurnWithFromMintTokenPool_lockOrBurn:test_PoolBurn_Success() (gas: 243716) BurnWithFromMintTokenPool_lockOrBurn:test_Setup_Success() (gas: 23951) -CCIPClientExample_sanity:test_ImmutableExamples_Success() (gas: 2091438) +CCIPClientExample_sanity:test_ImmutableExamples_Success() (gas: 2092239) CCIPConfigSetup:test_getCapabilityConfiguration_Success() (gas: 9539) -CCIPConfig_ConfigStateMachine:test__computeConfigDigest_Success() (gas: 66000) -CCIPConfig_ConfigStateMachine:test__computeNewConfigWithMeta_InitToRunning_Success() (gas: 358041) -CCIPConfig_ConfigStateMachine:test__computeNewConfigWithMeta_RunningToStaging_Success() (gas: 474705) -CCIPConfig_ConfigStateMachine:test__computeNewConfigWithMeta_StagingToRunning_Success() (gas: 441908) -CCIPConfig_ConfigStateMachine:test__groupByPluginType_TooManyOCR3Configs_Reverts() (gas: 33848) -CCIPConfig_ConfigStateMachine:test__groupByPluginType_threeCommitConfigs_Reverts() (gas: 56914) -CCIPConfig_ConfigStateMachine:test__groupByPluginType_threeExecutionConfigs_Reverts() (gas: 56852) +CCIPConfig_ConfigStateMachine:test__computeConfigDigest_Success() (gas: 66156) +CCIPConfig_ConfigStateMachine:test__computeNewConfigWithMeta_InitToRunning_Success() (gas: 358893) +CCIPConfig_ConfigStateMachine:test__computeNewConfigWithMeta_RunningToStaging_Success() (gas: 476337) +CCIPConfig_ConfigStateMachine:test__computeNewConfigWithMeta_StagingToRunning_Success() (gas: 443036) +CCIPConfig_ConfigStateMachine:test__groupByPluginType_TooManyOCR3Configs_Reverts() (gas: 34154) +CCIPConfig_ConfigStateMachine:test__groupByPluginType_threeCommitConfigs_Reverts() (gas: 57226) +CCIPConfig_ConfigStateMachine:test__groupByPluginType_threeExecutionConfigs_Reverts() (gas: 57164) CCIPConfig_ConfigStateMachine:test__stateFromConfigLength_Success() (gas: 11719) CCIPConfig_ConfigStateMachine:test__validateConfigStateTransition_Success() (gas: 8849) -CCIPConfig_ConfigStateMachine:test__validateConfigTransition_InitToRunning_Success() (gas: 309722) -CCIPConfig_ConfigStateMachine:test__validateConfigTransition_InitToRunning_WrongConfigCount_Reverts() (gas: 45865) -CCIPConfig_ConfigStateMachine:test__validateConfigTransition_NonExistentConfigTransition_Reverts() (gas: 29690) -CCIPConfig_ConfigStateMachine:test__validateConfigTransition_RunningToStaging_Success() (gas: 370009) -CCIPConfig_ConfigStateMachine:test__validateConfigTransition_RunningToStaging_WrongConfigCount_Reverts() (gas: 111376) -CCIPConfig_ConfigStateMachine:test__validateConfigTransition_RunningToStaging_WrongConfigDigestBlueGreen_Reverts() (gas: 145446) -CCIPConfig_ConfigStateMachine:test__validateConfigTransition_StagingToRunning_Success() (gas: 369785) -CCIPConfig_ConfigStateMachine:test__validateConfigTransition_StagingToRunning_WrongConfigDigest_Reverts() (gas: 145513) -CCIPConfig_ConfigStateMachine:test_getCapabilityConfiguration_Success() (gas: 9627) -CCIPConfig_beforeCapabilityConfigSet:test_beforeCapabilityConfigSet_CommitAndExecConfig_Success() (gas: 1790808) -CCIPConfig_beforeCapabilityConfigSet:test_beforeCapabilityConfigSet_CommitConfigOnly_Success() (gas: 1038239) -CCIPConfig_beforeCapabilityConfigSet:test_beforeCapabilityConfigSet_ExecConfigOnly_Success() (gas: 1038270) +CCIPConfig_ConfigStateMachine:test__validateConfigTransition_InitToRunning_Success() (gas: 310010) +CCIPConfig_ConfigStateMachine:test__validateConfigTransition_InitToRunning_WrongConfigCount_Reverts() (gas: 46015) +CCIPConfig_ConfigStateMachine:test__validateConfigTransition_NonExistentConfigTransition_Reverts() (gas: 29840) +CCIPConfig_ConfigStateMachine:test__validateConfigTransition_RunningToStaging_Success() (gas: 370477) +CCIPConfig_ConfigStateMachine:test__validateConfigTransition_RunningToStaging_WrongConfigCount_Reverts() (gas: 111736) +CCIPConfig_ConfigStateMachine:test__validateConfigTransition_RunningToStaging_WrongConfigDigestBlueGreen_Reverts() (gas: 145866) +CCIPConfig_ConfigStateMachine:test__validateConfigTransition_StagingToRunning_Success() (gas: 370253) +CCIPConfig_ConfigStateMachine:test__validateConfigTransition_StagingToRunning_WrongConfigDigest_Reverts() (gas: 145933) +CCIPConfig_ConfigStateMachine:test_getCapabilityConfiguration_Success() (gas: 9663) +CCIPConfig_beforeCapabilityConfigSet:test_beforeCapabilityConfigSet_CommitAndExecConfig_Success() (gas: 1790958) +CCIPConfig_beforeCapabilityConfigSet:test_beforeCapabilityConfigSet_CommitConfigOnly_Success() (gas: 1038383) +CCIPConfig_beforeCapabilityConfigSet:test_beforeCapabilityConfigSet_ExecConfigOnly_Success() (gas: 1038420) CCIPConfig_beforeCapabilityConfigSet:test_beforeCapabilityConfigSet_OnlyCapabilitiesRegistryCanCall_Reverts() (gas: 9611) -CCIPConfig_beforeCapabilityConfigSet:test_beforeCapabilityConfigSet_ZeroLengthConfig_Success() (gas: 15996) +CCIPConfig_beforeCapabilityConfigSet:test_beforeCapabilityConfigSet_ZeroLengthConfig_Success() (gas: 16008) CCIPConfig_beforeCapabilityConfigSet:test_getCapabilityConfiguration_Success() (gas: 9627) -CCIPConfig_chainConfig:test__applyChainConfigUpdates_FChainNotPositive_Reverts() (gas: 184771) +CCIPConfig_chainConfig:test__applyChainConfigUpdates_FChainNotPositive_Reverts() (gas: 184777) CCIPConfig_chainConfig:test_applyChainConfigUpdates_addChainConfigs_Success() (gas: 346687) -CCIPConfig_chainConfig:test_applyChainConfigUpdates_nodeNotInRegistry_Reverts() (gas: 20340) +CCIPConfig_chainConfig:test_applyChainConfigUpdates_nodeNotInRegistry_Reverts() (gas: 20346) CCIPConfig_chainConfig:test_applyChainConfigUpdates_removeChainConfigs_Success() (gas: 270334) -CCIPConfig_chainConfig:test_applyChainConfigUpdates_selectorNotFound_Reverts() (gas: 14819) +CCIPConfig_chainConfig:test_applyChainConfigUpdates_selectorNotFound_Reverts() (gas: 14825) CCIPConfig_chainConfig:test_getCapabilityConfiguration_Success() (gas: 9648) -CCIPConfig_chainConfig:test_getPaginatedCCIPConfigs_Success() (gas: 370293) -CCIPConfig_constructor:test_constructor_Success() (gas: 3363163) -CCIPConfig_constructor:test_constructor_ZeroAddressNotAllowed_Revert() (gas: 61471) +CCIPConfig_chainConfig:test_getPaginatedCCIPConfigs_Success() (gas: 370299) +CCIPConfig_constructor:test_constructor_Success() (gas: 3333086) +CCIPConfig_constructor:test_constructor_ZeroAddressNotAllowed_Revert() (gas: 61438) CCIPConfig_updatePluginConfig:test__updatePluginConfig_InvalidConfigLength_Reverts() (gas: 25819) -CCIPConfig_updatePluginConfig:test__updatePluginConfig_InvalidConfigStateTransition_Reverts() (gas: 21913) +CCIPConfig_updatePluginConfig:test__updatePluginConfig_InvalidConfigStateTransition_Reverts() (gas: 21919) CCIPConfig_updatePluginConfig:test_getCapabilityConfiguration_Success() (gas: 9649) -CCIPConfig_updatePluginConfig:test_updatePluginConfig_InitToRunning_Success() (gas: 1087677) -CCIPConfig_updatePluginConfig:test_updatePluginConfig_RunningToStaging_Success() (gas: 2032286) -CCIPConfig_updatePluginConfig:test_updatePluginConfig_StagingToRunning_Success() (gas: 2032320) -CCIPConfig_validateConfig:test__validateConfig_ABIEncodedAddress_OfframpAddressCannotBeZero_Reverts() (gas: 290828) -CCIPConfig_validateConfig:test__validateConfig_ChainSelectorNotFound_Reverts() (gas: 293559) -CCIPConfig_validateConfig:test__validateConfig_ChainSelectorNotSet_Reverts() (gas: 290461) -CCIPConfig_validateConfig:test__validateConfig_FMustBePositive_Reverts() (gas: 291668) -CCIPConfig_validateConfig:test__validateConfig_FTooHigh_Reverts() (gas: 291766) -CCIPConfig_validateConfig:test__validateConfig_NodeNotInRegistry_Reverts() (gas: 344947) -CCIPConfig_validateConfig:test__validateConfig_NotEnoughTransmitters_Reverts() (gas: 1208593) -CCIPConfig_validateConfig:test__validateConfig_OfframpAddressCannotBeZero_Reverts() (gas: 290544) -CCIPConfig_validateConfig:test__validateConfig_P2PIdsLengthNotMatching_Reverts() (gas: 292459) -CCIPConfig_validateConfig:test__validateConfig_Success() (gas: 299632) -CCIPConfig_validateConfig:test__validateConfig_TooManySigners_Reverts() (gas: 493084) +CCIPConfig_updatePluginConfig:test_updatePluginConfig_InitToRunning_Success() (gas: 1087725) +CCIPConfig_updatePluginConfig:test_updatePluginConfig_RunningToStaging_Success() (gas: 2032324) +CCIPConfig_updatePluginConfig:test_updatePluginConfig_StagingToRunning_Success() (gas: 2032358) +CCIPConfig_validateConfig:test__validateConfig_ABIEncodedAddress_OfframpAddressCannotBeZero_Reverts() (gas: 290870) +CCIPConfig_validateConfig:test__validateConfig_ChainSelectorNotFound_Reverts() (gas: 293601) +CCIPConfig_validateConfig:test__validateConfig_ChainSelectorNotSet_Reverts() (gas: 290497) +CCIPConfig_validateConfig:test__validateConfig_FMustBePositive_Reverts() (gas: 291704) +CCIPConfig_validateConfig:test__validateConfig_FTooHigh_Reverts() (gas: 291802) +CCIPConfig_validateConfig:test__validateConfig_NodeNotInRegistry_Reverts() (gas: 345019) +CCIPConfig_validateConfig:test__validateConfig_NotEnoughTransmitters_Reverts() (gas: 1209247) +CCIPConfig_validateConfig:test__validateConfig_OfframpAddressCannotBeZero_Reverts() (gas: 290586) +CCIPConfig_validateConfig:test__validateConfig_P2PIdsLengthNotMatching_Reverts() (gas: 292495) +CCIPConfig_validateConfig:test__validateConfig_Success() (gas: 299668) +CCIPConfig_validateConfig:test__validateConfig_TooManySigners_Reverts() (gas: 493120) CCIPConfig_validateConfig:test_getCapabilityConfiguration_Success() (gas: 9606) -CommitStore_constructor:test_Constructor_Success() (gas: 3013980) -CommitStore_isUnpausedAndRMNHealthy:test_RMN_Success() (gas: 73477) -CommitStore_report:test_InvalidIntervalMinLargerThanMax_Revert() (gas: 28676) -CommitStore_report:test_InvalidInterval_Revert() (gas: 28616) -CommitStore_report:test_InvalidRootRevert() (gas: 27849) -CommitStore_report:test_OnlyGasPriceUpdates_Success() (gas: 53290) -CommitStore_report:test_OnlyPriceUpdateStaleReport_Revert() (gas: 59092) -CommitStore_report:test_OnlyTokenPriceUpdates_Success() (gas: 53288) -CommitStore_report:test_Paused_Revert() (gas: 21262) -CommitStore_report:test_ReportAndPriceUpdate_Success() (gas: 84276) -CommitStore_report:test_ReportOnlyRootSuccess_gas() (gas: 56258) -CommitStore_report:test_RootAlreadyCommitted_Revert() (gas: 63984) -CommitStore_report:test_StaleReportWithRoot_Success() (gas: 116976) -CommitStore_report:test_Unhealthy_Revert() (gas: 44754) -CommitStore_report:test_ValidPriceUpdateThenStaleReportWithRoot_Success() (gas: 98573) -CommitStore_report:test_ZeroEpochAndRound_Revert() (gas: 27632) -CommitStore_resetUnblessedRoots:test_OnlyOwner_Revert() (gas: 11331) -CommitStore_resetUnblessedRoots:test_ResetUnblessedRoots_Success() (gas: 143814) +CommitStore_constructor:test_Constructor_Success() (gas: 2973887) +CommitStore_isUnpausedAndRMNHealthy:test_RMN_Success() (gas: 73567) +CommitStore_report:test_InvalidIntervalMinLargerThanMax_Revert() (gas: 28688) +CommitStore_report:test_InvalidInterval_Revert() (gas: 28628) +CommitStore_report:test_InvalidRootRevert() (gas: 27861) +CommitStore_report:test_OnlyGasPriceUpdates_Success() (gas: 53302) +CommitStore_report:test_OnlyPriceUpdateStaleReport_Revert() (gas: 59122) +CommitStore_report:test_OnlyTokenPriceUpdates_Success() (gas: 53300) +CommitStore_report:test_Paused_Revert() (gas: 21280) +CommitStore_report:test_ReportAndPriceUpdate_Success() (gas: 84288) +CommitStore_report:test_ReportOnlyRootSuccess_gas() (gas: 56270) +CommitStore_report:test_RootAlreadyCommitted_Revert() (gas: 64008) +CommitStore_report:test_StaleReportWithRoot_Success() (gas: 117012) +CommitStore_report:test_Unhealthy_Revert() (gas: 44766) +CommitStore_report:test_ValidPriceUpdateThenStaleReportWithRoot_Success() (gas: 98603) +CommitStore_report:test_ZeroEpochAndRound_Revert() (gas: 27650) +CommitStore_resetUnblessedRoots:test_OnlyOwner_Revert() (gas: 11337) +CommitStore_resetUnblessedRoots:test_ResetUnblessedRoots_Success() (gas: 143871) CommitStore_setDynamicConfig:test_InvalidCommitStoreConfig_Revert() (gas: 37263) CommitStore_setDynamicConfig:test_OnlyOwner_Revert() (gas: 37405) CommitStore_setDynamicConfig:test_PriceEpochCleared_Success() (gas: 129131) -CommitStore_setLatestPriceEpochAndRound:test_OnlyOwner_Revert() (gas: 11054) -CommitStore_setLatestPriceEpochAndRound:test_SetLatestPriceEpochAndRound_Success() (gas: 20645) -CommitStore_setMinSeqNr:test_OnlyOwner_Revert() (gas: 11053) -CommitStore_verify:test_Blessed_Success() (gas: 96452) -CommitStore_verify:test_NotBlessed_Success() (gas: 61398) -CommitStore_verify:test_Paused_Revert() (gas: 18505) -CommitStore_verify:test_TooManyLeaves_Revert() (gas: 36797) -DefensiveExampleTest:test_HappyPath_Success() (gas: 200047) -DefensiveExampleTest:test_Recovery() (gas: 424294) -E2E:test_E2E_3MessagesSuccess_gas() (gas: 1095501) -EVM2EVMOffRamp__releaseOrMintToken:test__releaseOrMintToken_NotACompatiblePool_Revert() (gas: 37818) -EVM2EVMOffRamp__releaseOrMintToken:test__releaseOrMintToken_Success() (gas: 103820) -EVM2EVMOffRamp__releaseOrMintToken:test__releaseOrMintToken_TokenHandlingError_transfer_Revert() (gas: 85333) -EVM2EVMOffRamp__releaseOrMintToken:test_releaseOrMintToken_InvalidDataLength_Revert() (gas: 36843) -EVM2EVMOffRamp__releaseOrMintToken:test_releaseOrMintToken_ReleaseOrMintBalanceMismatch_Revert() (gas: 94389) -EVM2EVMOffRamp__releaseOrMintToken:test_releaseOrMintToken_TokenHandlingError_BalanceOf_Revert() (gas: 39813) -EVM2EVMOffRamp__releaseOrMintToken:test_releaseOrMintToken_skip_ReleaseOrMintBalanceMismatch_if_pool_Revert() (gas: 86631) -EVM2EVMOffRamp__releaseOrMintTokens:test_OverValueWithARLOff_Success() (gas: 379129) -EVM2EVMOffRamp__releaseOrMintTokens:test_PriceNotFoundForToken_Reverts() (gas: 139810) -EVM2EVMOffRamp__releaseOrMintTokens:test_RateLimitErrors_Reverts() (gas: 793106) -EVM2EVMOffRamp__releaseOrMintTokens:test_TokenHandlingError_Reverts() (gas: 177251) -EVM2EVMOffRamp__releaseOrMintTokens:test__releaseOrMintTokens_NotACompatiblePool_Reverts() (gas: 29243) -EVM2EVMOffRamp__releaseOrMintTokens:test_releaseOrMintTokens_InvalidDataLengthReturnData_Revert() (gas: 66504) -EVM2EVMOffRamp__releaseOrMintTokens:test_releaseOrMintTokens_InvalidEVMAddress_Revert() (gas: 43320) -EVM2EVMOffRamp__releaseOrMintTokens:test_releaseOrMintTokens_Success() (gas: 206862) -EVM2EVMOffRamp__releaseOrMintTokens:test_releaseOrMintTokens_destDenominatedDecimals_Success() (gas: 218114) -EVM2EVMOffRamp__report:test_Report_Success() (gas: 126703) -EVM2EVMOffRamp__trialExecute:test_RateLimitError_Success() (gas: 235795) -EVM2EVMOffRamp__trialExecute:test_TokenHandlingErrorIsCaught_Success() (gas: 244395) -EVM2EVMOffRamp__trialExecute:test_TokenPoolIsNotAContract_Success() (gas: 325770) -EVM2EVMOffRamp__trialExecute:test_trialExecute_Success() (gas: 308201) +CommitStore_setLatestPriceEpochAndRound:test_OnlyOwner_Revert() (gas: 11060) +CommitStore_setLatestPriceEpochAndRound:test_SetLatestPriceEpochAndRound_Success() (gas: 20651) +CommitStore_setMinSeqNr:test_OnlyOwner_Revert() (gas: 11059) +CommitStore_verify:test_Blessed_Success() (gas: 96485) +CommitStore_verify:test_NotBlessed_Success() (gas: 61422) +CommitStore_verify:test_Paused_Revert() (gas: 18529) +CommitStore_verify:test_TooManyLeaves_Revert() (gas: 36809) +DefensiveExampleTest:test_HappyPath_Success() (gas: 200052) +DefensiveExampleTest:test_Recovery() (gas: 424299) +E2E:test_E2E_3MessagesSuccess_gas() (gas: 1097175) +EVM2EVMOffRamp__releaseOrMintToken:test__releaseOrMintToken_NotACompatiblePool_Revert() (gas: 37854) +EVM2EVMOffRamp__releaseOrMintToken:test__releaseOrMintToken_Success() (gas: 104060) +EVM2EVMOffRamp__releaseOrMintToken:test__releaseOrMintToken_TokenHandlingError_transfer_Revert() (gas: 85597) +EVM2EVMOffRamp__releaseOrMintToken:test_releaseOrMintToken_InvalidDataLength_Revert() (gas: 37068) +EVM2EVMOffRamp__releaseOrMintToken:test_releaseOrMintToken_ReleaseOrMintBalanceMismatch_Revert() (gas: 94629) +EVM2EVMOffRamp__releaseOrMintToken:test_releaseOrMintToken_TokenHandlingError_BalanceOf_Revert() (gas: 40050) +EVM2EVMOffRamp__releaseOrMintToken:test_releaseOrMintToken_skip_ReleaseOrMintBalanceMismatch_if_pool_Revert() (gas: 86871) +EVM2EVMOffRamp__releaseOrMintTokens:test_OverValueWithARLOff_Success() (gas: 379687) +EVM2EVMOffRamp__releaseOrMintTokens:test_PriceNotFoundForToken_Reverts() (gas: 140056) +EVM2EVMOffRamp__releaseOrMintTokens:test_RateLimitErrors_Reverts() (gas: 794492) +EVM2EVMOffRamp__releaseOrMintTokens:test_TokenHandlingError_Reverts() (gas: 177527) +EVM2EVMOffRamp__releaseOrMintTokens:test__releaseOrMintTokens_NotACompatiblePool_Reverts() (gas: 29249) +EVM2EVMOffRamp__releaseOrMintTokens:test_releaseOrMintTokens_InvalidDataLengthReturnData_Revert() (gas: 66741) +EVM2EVMOffRamp__releaseOrMintTokens:test_releaseOrMintTokens_InvalidEVMAddress_Revert() (gas: 43332) +EVM2EVMOffRamp__releaseOrMintTokens:test_releaseOrMintTokens_Success() (gas: 207138) +EVM2EVMOffRamp__releaseOrMintTokens:test_releaseOrMintTokens_destDenominatedDecimals_Success() (gas: 218390) +EVM2EVMOffRamp__report:test_Report_Success() (gas: 126727) +EVM2EVMOffRamp__trialExecute:test_RateLimitError_Success() (gas: 236077) +EVM2EVMOffRamp__trialExecute:test_TokenHandlingErrorIsCaught_Success() (gas: 244677) +EVM2EVMOffRamp__trialExecute:test_TokenPoolIsNotAContract_Success() (gas: 326076) +EVM2EVMOffRamp__trialExecute:test_trialExecute_Success() (gas: 308501) EVM2EVMOffRamp_ccipReceive:test_Reverts() (gas: 17033) -EVM2EVMOffRamp_constructor:test_CommitStoreAlreadyInUse_Revert() (gas: 153548) -EVM2EVMOffRamp_constructor:test_Constructor_Success() (gas: 5549627) -EVM2EVMOffRamp_constructor:test_ZeroOnRampAddress_Revert() (gas: 144282) -EVM2EVMOffRamp_execute:test_EmptyReport_Revert() (gas: 21321) -EVM2EVMOffRamp_execute:test_InvalidMessageId_Revert() (gas: 36558) -EVM2EVMOffRamp_execute:test_InvalidSourceChain_Revert() (gas: 51775) -EVM2EVMOffRamp_execute:test_InvalidSourcePoolAddress_Success() (gas: 469607) -EVM2EVMOffRamp_execute:test_ManualExecutionNotYetEnabled_Revert() (gas: 47830) +EVM2EVMOffRamp_constructor:test_CommitStoreAlreadyInUse_Revert() (gas: 153451) +EVM2EVMOffRamp_constructor:test_Constructor_Success() (gas: 5479225) +EVM2EVMOffRamp_constructor:test_ZeroOnRampAddress_Revert() (gas: 144185) +EVM2EVMOffRamp_execute:test_EmptyReport_Revert() (gas: 21354) +EVM2EVMOffRamp_execute:test_InvalidMessageId_Revert() (gas: 36591) +EVM2EVMOffRamp_execute:test_InvalidSourceChain_Revert() (gas: 51808) +EVM2EVMOffRamp_execute:test_InvalidSourcePoolAddress_Success() (gas: 470171) +EVM2EVMOffRamp_execute:test_ManualExecutionNotYetEnabled_Revert() (gas: 47902) EVM2EVMOffRamp_execute:test_MessageTooLarge_Revert() (gas: 152518) -EVM2EVMOffRamp_execute:test_Paused_Revert() (gas: 103046) -EVM2EVMOffRamp_execute:test_ReceiverError_Success() (gas: 164107) -EVM2EVMOffRamp_execute:test_RetryFailedMessageWithoutManualExecution_Success() (gas: 178568) -EVM2EVMOffRamp_execute:test_RootNotCommitted_Revert() (gas: 42701) -EVM2EVMOffRamp_execute:test_SingleMessageNoTokensUnordered_Success() (gas: 157899) -EVM2EVMOffRamp_execute:test_SingleMessageNoTokens_Success() (gas: 173184) -EVM2EVMOffRamp_execute:test_SingleMessageToNonCCIPReceiver_Success() (gas: 247246) -EVM2EVMOffRamp_execute:test_SingleMessagesNoTokensSuccess_gas() (gas: 113971) -EVM2EVMOffRamp_execute:test_SkippedIncorrectNonceStillExecutes_Success() (gas: 403729) +EVM2EVMOffRamp_execute:test_Paused_Revert() (gas: 103079) +EVM2EVMOffRamp_execute:test_ReceiverError_Success() (gas: 164230) +EVM2EVMOffRamp_execute:test_RetryFailedMessageWithoutManualExecution_Success() (gas: 178625) +EVM2EVMOffRamp_execute:test_RootNotCommitted_Revert() (gas: 42773) +EVM2EVMOffRamp_execute:test_SingleMessageNoTokensUnordered_Success() (gas: 158079) +EVM2EVMOffRamp_execute:test_SingleMessageNoTokens_Success() (gas: 173331) +EVM2EVMOffRamp_execute:test_SingleMessageToNonCCIPReceiver_Success() (gas: 237073) +EVM2EVMOffRamp_execute:test_SingleMessagesNoTokensSuccess_gas() (gas: 113995) +EVM2EVMOffRamp_execute:test_SkippedIncorrectNonceStillExecutes_Success() (gas: 404062) EVM2EVMOffRamp_execute:test_SkippedIncorrectNonce_Success() (gas: 54294) -EVM2EVMOffRamp_execute:test_StrictUntouchedToSuccess_Success() (gas: 131317) +EVM2EVMOffRamp_execute:test_StrictUntouchedToSuccess_Success() (gas: 131440) EVM2EVMOffRamp_execute:test_TokenDataMismatch_Revert() (gas: 52249) -EVM2EVMOffRamp_execute:test_TwoMessagesWithTokensAndGE_Success() (gas: 559653) -EVM2EVMOffRamp_execute:test_TwoMessagesWithTokensSuccess_gas() (gas: 490168) -EVM2EVMOffRamp_execute:test_UnexpectedTokenData_Revert() (gas: 35497) -EVM2EVMOffRamp_execute:test_Unhealthy_Revert() (gas: 540918) +EVM2EVMOffRamp_execute:test_TwoMessagesWithTokensAndGE_Success() (gas: 560385) +EVM2EVMOffRamp_execute:test_TwoMessagesWithTokensSuccess_gas() (gas: 490768) +EVM2EVMOffRamp_execute:test_UnexpectedTokenData_Revert() (gas: 35530) +EVM2EVMOffRamp_execute:test_Unhealthy_Revert() (gas: 541563) EVM2EVMOffRamp_execute:test_UnsupportedNumberOfTokens_Revert() (gas: 64497) -EVM2EVMOffRamp_execute:test__execute_SkippedAlreadyExecutedMessageUnordered_Success() (gas: 122676) -EVM2EVMOffRamp_execute:test__execute_SkippedAlreadyExecutedMessage_Success() (gas: 142850) -EVM2EVMOffRamp_execute:test_execute_RouterYULCall_Success() (gas: 427538) +EVM2EVMOffRamp_execute:test__execute_SkippedAlreadyExecutedMessageUnordered_Success() (gas: 122733) +EVM2EVMOffRamp_execute:test__execute_SkippedAlreadyExecutedMessage_Success() (gas: 142907) +EVM2EVMOffRamp_execute:test_execute_RouterYULCall_Success() (gas: 427595) EVM2EVMOffRamp_executeSingleMessage:test_MessageSender_Revert() (gas: 18502) -EVM2EVMOffRamp_executeSingleMessage:test_NonContractWithTokens_Success() (gas: 273988) +EVM2EVMOffRamp_executeSingleMessage:test_NonContractWithTokens_Success() (gas: 274264) EVM2EVMOffRamp_executeSingleMessage:test_NonContract_Success() (gas: 18668) -EVM2EVMOffRamp_executeSingleMessage:test_TokenHandlingError_Revert() (gas: 221922) -EVM2EVMOffRamp_executeSingleMessage:test_ZeroGasDONExecution_Revert() (gas: 47926) -EVM2EVMOffRamp_executeSingleMessage:test_executeSingleMessage_NoTokens_Success() (gas: 47403) -EVM2EVMOffRamp_executeSingleMessage:test_executeSingleMessage_WithTokens_Success() (gas: 309850) -EVM2EVMOffRamp_executeSingleMessage:test_executeSingleMessage_ZeroGasZeroData_Success() (gas: 70065) -EVM2EVMOffRamp_execute_upgrade:test_V2NonceNewSenderStartsAtZero_Success() (gas: 229454) -EVM2EVMOffRamp_execute_upgrade:test_V2NonceStartsAtV1Nonce_Success() (gas: 276982) -EVM2EVMOffRamp_execute_upgrade:test_V2OffRampNonceSkipsIfMsgInFlight_Success() (gas: 258834) -EVM2EVMOffRamp_execute_upgrade:test_V2SenderNoncesReadsPreviousRamp_Success() (gas: 226442) -EVM2EVMOffRamp_execute_upgrade:test_V2_Success() (gas: 130811) +EVM2EVMOffRamp_executeSingleMessage:test_TokenHandlingError_Revert() (gas: 222198) +EVM2EVMOffRamp_executeSingleMessage:test_ZeroGasDONExecution_Revert() (gas: 47950) +EVM2EVMOffRamp_executeSingleMessage:test_executeSingleMessage_NoTokens_Success() (gas: 47427) +EVM2EVMOffRamp_executeSingleMessage:test_executeSingleMessage_WithTokens_Success() (gas: 310150) +EVM2EVMOffRamp_executeSingleMessage:test_executeSingleMessage_ZeroGasZeroData_Success() (gas: 70101) +EVM2EVMOffRamp_execute_upgrade:test_V2NonceNewSenderStartsAtZero_Success() (gas: 229526) +EVM2EVMOffRamp_execute_upgrade:test_V2NonceStartsAtV1Nonce_Success() (gas: 277072) +EVM2EVMOffRamp_execute_upgrade:test_V2OffRampNonceSkipsIfMsgInFlight_Success() (gas: 258912) +EVM2EVMOffRamp_execute_upgrade:test_V2SenderNoncesReadsPreviousRamp_Success() (gas: 226538) +EVM2EVMOffRamp_execute_upgrade:test_V2_Success() (gas: 130841) EVM2EVMOffRamp_getAllRateLimitTokens:test_GetAllRateLimitTokens_Success() (gas: 38446) EVM2EVMOffRamp_getExecutionState:test_FillExecutionState_Success() (gas: 3251974) EVM2EVMOffRamp_getExecutionState:test_GetExecutionState_Success() (gas: 83387) -EVM2EVMOffRamp_manuallyExecute:test_ManualExecFailedTx_Revert() (gas: 185967) +EVM2EVMOffRamp_manuallyExecute:test_ManualExecFailedTx_Revert() (gas: 186015) EVM2EVMOffRamp_manuallyExecute:test_ManualExecForkedChain_Revert() (gas: 27052) EVM2EVMOffRamp_manuallyExecute:test_ManualExecGasLimitMismatch_Revert() (gas: 45200) EVM2EVMOffRamp_manuallyExecute:test_ManualExecInvalidGasLimit_Revert() (gas: 27471) -EVM2EVMOffRamp_manuallyExecute:test_ManualExecWithMultipleMessagesAndSourceTokens_Success() (gas: 526041) -EVM2EVMOffRamp_manuallyExecute:test_ManualExecWithSourceTokens_Success() (gas: 341709) -EVM2EVMOffRamp_manuallyExecute:test_ManualExec_Success() (gas: 187459) -EVM2EVMOffRamp_manuallyExecute:test_ReentrancyManualExecuteFails_Success() (gas: 2256179) -EVM2EVMOffRamp_manuallyExecute:test_manuallyExecute_DestinationGasAmountCountMismatch_Revert() (gas: 358922) -EVM2EVMOffRamp_manuallyExecute:test_manuallyExecute_DoesNotRevertIfUntouched_Success() (gas: 143972) -EVM2EVMOffRamp_manuallyExecute:test_manuallyExecute_InvalidTokenGasOverride_Revert() (gas: 362061) -EVM2EVMOffRamp_manuallyExecute:test_manuallyExecute_LowGasLimitManualExec_Success() (gas: 482796) -EVM2EVMOffRamp_manuallyExecute:test_manuallyExecute_WithGasOverride_Success() (gas: 189862) -EVM2EVMOffRamp_manuallyExecute:test_manuallyExecute_WithInvalidReceiverExecutionGasOverride_Revert() (gas: 153716) +EVM2EVMOffRamp_manuallyExecute:test_ManualExecWithMultipleMessagesAndSourceTokens_Success() (gas: 526641) +EVM2EVMOffRamp_manuallyExecute:test_ManualExecWithSourceTokens_Success() (gas: 342009) +EVM2EVMOffRamp_manuallyExecute:test_ManualExec_Success() (gas: 187507) +EVM2EVMOffRamp_manuallyExecute:test_ReentrancyManualExecuteFails_Success() (gas: 2256449) +EVM2EVMOffRamp_manuallyExecute:test_manuallyExecute_DestinationGasAmountCountMismatch_Revert() (gas: 359222) +EVM2EVMOffRamp_manuallyExecute:test_manuallyExecute_DoesNotRevertIfUntouched_Success() (gas: 143996) +EVM2EVMOffRamp_manuallyExecute:test_manuallyExecute_InvalidTokenGasOverride_Revert() (gas: 362361) +EVM2EVMOffRamp_manuallyExecute:test_manuallyExecute_LowGasLimitManualExec_Success() (gas: 482844) +EVM2EVMOffRamp_manuallyExecute:test_manuallyExecute_WithGasOverride_Success() (gas: 189910) +EVM2EVMOffRamp_manuallyExecute:test_manuallyExecute_WithInvalidReceiverExecutionGasOverride_Revert() (gas: 153740) EVM2EVMOffRamp_manuallyExecute:test_manuallyExecute_WithInvalidSourceTokenDataCount_Revert() (gas: 59897) EVM2EVMOffRamp_metadataHash:test_MetadataHash_Success() (gas: 8865) -EVM2EVMOffRamp_setDynamicConfig:test_NonOwner_Revert() (gas: 40162) +EVM2EVMOffRamp_setDynamicConfig:test_NonOwner_Revert() (gas: 40168) EVM2EVMOffRamp_setDynamicConfig:test_RouterZeroAddress_Revert() (gas: 38239) EVM2EVMOffRamp_setDynamicConfig:test_SetDynamicConfig_Success() (gas: 141938) -EVM2EVMOffRamp_updateRateLimitTokens:test_updateRateLimitTokens_AddsAndRemoves_Success() (gas: 162528) -EVM2EVMOffRamp_updateRateLimitTokens:test_updateRateLimitTokens_NonOwner_Revert() (gas: 16699) +EVM2EVMOffRamp_updateRateLimitTokens:test_updateRateLimitTokens_AddsAndRemoves_Success() (gas: 162532) +EVM2EVMOffRamp_updateRateLimitTokens:test_updateRateLimitTokens_NonOwner_Revert() (gas: 16711) EVM2EVMOffRamp_updateRateLimitTokens:test_updateRateLimitTokens_Success() (gas: 197728) -EVM2EVMOnRamp_constructor:test_Constructor_Success() (gas: 5431520) -EVM2EVMOnRamp_forwardFromRouter:test_CannotSendZeroTokens_Revert() (gas: 35835) -EVM2EVMOnRamp_forwardFromRouter:test_EnforceOutOfOrder_Revert() (gas: 98584) -EVM2EVMOnRamp_forwardFromRouter:test_ForwardFromRouterExtraArgsV2AllowOutOfOrderTrue_Success() (gas: 114231) -EVM2EVMOnRamp_forwardFromRouter:test_ForwardFromRouterExtraArgsV2_Success() (gas: 114273) -EVM2EVMOnRamp_forwardFromRouter:test_ForwardFromRouterSuccessCustomExtraArgs() (gas: 130246) -EVM2EVMOnRamp_forwardFromRouter:test_ForwardFromRouterSuccessLegacyExtraArgs() (gas: 138686) -EVM2EVMOnRamp_forwardFromRouter:test_ForwardFromRouter_Success() (gas: 129865) -EVM2EVMOnRamp_forwardFromRouter:test_InvalidAddressEncodePacked_Revert() (gas: 38314) -EVM2EVMOnRamp_forwardFromRouter:test_InvalidAddress_Revert() (gas: 38497) -EVM2EVMOnRamp_forwardFromRouter:test_InvalidChainSelector_Revert() (gas: 25534) -EVM2EVMOnRamp_forwardFromRouter:test_InvalidExtraArgsTag_Revert() (gas: 25320) -EVM2EVMOnRamp_forwardFromRouter:test_MaxCapacityExceeded_Revert() (gas: 83951) -EVM2EVMOnRamp_forwardFromRouter:test_MaxFeeBalanceReached_Revert() (gas: 36514) -EVM2EVMOnRamp_forwardFromRouter:test_MessageGasLimitTooHigh_Revert() (gas: 29078) -EVM2EVMOnRamp_forwardFromRouter:test_MessageTooLarge_Revert() (gas: 107622) +EVM2EVMOnRamp_constructor:test_Constructor_Success() (gas: 5322415) +EVM2EVMOnRamp_forwardFromRouter:test_CannotSendZeroTokens_Revert() (gas: 35880) +EVM2EVMOnRamp_forwardFromRouter:test_EnforceOutOfOrder_Revert() (gas: 98614) +EVM2EVMOnRamp_forwardFromRouter:test_ForwardFromRouterExtraArgsV2AllowOutOfOrderTrue_Success() (gas: 114321) +EVM2EVMOnRamp_forwardFromRouter:test_ForwardFromRouterExtraArgsV2_Success() (gas: 114363) +EVM2EVMOnRamp_forwardFromRouter:test_ForwardFromRouterSuccessCustomExtraArgs() (gas: 130351) +EVM2EVMOnRamp_forwardFromRouter:test_ForwardFromRouterSuccessLegacyExtraArgs() (gas: 138791) +EVM2EVMOnRamp_forwardFromRouter:test_ForwardFromRouter_Success() (gas: 129970) +EVM2EVMOnRamp_forwardFromRouter:test_InvalidAddressEncodePacked_Revert() (gas: 38431) +EVM2EVMOnRamp_forwardFromRouter:test_InvalidAddress_Revert() (gas: 38614) +EVM2EVMOnRamp_forwardFromRouter:test_InvalidChainSelector_Revert() (gas: 25540) +EVM2EVMOnRamp_forwardFromRouter:test_InvalidExtraArgsTag_Revert() (gas: 25365) +EVM2EVMOnRamp_forwardFromRouter:test_MaxCapacityExceeded_Revert() (gas: 84002) +EVM2EVMOnRamp_forwardFromRouter:test_MaxFeeBalanceReached_Revert() (gas: 36619) +EVM2EVMOnRamp_forwardFromRouter:test_MessageGasLimitTooHigh_Revert() (gas: 29123) +EVM2EVMOnRamp_forwardFromRouter:test_MessageTooLarge_Revert() (gas: 107667) EVM2EVMOnRamp_forwardFromRouter:test_OriginalSender_Revert() (gas: 22724) -EVM2EVMOnRamp_forwardFromRouter:test_OverValueWithARLOff_Success() (gas: 225252) -EVM2EVMOnRamp_forwardFromRouter:test_Paused_Revert() (gas: 53150) -EVM2EVMOnRamp_forwardFromRouter:test_Permissions_Revert() (gas: 25559) -EVM2EVMOnRamp_forwardFromRouter:test_PriceNotFoundForToken_Revert() (gas: 57291) -EVM2EVMOnRamp_forwardFromRouter:test_ShouldIncrementNonceOnlyOnOrdered_Success() (gas: 179442) -EVM2EVMOnRamp_forwardFromRouter:test_ShouldIncrementSeqNumAndNonce_Success() (gas: 177724) -EVM2EVMOnRamp_forwardFromRouter:test_ShouldStoreNonLinkFees() (gas: 132585) -EVM2EVMOnRamp_forwardFromRouter:test_SourceTokenDataTooLarge_Revert() (gas: 3772676) -EVM2EVMOnRamp_forwardFromRouter:test_TooManyTokens_Revert() (gas: 30244) +EVM2EVMOnRamp_forwardFromRouter:test_OverValueWithARLOff_Success() (gas: 225474) +EVM2EVMOnRamp_forwardFromRouter:test_Paused_Revert() (gas: 53180) +EVM2EVMOnRamp_forwardFromRouter:test_Permissions_Revert() (gas: 25565) +EVM2EVMOnRamp_forwardFromRouter:test_PriceNotFoundForToken_Revert() (gas: 57336) +EVM2EVMOnRamp_forwardFromRouter:test_ShouldIncrementNonceOnlyOnOrdered_Success() (gas: 179712) +EVM2EVMOnRamp_forwardFromRouter:test_ShouldIncrementSeqNumAndNonce_Success() (gas: 178039) +EVM2EVMOnRamp_forwardFromRouter:test_ShouldStoreNonLinkFees() (gas: 132717) +EVM2EVMOnRamp_forwardFromRouter:test_SourceTokenDataTooLarge_Revert() (gas: 3713189) +EVM2EVMOnRamp_forwardFromRouter:test_TooManyTokens_Revert() (gas: 30289) EVM2EVMOnRamp_forwardFromRouter:test_Unhealthy_Revert() (gas: 43342) -EVM2EVMOnRamp_forwardFromRouter:test_UnsupportedToken_Revert() (gas: 109440) -EVM2EVMOnRamp_forwardFromRouter:test_ZeroAddressReceiver_Revert() (gas: 313095) -EVM2EVMOnRamp_forwardFromRouter:test_forwardFromRouter_ShouldStoreLinkFees_Success() (gas: 112430) -EVM2EVMOnRamp_forwardFromRouter:test_forwardFromRouter_UnsupportedToken_Revert() (gas: 72269) -EVM2EVMOnRamp_forwardFromRouter:test_forwardFromRouter_correctSourceTokenData_Success() (gas: 711472) -EVM2EVMOnRamp_forwardFromRouter_upgrade:test_V2NonceNewSenderStartsAtZero_Success() (gas: 147709) -EVM2EVMOnRamp_forwardFromRouter_upgrade:test_V2NonceStartsAtV1Nonce_Success() (gas: 190616) -EVM2EVMOnRamp_forwardFromRouter_upgrade:test_V2SenderNoncesReadsPreviousRamp_Success() (gas: 121404) -EVM2EVMOnRamp_forwardFromRouter_upgrade:test_V2_Success() (gas: 95376) +EVM2EVMOnRamp_forwardFromRouter:test_UnsupportedToken_Revert() (gas: 109557) +EVM2EVMOnRamp_forwardFromRouter:test_ZeroAddressReceiver_Revert() (gas: 314265) +EVM2EVMOnRamp_forwardFromRouter:test_forwardFromRouter_ShouldStoreLinkFees_Success() (gas: 112547) +EVM2EVMOnRamp_forwardFromRouter:test_forwardFromRouter_UnsupportedToken_Revert() (gas: 72386) +EVM2EVMOnRamp_forwardFromRouter:test_forwardFromRouter_correctSourceTokenData_Success() (gas: 711856) +EVM2EVMOnRamp_forwardFromRouter_upgrade:test_V2NonceNewSenderStartsAtZero_Success() (gas: 147925) +EVM2EVMOnRamp_forwardFromRouter_upgrade:test_V2NonceStartsAtV1Nonce_Success() (gas: 190949) +EVM2EVMOnRamp_forwardFromRouter_upgrade:test_V2SenderNoncesReadsPreviousRamp_Success() (gas: 121743) +EVM2EVMOnRamp_forwardFromRouter_upgrade:test_V2_Success() (gas: 95487) EVM2EVMOnRamp_getDataAvailabilityCost:test_EmptyMessageCalculatesDataAvailabilityCost_Success() (gas: 20568) EVM2EVMOnRamp_getDataAvailabilityCost:test_SimpleMessageCalculatesDataAvailabilityCost_Success() (gas: 20936) -EVM2EVMOnRamp_getFee:test_EmptyMessage_Success() (gas: 74027) -EVM2EVMOnRamp_getFee:test_GetFeeOfZeroForTokenMessage_Success() (gas: 79523) -EVM2EVMOnRamp_getFee:test_HighGasMessage_Success() (gas: 229875) -EVM2EVMOnRamp_getFee:test_MessageGasLimitTooHigh_Revert() (gas: 16733) -EVM2EVMOnRamp_getFee:test_MessageTooLarge_Revert() (gas: 95283) -EVM2EVMOnRamp_getFee:test_MessageWithDataAndTokenTransfer_Success() (gas: 152627) -EVM2EVMOnRamp_getFee:test_NotAFeeToken_Revert() (gas: 24113) -EVM2EVMOnRamp_getFee:test_SingleTokenMessage_Success() (gas: 113597) -EVM2EVMOnRamp_getFee:test_TooManyTokens_Revert() (gas: 19914) -EVM2EVMOnRamp_getFee:test_ZeroDataAvailabilityMultiplier_Success() (gas: 62539) +EVM2EVMOnRamp_getFee:test_EmptyMessage_Success() (gas: 74147) +EVM2EVMOnRamp_getFee:test_GetFeeOfZeroForTokenMessage_Success() (gas: 79673) +EVM2EVMOnRamp_getFee:test_HighGasMessage_Success() (gas: 229995) +EVM2EVMOnRamp_getFee:test_MessageGasLimitTooHigh_Revert() (gas: 16778) +EVM2EVMOnRamp_getFee:test_MessageTooLarge_Revert() (gas: 95328) +EVM2EVMOnRamp_getFee:test_MessageWithDataAndTokenTransfer_Success() (gas: 152747) +EVM2EVMOnRamp_getFee:test_NotAFeeToken_Revert() (gas: 24158) +EVM2EVMOnRamp_getFee:test_SingleTokenMessage_Success() (gas: 113717) +EVM2EVMOnRamp_getFee:test_TooManyTokens_Revert() (gas: 19959) +EVM2EVMOnRamp_getFee:test_ZeroDataAvailabilityMultiplier_Success() (gas: 62629) EVM2EVMOnRamp_getSupportedTokens:test_GetSupportedTokens_Revert() (gas: 10460) EVM2EVMOnRamp_getTokenPool:test_GetTokenPool_Success() (gas: 35195) EVM2EVMOnRamp_getTokenTransferCost:test_CustomTokenBpsFee_Success() (gas: 43011) @@ -263,135 +263,135 @@ EVM2EVMOnRamp_getTokenTransferCost:test_LargeTokenTransferChargesMaxFeeAndGas_Su EVM2EVMOnRamp_getTokenTransferCost:test_MixedTokenTransferFee_Success() (gas: 121817) EVM2EVMOnRamp_getTokenTransferCost:test_NoTokenTransferChargesZeroFee_Success() (gas: 15250) EVM2EVMOnRamp_getTokenTransferCost:test_SmallTokenTransferChargesMinFeeAndGas_Success() (gas: 28164) -EVM2EVMOnRamp_getTokenTransferCost:test_UnsupportedToken_Revert() (gas: 21260) +EVM2EVMOnRamp_getTokenTransferCost:test_UnsupportedToken_Revert() (gas: 21266) EVM2EVMOnRamp_getTokenTransferCost:test_ZeroAmountTokenTransferChargesMinFeeAndGas_Success() (gas: 28187) EVM2EVMOnRamp_getTokenTransferCost:test_ZeroFeeConfigChargesMinFee_Success() (gas: 38638) EVM2EVMOnRamp_getTokenTransferCost:test__getTokenTransferCost_selfServeUsesDefaults_Success() (gas: 29440) -EVM2EVMOnRamp_linkAvailableForPayment:test_InsufficientLinkBalance_Success() (gas: 32621) -EVM2EVMOnRamp_linkAvailableForPayment:test_LinkAvailableForPayment_Success() (gas: 134884) -EVM2EVMOnRamp_payNops:test_AdminPayNops_Success() (gas: 143210) -EVM2EVMOnRamp_payNops:test_InsufficientBalance_Revert() (gas: 29055) -EVM2EVMOnRamp_payNops:test_NoFeesToPay_Revert() (gas: 127424) -EVM2EVMOnRamp_payNops:test_NoNopsToPay_Revert() (gas: 133318) -EVM2EVMOnRamp_payNops:test_NopPayNops_Success() (gas: 146497) -EVM2EVMOnRamp_payNops:test_OwnerPayNops_Success() (gas: 141072) -EVM2EVMOnRamp_payNops:test_PayNopsSuccessAfterSetNops() (gas: 297651) +EVM2EVMOnRamp_linkAvailableForPayment:test_InsufficientLinkBalance_Success() (gas: 32651) +EVM2EVMOnRamp_linkAvailableForPayment:test_LinkAvailableForPayment_Success() (gas: 135118) +EVM2EVMOnRamp_payNops:test_AdminPayNops_Success() (gas: 143408) +EVM2EVMOnRamp_payNops:test_InsufficientBalance_Revert() (gas: 29085) +EVM2EVMOnRamp_payNops:test_NoFeesToPay_Revert() (gas: 127622) +EVM2EVMOnRamp_payNops:test_NoNopsToPay_Revert() (gas: 133481) +EVM2EVMOnRamp_payNops:test_NopPayNops_Success() (gas: 146695) +EVM2EVMOnRamp_payNops:test_OwnerPayNops_Success() (gas: 141270) +EVM2EVMOnRamp_payNops:test_PayNopsSuccessAfterSetNops() (gas: 298116) EVM2EVMOnRamp_payNops:test_WrongPermissions_Revert() (gas: 15300) -EVM2EVMOnRamp_setDynamicConfig:test_SetConfigInvalidConfig_Revert() (gas: 42377) -EVM2EVMOnRamp_setDynamicConfig:test_SetConfigOnlyOwner_Revert() (gas: 21258) -EVM2EVMOnRamp_setDynamicConfig:test_SetDynamicConfig_Success() (gas: 53782) -EVM2EVMOnRamp_setFeeTokenConfig:test_OnlyCallableByOwnerOrAdmin_Revert() (gas: 13470) -EVM2EVMOnRamp_setFeeTokenConfig:test_SetFeeTokenConfigByAdmin_Success() (gas: 16455) -EVM2EVMOnRamp_setFeeTokenConfig:test_SetFeeTokenConfig_Success() (gas: 13994) -EVM2EVMOnRamp_setNops:test_AdminCanSetNops_Success() (gas: 61785) -EVM2EVMOnRamp_setNops:test_IncludesPayment_Success() (gas: 469353) -EVM2EVMOnRamp_setNops:test_LinkTokenCannotBeNop_Revert() (gas: 57276) +EVM2EVMOnRamp_setDynamicConfig:test_SetConfigInvalidConfig_Revert() (gas: 42401) +EVM2EVMOnRamp_setDynamicConfig:test_SetConfigOnlyOwner_Revert() (gas: 21270) +EVM2EVMOnRamp_setDynamicConfig:test_SetDynamicConfig_Success() (gas: 53830) +EVM2EVMOnRamp_setFeeTokenConfig:test_OnlyCallableByOwnerOrAdmin_Revert() (gas: 13476) +EVM2EVMOnRamp_setFeeTokenConfig:test_SetFeeTokenConfigByAdmin_Success() (gas: 16461) +EVM2EVMOnRamp_setFeeTokenConfig:test_SetFeeTokenConfig_Success() (gas: 14000) +EVM2EVMOnRamp_setNops:test_AdminCanSetNops_Success() (gas: 61795) +EVM2EVMOnRamp_setNops:test_IncludesPayment_Success() (gas: 469668) +EVM2EVMOnRamp_setNops:test_LinkTokenCannotBeNop_Revert() (gas: 57291) EVM2EVMOnRamp_setNops:test_NonOwnerOrAdmin_Revert() (gas: 14677) -EVM2EVMOnRamp_setNops:test_NotEnoughFundsForPayout_Revert() (gas: 84528) -EVM2EVMOnRamp_setNops:test_SetNopsRemovesOldNopsCompletely_Success() (gas: 60673) -EVM2EVMOnRamp_setNops:test_SetNops_Success() (gas: 173821) +EVM2EVMOnRamp_setNops:test_NotEnoughFundsForPayout_Revert() (gas: 84675) +EVM2EVMOnRamp_setNops:test_SetNopsRemovesOldNopsCompletely_Success() (gas: 60683) +EVM2EVMOnRamp_setNops:test_SetNops_Success() (gas: 173833) EVM2EVMOnRamp_setNops:test_TooManyNops_Revert() (gas: 190350) -EVM2EVMOnRamp_setNops:test_ZeroAddressCannotBeNop_Revert() (gas: 53617) +EVM2EVMOnRamp_setNops:test_ZeroAddressCannotBeNop_Revert() (gas: 53632) EVM2EVMOnRamp_setTokenTransferFeeConfig:test__setTokenTransferFeeConfig_InvalidDestBytesOverhead_Revert() (gas: 14499) EVM2EVMOnRamp_setTokenTransferFeeConfig:test__setTokenTransferFeeConfig_OnlyCallableByOwnerOrAdmin_Revert() (gas: 14283) EVM2EVMOnRamp_setTokenTransferFeeConfig:test__setTokenTransferFeeConfig_Success() (gas: 84107) EVM2EVMOnRamp_setTokenTransferFeeConfig:test__setTokenTransferFeeConfig_byAdmin_Success() (gas: 17375) -EVM2EVMOnRamp_withdrawNonLinkFees:test_LinkBalanceNotSettled_Revert() (gas: 83035) +EVM2EVMOnRamp_withdrawNonLinkFees:test_LinkBalanceNotSettled_Revert() (gas: 83158) EVM2EVMOnRamp_withdrawNonLinkFees:test_NonOwnerOrAdmin_Revert() (gas: 15275) -EVM2EVMOnRamp_withdrawNonLinkFees:test_SettlingBalance_Success() (gas: 272083) -EVM2EVMOnRamp_withdrawNonLinkFees:test_WithdrawNonLinkFees_Success() (gas: 53458) +EVM2EVMOnRamp_withdrawNonLinkFees:test_SettlingBalance_Success() (gas: 272200) +EVM2EVMOnRamp_withdrawNonLinkFees:test_WithdrawNonLinkFees_Success() (gas: 53482) EVM2EVMOnRamp_withdrawNonLinkFees:test_WithdrawToZeroAddress_Revert() (gas: 12830) EtherSenderReceiverTest_ccipReceive:test_ccipReceive_fallbackToWethTransfer() (gas: 96892) EtherSenderReceiverTest_ccipReceive:test_ccipReceive_happyPath() (gas: 49770) EtherSenderReceiverTest_ccipReceive:test_ccipReceive_wrongToken() (gas: 17423) -EtherSenderReceiverTest_ccipReceive:test_ccipReceive_wrongTokenAmount() (gas: 15716) -EtherSenderReceiverTest_ccipSend:test_ccipSend_reverts_insufficientFee_feeToken() (gas: 99831) -EtherSenderReceiverTest_ccipSend:test_ccipSend_reverts_insufficientFee_native() (gas: 76099) -EtherSenderReceiverTest_ccipSend:test_ccipSend_reverts_insufficientFee_weth() (gas: 99853) -EtherSenderReceiverTest_ccipSend:test_ccipSend_success_feeToken() (gas: 144833) -EtherSenderReceiverTest_ccipSend:test_ccipSend_success_native() (gas: 80262) -EtherSenderReceiverTest_ccipSend:test_ccipSend_success_nativeExcess() (gas: 80449) -EtherSenderReceiverTest_ccipSend:test_ccipSend_success_weth() (gas: 95902) +EtherSenderReceiverTest_ccipReceive:test_ccipReceive_wrongTokenAmount() (gas: 15722) +EtherSenderReceiverTest_ccipSend:test_ccipSend_reverts_insufficientFee_feeToken() (gas: 99837) +EtherSenderReceiverTest_ccipSend:test_ccipSend_reverts_insufficientFee_native() (gas: 76105) +EtherSenderReceiverTest_ccipSend:test_ccipSend_reverts_insufficientFee_weth() (gas: 99859) +EtherSenderReceiverTest_ccipSend:test_ccipSend_success_feeToken() (gas: 144845) +EtherSenderReceiverTest_ccipSend:test_ccipSend_success_native() (gas: 80268) +EtherSenderReceiverTest_ccipSend:test_ccipSend_success_nativeExcess() (gas: 80455) +EtherSenderReceiverTest_ccipSend:test_ccipSend_success_weth() (gas: 95914) EtherSenderReceiverTest_constructor:test_constructor() (gas: 17535) -EtherSenderReceiverTest_getFee:test_getFee() (gas: 27316) +EtherSenderReceiverTest_getFee:test_getFee() (gas: 27328) EtherSenderReceiverTest_validateFeeToken:test_validateFeeToken_reverts_feeToken_tokenAmountNotEqualToMsgValue() (gas: 20363) EtherSenderReceiverTest_validateFeeToken:test_validateFeeToken_valid_feeToken() (gas: 16718) EtherSenderReceiverTest_validateFeeToken:test_validateFeeToken_valid_native() (gas: 16657) EtherSenderReceiverTest_validatedMessage:test_validatedMessage_dataOverwrittenToMsgSender() (gas: 25415) EtherSenderReceiverTest_validatedMessage:test_validatedMessage_emptyDataOverwrittenToMsgSender() (gas: 25265) -EtherSenderReceiverTest_validatedMessage:test_validatedMessage_invalidTokenAmounts() (gas: 17907) +EtherSenderReceiverTest_validatedMessage:test_validatedMessage_invalidTokenAmounts() (gas: 17913) EtherSenderReceiverTest_validatedMessage:test_validatedMessage_tokenOverwrittenToWeth() (gas: 25287) -EtherSenderReceiverTest_validatedMessage:test_validatedMessage_validMessage_extraArgs() (gas: 26316) -FeeQuoter_applyDestChainConfigUpdates:test_InvalidChainFamilySelector_Revert() (gas: 16509) -FeeQuoter_applyDestChainConfigUpdates:test_InvalidDestChainConfigDestChainSelectorEqZero_Revert() (gas: 16423) -FeeQuoter_applyDestChainConfigUpdates:test_applyDestChainConfigUpdatesDefaultTxGasLimitEqZero_Revert() (gas: 16465) -FeeQuoter_applyDestChainConfigUpdates:test_applyDestChainConfigUpdatesDefaultTxGasLimitGtMaxPerMessageGasLimit_Revert() (gas: 39969) +EtherSenderReceiverTest_validatedMessage:test_validatedMessage_validMessage_extraArgs() (gas: 26328) +FeeQuoter_applyDestChainConfigUpdates:test_InvalidChainFamilySelector_Revert() (gas: 16515) +FeeQuoter_applyDestChainConfigUpdates:test_InvalidDestChainConfigDestChainSelectorEqZero_Revert() (gas: 16429) +FeeQuoter_applyDestChainConfigUpdates:test_applyDestChainConfigUpdatesDefaultTxGasLimitEqZero_Revert() (gas: 16471) +FeeQuoter_applyDestChainConfigUpdates:test_applyDestChainConfigUpdatesDefaultTxGasLimitGtMaxPerMessageGasLimit_Revert() (gas: 39975) FeeQuoter_applyDestChainConfigUpdates:test_applyDestChainConfigUpdatesZeroIntput_Success() (gas: 12342) -FeeQuoter_applyDestChainConfigUpdates:test_applyDestChainConfigUpdates_Success() (gas: 135942) -FeeQuoter_applyFeeTokensUpdates:test_ApplyFeeTokensUpdates_Success() (gas: 80117) -FeeQuoter_applyFeeTokensUpdates:test_OnlyCallableByOwner_Revert() (gas: 12615) -FeeQuoter_applyPremiumMultiplierWeiPerEthUpdates:test_OnlyCallableByOwnerOrAdmin_Revert() (gas: 11456) -FeeQuoter_applyPremiumMultiplierWeiPerEthUpdates:test_applyPremiumMultiplierWeiPerEthUpdatesMultipleTokens_Success() (gas: 54236) -FeeQuoter_applyPremiumMultiplierWeiPerEthUpdates:test_applyPremiumMultiplierWeiPerEthUpdatesSingleToken_Success() (gas: 44880) +FeeQuoter_applyDestChainConfigUpdates:test_applyDestChainConfigUpdates_Success() (gas: 135960) +FeeQuoter_applyFeeTokensUpdates:test_ApplyFeeTokensUpdates_Success() (gas: 80127) +FeeQuoter_applyFeeTokensUpdates:test_OnlyCallableByOwner_Revert() (gas: 12621) +FeeQuoter_applyPremiumMultiplierWeiPerEthUpdates:test_OnlyCallableByOwnerOrAdmin_Revert() (gas: 11462) +FeeQuoter_applyPremiumMultiplierWeiPerEthUpdates:test_applyPremiumMultiplierWeiPerEthUpdatesMultipleTokens_Success() (gas: 54242) +FeeQuoter_applyPremiumMultiplierWeiPerEthUpdates:test_applyPremiumMultiplierWeiPerEthUpdatesSingleToken_Success() (gas: 44886) FeeQuoter_applyPremiumMultiplierWeiPerEthUpdates:test_applyPremiumMultiplierWeiPerEthUpdatesZeroInput() (gas: 12280) -FeeQuoter_applyTokenTransferFeeConfigUpdates:test_ApplyTokenTransferFeeConfig_Success() (gas: 86968) +FeeQuoter_applyTokenTransferFeeConfigUpdates:test_ApplyTokenTransferFeeConfig_Success() (gas: 87004) FeeQuoter_applyTokenTransferFeeConfigUpdates:test_ApplyTokenTransferFeeZeroInput() (gas: 13089) FeeQuoter_applyTokenTransferFeeConfigUpdates:test_InvalidDestBytesOverhead_Revert() (gas: 17071) -FeeQuoter_applyTokenTransferFeeConfigUpdates:test_OnlyCallableByOwnerOrAdmin_Revert() (gas: 12246) -FeeQuoter_constructor:test_InvalidLinkTokenEqZeroAddress_Revert() (gas: 106850) -FeeQuoter_constructor:test_InvalidMaxFeeJuelsPerMsg_Revert() (gas: 111200) -FeeQuoter_constructor:test_InvalidStalenessThreshold_Revert() (gas: 111253) -FeeQuoter_constructor:test_Setup_Success() (gas: 5219649) +FeeQuoter_applyTokenTransferFeeConfigUpdates:test_OnlyCallableByOwnerOrAdmin_Revert() (gas: 12252) +FeeQuoter_constructor:test_InvalidLinkTokenEqZeroAddress_Revert() (gas: 106781) +FeeQuoter_constructor:test_InvalidMaxFeeJuelsPerMsg_Revert() (gas: 111131) +FeeQuoter_constructor:test_InvalidStalenessThreshold_Revert() (gas: 111184) +FeeQuoter_constructor:test_Setup_Success() (gas: 5178579) FeeQuoter_convertTokenAmount:test_ConvertTokenAmount_Success() (gas: 68377) -FeeQuoter_convertTokenAmount:test_LinkTokenNotSupported_Revert() (gas: 29040) -FeeQuoter_getDataAvailabilityCost:test_EmptyMessageCalculatesDataAvailabilityCost_Success() (gas: 94441) +FeeQuoter_convertTokenAmount:test_LinkTokenNotSupported_Revert() (gas: 29076) +FeeQuoter_getDataAvailabilityCost:test_EmptyMessageCalculatesDataAvailabilityCost_Success() (gas: 94447) FeeQuoter_getDataAvailabilityCost:test_SimpleMessageCalculatesDataAvailabilityCostUnsupportedDestChainSelector_Success() (gas: 14650) FeeQuoter_getDataAvailabilityCost:test_SimpleMessageCalculatesDataAvailabilityCost_Success() (gas: 20482) FeeQuoter_getTokenAndGasPrices:test_GetFeeTokenAndGasPrices_Success() (gas: 68277) FeeQuoter_getTokenAndGasPrices:test_StaleGasPrice_Revert() (gas: 16838) FeeQuoter_getTokenAndGasPrices:test_UnsupportedChain_Revert() (gas: 16140) -FeeQuoter_getTokenAndGasPrices:test_ZeroGasPrice_Success() (gas: 43584) +FeeQuoter_getTokenAndGasPrices:test_ZeroGasPrice_Success() (gas: 43590) FeeQuoter_getTokenPrice:test_GetTokenPriceFromFeed_Success() (gas: 66117) FeeQuoter_getTokenPrices:test_GetTokenPrices_Success() (gas: 78256) -FeeQuoter_getTokenTransferCost:test_CustomTokenBpsFee_Success() (gas: 39094) -FeeQuoter_getTokenTransferCost:test_FeeTokenBpsFee_Success() (gas: 34730) -FeeQuoter_getTokenTransferCost:test_LargeTokenTransferChargesMaxFeeAndGas_Success() (gas: 27804) -FeeQuoter_getTokenTransferCost:test_MixedTokenTransferFee_Success() (gas: 96739) +FeeQuoter_getTokenTransferCost:test_CustomTokenBpsFee_Success() (gas: 39106) +FeeQuoter_getTokenTransferCost:test_FeeTokenBpsFee_Success() (gas: 34742) +FeeQuoter_getTokenTransferCost:test_LargeTokenTransferChargesMaxFeeAndGas_Success() (gas: 27816) +FeeQuoter_getTokenTransferCost:test_MixedTokenTransferFee_Success() (gas: 96829) FeeQuoter_getTokenTransferCost:test_NoTokenTransferChargesZeroFee_Success() (gas: 20390) -FeeQuoter_getTokenTransferCost:test_SmallTokenTransferChargesMinFeeAndGas_Success() (gas: 27679) -FeeQuoter_getTokenTransferCost:test_ZeroAmountTokenTransferChargesMinFeeAndGas_Success() (gas: 27635) -FeeQuoter_getTokenTransferCost:test_ZeroFeeConfigChargesMinFee_Success() (gas: 40064) -FeeQuoter_getTokenTransferCost:test_getTokenTransferCost_selfServeUsesDefaults_Success() (gas: 29347) +FeeQuoter_getTokenTransferCost:test_SmallTokenTransferChargesMinFeeAndGas_Success() (gas: 27691) +FeeQuoter_getTokenTransferCost:test_ZeroAmountTokenTransferChargesMinFeeAndGas_Success() (gas: 27647) +FeeQuoter_getTokenTransferCost:test_ZeroFeeConfigChargesMinFee_Success() (gas: 40076) +FeeQuoter_getTokenTransferCost:test_getTokenTransferCost_selfServeUsesDefaults_Success() (gas: 29359) FeeQuoter_getValidatedFee:test_DestinationChainNotEnabled_Revert() (gas: 18210) FeeQuoter_getValidatedFee:test_EmptyMessage_Success() (gas: 81749) -FeeQuoter_getValidatedFee:test_EnforceOutOfOrder_Revert() (gas: 52218) +FeeQuoter_getValidatedFee:test_EnforceOutOfOrder_Revert() (gas: 52224) FeeQuoter_getValidatedFee:test_HighGasMessage_Success() (gas: 238167) -FeeQuoter_getValidatedFee:test_InvalidEVMAddress_Revert() (gas: 22420) -FeeQuoter_getValidatedFee:test_MessageGasLimitTooHigh_Revert() (gas: 29646) +FeeQuoter_getValidatedFee:test_InvalidEVMAddress_Revert() (gas: 22426) +FeeQuoter_getValidatedFee:test_MessageGasLimitTooHigh_Revert() (gas: 29652) FeeQuoter_getValidatedFee:test_MessageTooLarge_Revert() (gas: 100163) -FeeQuoter_getValidatedFee:test_MessageWithDataAndTokenTransfer_Success() (gas: 140577) -FeeQuoter_getValidatedFee:test_NotAFeeToken_Revert() (gas: 21073) -FeeQuoter_getValidatedFee:test_SingleTokenMessage_Success() (gas: 112282) +FeeQuoter_getValidatedFee:test_MessageWithDataAndTokenTransfer_Success() (gas: 140673) +FeeQuoter_getValidatedFee:test_NotAFeeToken_Revert() (gas: 21079) +FeeQuoter_getValidatedFee:test_SingleTokenMessage_Success() (gas: 112330) FeeQuoter_getValidatedFee:test_TooManyTokens_Revert() (gas: 22562) FeeQuoter_getValidatedFee:test_ZeroDataAvailabilityMultiplier_Success() (gas: 62255) -FeeQuoter_getValidatedTokenPrice:test_GetValidatedTokenPriceFromFeedErc20Above18Decimals_Success() (gas: 2078733) -FeeQuoter_getValidatedTokenPrice:test_GetValidatedTokenPriceFromFeedErc20Below18Decimals_Success() (gas: 2078691) -FeeQuoter_getValidatedTokenPrice:test_GetValidatedTokenPriceFromFeedFeedAt0Decimals_Success() (gas: 2058810) -FeeQuoter_getValidatedTokenPrice:test_GetValidatedTokenPriceFromFeedFeedAt18Decimals_Success() (gas: 2078465) -FeeQuoter_getValidatedTokenPrice:test_GetValidatedTokenPriceFromFeedFlippedDecimals_Success() (gas: 2078669) -FeeQuoter_getValidatedTokenPrice:test_GetValidatedTokenPriceFromFeedMaxInt224Value_Success() (gas: 2078481) +FeeQuoter_getValidatedTokenPrice:test_GetValidatedTokenPriceFromFeedErc20Above18Decimals_Success() (gas: 2068728) +FeeQuoter_getValidatedTokenPrice:test_GetValidatedTokenPriceFromFeedErc20Below18Decimals_Success() (gas: 2068686) +FeeQuoter_getValidatedTokenPrice:test_GetValidatedTokenPriceFromFeedFeedAt0Decimals_Success() (gas: 2048805) +FeeQuoter_getValidatedTokenPrice:test_GetValidatedTokenPriceFromFeedFeedAt18Decimals_Success() (gas: 2068460) +FeeQuoter_getValidatedTokenPrice:test_GetValidatedTokenPriceFromFeedFlippedDecimals_Success() (gas: 2068664) +FeeQuoter_getValidatedTokenPrice:test_GetValidatedTokenPriceFromFeedMaxInt224Value_Success() (gas: 2068476) FeeQuoter_getValidatedTokenPrice:test_GetValidatedTokenPriceFromFeedOverStalenessPeriod_Success() (gas: 64412) FeeQuoter_getValidatedTokenPrice:test_GetValidatedTokenPriceFromFeed_Success() (gas: 64292) FeeQuoter_getValidatedTokenPrice:test_GetValidatedTokenPrice_Success() (gas: 58855) -FeeQuoter_getValidatedTokenPrice:test_OverflowFeedPrice_Revert() (gas: 2078166) +FeeQuoter_getValidatedTokenPrice:test_OverflowFeedPrice_Revert() (gas: 2068167) FeeQuoter_getValidatedTokenPrice:test_StaleFeeToken_Success() (gas: 61692) -FeeQuoter_getValidatedTokenPrice:test_TokenNotSupportedFeed_Revert() (gas: 116268) -FeeQuoter_getValidatedTokenPrice:test_TokenNotSupported_Revert() (gas: 13986) -FeeQuoter_getValidatedTokenPrice:test_UnderflowFeedPrice_Revert() (gas: 2076843) -FeeQuoter_onReport:test_OnReport_StaleUpdate_Revert() (gas: 43336) -FeeQuoter_onReport:test_onReport_InvalidForwarder_Reverts() (gas: 23306) -FeeQuoter_onReport:test_onReport_Success() (gas: 79834) -FeeQuoter_onReport:test_onReport_UnsupportedToken_Reverts() (gas: 26692) +FeeQuoter_getValidatedTokenPrice:test_TokenNotSupportedFeed_Revert() (gas: 116292) +FeeQuoter_getValidatedTokenPrice:test_TokenNotSupported_Revert() (gas: 14004) +FeeQuoter_getValidatedTokenPrice:test_UnderflowFeedPrice_Revert() (gas: 2066844) +FeeQuoter_onReport:test_OnReport_StaleUpdate_Revert() (gas: 43342) +FeeQuoter_onReport:test_onReport_InvalidForwarder_Reverts() (gas: 23312) +FeeQuoter_onReport:test_onReport_Success() (gas: 79840) +FeeQuoter_onReport:test_onReport_UnsupportedToken_Reverts() (gas: 26704) FeeQuoter_parseEVMExtraArgsFromBytes:test_EVMExtraArgsDefault_Success() (gas: 17191) FeeQuoter_parseEVMExtraArgsFromBytes:test_EVMExtraArgsEnforceOutOfOrder_Revert() (gas: 21302) FeeQuoter_parseEVMExtraArgsFromBytes:test_EVMExtraArgsGasLimitTooHigh_Revert() (gas: 18399) @@ -399,545 +399,546 @@ FeeQuoter_parseEVMExtraArgsFromBytes:test_EVMExtraArgsInvalidExtraArgsTag_Revert FeeQuoter_parseEVMExtraArgsFromBytes:test_EVMExtraArgsV1_Success() (gas: 18291) FeeQuoter_parseEVMExtraArgsFromBytes:test_EVMExtraArgsV2_Success() (gas: 18407) FeeQuoter_processMessageArgs:test_InvalidExtraArgs_Revert() (gas: 18339) -FeeQuoter_processMessageArgs:test_MalformedEVMExtraArgs_Revert() (gas: 18885) +FeeQuoter_processMessageArgs:test_MalformedEVMExtraArgs_Revert() (gas: 18891) FeeQuoter_processMessageArgs:test_MessageFeeTooHigh_Revert() (gas: 16404) -FeeQuoter_processMessageArgs:test_WitEVMExtraArgsV2_Success() (gas: 26277) +FeeQuoter_processMessageArgs:test_WitEVMExtraArgsV2_Success() (gas: 26295) FeeQuoter_processMessageArgs:test_WithConvertedTokenAmount_Success() (gas: 27695) -FeeQuoter_processMessageArgs:test_WithEVMExtraArgsV1_Success() (gas: 25889) -FeeQuoter_processMessageArgs:test_WithEmptyEVMExtraArgs_Success() (gas: 23704) +FeeQuoter_processMessageArgs:test_WithEVMExtraArgsV1_Success() (gas: 25901) +FeeQuoter_processMessageArgs:test_WithEmptyEVMExtraArgs_Success() (gas: 23716) FeeQuoter_processMessageArgs:test_WithLinkTokenAmount_Success() (gas: 17353) FeeQuoter_updatePrices:test_OnlyCallableByUpdater_Revert() (gas: 12114) FeeQuoter_updatePrices:test_OnlyGasPrice_Success() (gas: 23599) FeeQuoter_updatePrices:test_OnlyTokenPrice_Success() (gas: 28428) -FeeQuoter_updatePrices:test_UpdatableByAuthorizedCaller_Success() (gas: 74260) +FeeQuoter_updatePrices:test_UpdatableByAuthorizedCaller_Success() (gas: 74269) FeeQuoter_updatePrices:test_UpdateMultiplePrices_Success() (gas: 144784) FeeQuoter_updateTokenPriceFeeds:test_FeedNotUpdated() (gas: 50523) FeeQuoter_updateTokenPriceFeeds:test_FeedUnset_Success() (gas: 63200) -FeeQuoter_updateTokenPriceFeeds:test_FeedUpdatedByNonOwner_Revert() (gas: 19938) +FeeQuoter_updateTokenPriceFeeds:test_FeedUpdatedByNonOwner_Revert() (gas: 19944) FeeQuoter_updateTokenPriceFeeds:test_MultipleFeedUpdate_Success() (gas: 88920) FeeQuoter_updateTokenPriceFeeds:test_SingleFeedUpdate_Success() (gas: 50795) FeeQuoter_updateTokenPriceFeeds:test_ZeroFeeds_Success() (gas: 12296) -FeeQuoter_validateDestFamilyAddress:test_InvalidEVMAddressEncodePacked_Revert() (gas: 10622) -FeeQuoter_validateDestFamilyAddress:test_InvalidEVMAddressPrecompiles_Revert() (gas: 3967790) -FeeQuoter_validateDestFamilyAddress:test_InvalidEVMAddress_Revert() (gas: 10806) +FeeQuoter_validateDestFamilyAddress:test_InvalidEVMAddressEncodePacked_Revert() (gas: 10634) +FeeQuoter_validateDestFamilyAddress:test_InvalidEVMAddressPrecompiles_Revert() (gas: 3980078) +FeeQuoter_validateDestFamilyAddress:test_InvalidEVMAddress_Revert() (gas: 10818) FeeQuoter_validateDestFamilyAddress:test_ValidEVMAddress_Success() (gas: 6710) FeeQuoter_validateDestFamilyAddress:test_ValidNonEVMAddress_Success() (gas: 6484) -FeeQuoter_validatePoolReturnData:test_InvalidEVMAddressDestToken_Revert() (gas: 42769) -FeeQuoter_validatePoolReturnData:test_ProcessPoolReturnData_Success() (gas: 73306) -FeeQuoter_validatePoolReturnData:test_SourceTokenDataTooLarge_Revert() (gas: 107855) -FeeQuoter_validatePoolReturnData:test_TokenAmountArraysMismatching_Revert() (gas: 40106) -HybridUSDCTokenPoolMigrationTests:test_LockOrBurn_LocKReleaseMechanism_then_switchToPrimary_Success() (gas: 208384) -HybridUSDCTokenPoolMigrationTests:test_LockOrBurn_PrimaryMechanism_Success() (gas: 135502) +FeeQuoter_validatePoolReturnData:test_InvalidEVMAddressDestToken_Revert() (gas: 42781) +FeeQuoter_validatePoolReturnData:test_ProcessPoolReturnData_Success() (gas: 73330) +FeeQuoter_validatePoolReturnData:test_SourceTokenDataTooLarge_Revert() (gas: 107927) +FeeQuoter_validatePoolReturnData:test_TokenAmountArraysMismatching_Revert() (gas: 40112) +HybridUSDCTokenPoolMigrationTests:test_LockOrBurn_LocKReleaseMechanism_then_switchToPrimary_Success() (gas: 208394) +HybridUSDCTokenPoolMigrationTests:test_LockOrBurn_PrimaryMechanism_Success() (gas: 135507) HybridUSDCTokenPoolMigrationTests:test_LockOrBurn_WhileMigrationPause_Revert() (gas: 106651) -HybridUSDCTokenPoolMigrationTests:test_LockOrBurn_onLockReleaseMechanism_Success() (gas: 143944) -HybridUSDCTokenPoolMigrationTests:test_MintOrRelease_OnLockReleaseMechanism_Success() (gas: 230450) -HybridUSDCTokenPoolMigrationTests:test_MintOrRelease_OnLockReleaseMechanism_then_switchToPrimary_Success() (gas: 438517) -HybridUSDCTokenPoolMigrationTests:test_MintOrRelease_incomingMessageWithPrimaryMechanism() (gas: 270081) -HybridUSDCTokenPoolMigrationTests:test_burnLockedUSDC_invalidPermissions_Revert() (gas: 39130) +HybridUSDCTokenPoolMigrationTests:test_LockOrBurn_onLockReleaseMechanism_Success() (gas: 143950) +HybridUSDCTokenPoolMigrationTests:test_MintOrRelease_OnLockReleaseMechanism_Success() (gas: 230474) +HybridUSDCTokenPoolMigrationTests:test_MintOrRelease_OnLockReleaseMechanism_then_switchToPrimary_Success() (gas: 438559) +HybridUSDCTokenPoolMigrationTests:test_MintOrRelease_incomingMessageWithPrimaryMechanism() (gas: 270086) +HybridUSDCTokenPoolMigrationTests:test_burnLockedUSDC_invalidPermissions_Revert() (gas: 39154) HybridUSDCTokenPoolMigrationTests:test_cancelExistingCCTPMigrationProposal() (gas: 31181) HybridUSDCTokenPoolMigrationTests:test_cannotCancelANonExistentMigrationProposal() (gas: 12628) -HybridUSDCTokenPoolMigrationTests:test_cannotModifyLiquidityWithoutPermissions_Revert() (gas: 17158) -HybridUSDCTokenPoolMigrationTests:test_lockOrBurn_then_BurnInCCTPMigration_Success() (gas: 252682) -HybridUSDCTokenPoolMigrationTests:test_transferLiquidity_Success() (gas: 157130) -HybridUSDCTokenPoolMigrationTests:test_withdrawLiquidity_Success() (gas: 140828) -HybridUSDCTokenPoolTests:test_LockOrBurn_LocKReleaseMechanism_then_switchToPrimary_Success() (gas: 208164) -HybridUSDCTokenPoolTests:test_LockOrBurn_PrimaryMechanism_Success() (gas: 135396) +HybridUSDCTokenPoolMigrationTests:test_cannotModifyLiquidityWithoutPermissions_Revert() (gas: 17176) +HybridUSDCTokenPoolMigrationTests:test_lockOrBurn_then_BurnInCCTPMigration_Success() (gas: 252706) +HybridUSDCTokenPoolMigrationTests:test_transferLiquidity_Success() (gas: 157154) +HybridUSDCTokenPoolMigrationTests:test_withdrawLiquidity_Success() (gas: 140852) +HybridUSDCTokenPoolTests:test_LockOrBurn_LocKReleaseMechanism_then_switchToPrimary_Success() (gas: 208174) +HybridUSDCTokenPoolTests:test_LockOrBurn_PrimaryMechanism_Success() (gas: 135401) HybridUSDCTokenPoolTests:test_LockOrBurn_WhileMigrationPause_Revert() (gas: 106628) -HybridUSDCTokenPoolTests:test_LockOrBurn_onLockReleaseMechanism_Success() (gas: 143865) -HybridUSDCTokenPoolTests:test_MintOrRelease_OnLockReleaseMechanism_Success() (gas: 230383) -HybridUSDCTokenPoolTests:test_MintOrRelease_OnLockReleaseMechanism_then_switchToPrimary_Success() (gas: 438318) -HybridUSDCTokenPoolTests:test_MintOrRelease_incomingMessageWithPrimaryMechanism() (gas: 270011) -HybridUSDCTokenPoolTests:test_withdrawLiquidity_Success() (gas: 140783) -LockReleaseTokenPoolAndProxy_setRebalancer:test_SetRebalancer_Revert() (gas: 10977) -LockReleaseTokenPoolAndProxy_setRebalancer:test_SetRebalancer_Success() (gas: 17998) -LockReleaseTokenPoolPoolAndProxy_canAcceptLiquidity:test_CanAcceptLiquidity_Success() (gas: 3315195) -LockReleaseTokenPoolPoolAndProxy_provideLiquidity:test_LiquidityNotAccepted_Revert() (gas: 3311601) -LockReleaseTokenPoolPoolAndProxy_provideLiquidity:test_Unauthorized_Revert() (gas: 11405) -LockReleaseTokenPoolPoolAndProxy_supportsInterface:test_SupportsInterface_Success() (gas: 9977) -LockReleaseTokenPoolPoolAndProxy_withdrawalLiquidity:test_InsufficientLiquidity_Revert() (gas: 60060) +HybridUSDCTokenPoolTests:test_LockOrBurn_onLockReleaseMechanism_Success() (gas: 143871) +HybridUSDCTokenPoolTests:test_MintOrRelease_OnLockReleaseMechanism_Success() (gas: 230419) +HybridUSDCTokenPoolTests:test_MintOrRelease_OnLockReleaseMechanism_then_switchToPrimary_Success() (gas: 438372) +HybridUSDCTokenPoolTests:test_MintOrRelease_incomingMessageWithPrimaryMechanism() (gas: 270016) +HybridUSDCTokenPoolTests:test_withdrawLiquidity_Success() (gas: 140825) +LockReleaseTokenPoolAndProxy_setRebalancer:test_SetRebalancer_Revert() (gas: 10983) +LockReleaseTokenPoolAndProxy_setRebalancer:test_SetRebalancer_Success() (gas: 18010) +LockReleaseTokenPoolPoolAndProxy_canAcceptLiquidity:test_CanAcceptLiquidity_Success() (gas: 3195288) +LockReleaseTokenPoolPoolAndProxy_provideLiquidity:test_LiquidityNotAccepted_Revert() (gas: 3191694) +LockReleaseTokenPoolPoolAndProxy_provideLiquidity:test_Unauthorized_Revert() (gas: 11417) +LockReleaseTokenPoolPoolAndProxy_supportsInterface:test_SupportsInterface_Success() (gas: 10124) +LockReleaseTokenPoolPoolAndProxy_withdrawalLiquidity:test_InsufficientLiquidity_Revert() (gas: 60081) LockReleaseTokenPoolPoolAndProxy_withdrawalLiquidity:test_Unauthorized_Revert() (gas: 11386) -LockReleaseTokenPool_canAcceptLiquidity:test_CanAcceptLiquidity_Success() (gas: 3071906) -LockReleaseTokenPool_lockOrBurn:test_LockOrBurnWithAllowList_Revert() (gas: 29960) -LockReleaseTokenPool_lockOrBurn:test_LockOrBurnWithAllowList_Success() (gas: 79868) -LockReleaseTokenPool_lockOrBurn:test_PoolBurnRevertNotHealthy_Revert() (gas: 59479) -LockReleaseTokenPool_provideLiquidity:test_LiquidityNotAccepted_Revert() (gas: 3068356) -LockReleaseTokenPool_provideLiquidity:test_Unauthorized_Revert() (gas: 11405) -LockReleaseTokenPool_releaseOrMint:test_ChainNotAllowed_Revert() (gas: 72666) -LockReleaseTokenPool_releaseOrMint:test_PoolMintNotHealthy_Revert() (gas: 56211) -LockReleaseTokenPool_releaseOrMint:test_ReleaseOrMint_Success() (gas: 225296) -LockReleaseTokenPool_setRebalancer:test_SetRebalancer_Revert() (gas: 10999) +LockReleaseTokenPool_canAcceptLiquidity:test_CanAcceptLiquidity_Success() (gas: 2982884) +LockReleaseTokenPool_lockOrBurn:test_LockOrBurnWithAllowList_Revert() (gas: 29972) +LockReleaseTokenPool_lockOrBurn:test_LockOrBurnWithAllowList_Success() (gas: 79880) +LockReleaseTokenPool_lockOrBurn:test_PoolBurnRevertNotHealthy_Revert() (gas: 59491) +LockReleaseTokenPool_provideLiquidity:test_LiquidityNotAccepted_Revert() (gas: 2979334) +LockReleaseTokenPool_provideLiquidity:test_Unauthorized_Revert() (gas: 11417) +LockReleaseTokenPool_releaseOrMint:test_ChainNotAllowed_Revert() (gas: 72680) +LockReleaseTokenPool_releaseOrMint:test_PoolMintNotHealthy_Revert() (gas: 56223) +LockReleaseTokenPool_releaseOrMint:test_ReleaseOrMint_Success() (gas: 225332) +LockReleaseTokenPool_setRebalancer:test_SetRebalancer_Revert() (gas: 11005) LockReleaseTokenPool_setRebalancer:test_SetRebalancer_Success() (gas: 18064) -LockReleaseTokenPool_supportsInterface:test_SupportsInterface_Success() (gas: 9977) -LockReleaseTokenPool_transferLiquidity:test_transferLiquidity_Success() (gas: 83177) +LockReleaseTokenPool_supportsInterface:test_SupportsInterface_Success() (gas: 10124) +LockReleaseTokenPool_transferLiquidity:test_transferLiquidity_Success() (gas: 83192) LockReleaseTokenPool_transferLiquidity:test_transferLiquidity_transferTooMuch_Revert() (gas: 55899) -LockReleaseTokenPool_withdrawalLiquidity:test_InsufficientLiquidity_Revert() (gas: 60060) +LockReleaseTokenPool_withdrawalLiquidity:test_InsufficientLiquidity_Revert() (gas: 60081) LockReleaseTokenPool_withdrawalLiquidity:test_Unauthorized_Revert() (gas: 11386) -LockRelease_setRateLimitAdmin:test_SetRateLimitAdmin_Revert() (gas: 11036) -LockRelease_setRateLimitAdmin:test_SetRateLimitAdmin_Success() (gas: 35030) -MerkleMultiProofTest:test_CVE_2023_34459() (gas: 5454) -MerkleMultiProofTest:test_EmptyLeaf_Revert() (gas: 3555) +LockRelease_setRateLimitAdmin:test_SetRateLimitAdmin_Revert() (gas: 11048) +LockRelease_setRateLimitAdmin:test_SetRateLimitAdmin_Success() (gas: 35036) +MerkleMultiProofTest:test_CVE_2023_34459() (gas: 5460) +MerkleMultiProofTest:test_EmptyLeaf_Revert() (gas: 3573) MerkleMultiProofTest:test_MerkleRoot256() (gas: 394879) MerkleMultiProofTest:test_MerkleRootSingleLeaf_Success() (gas: 3649) MerkleMultiProofTest:test_SpecSync_gas() (gas: 34123) -MockRouterTest:test_ccipSendWithInsufficientNativeTokens_Revert() (gas: 34019) -MockRouterTest:test_ccipSendWithInvalidMsgValue_Revert() (gas: 60812) -MockRouterTest:test_ccipSendWithLinkFeeTokenAndValidMsgValue_Success() (gas: 126540) -MockRouterTest:test_ccipSendWithLinkFeeTokenbutInsufficientAllowance_Revert() (gas: 63419) +MockRouterTest:test_ccipSendWithInsufficientNativeTokens_Revert() (gas: 34025) +MockRouterTest:test_ccipSendWithInvalidMsgValue_Revert() (gas: 60830) +MockRouterTest:test_ccipSendWithLinkFeeTokenAndValidMsgValue_Success() (gas: 126552) +MockRouterTest:test_ccipSendWithLinkFeeTokenbutInsufficientAllowance_Revert() (gas: 63431) MockRouterTest:test_ccipSendWithSufficientNativeFeeTokens_Success() (gas: 44012) MultiAggregateRateLimiter_applyRateLimiterConfigUpdates:test_MultipleConfigsBothLanes_Success() (gas: 132457) MultiAggregateRateLimiter_applyRateLimiterConfigUpdates:test_MultipleConfigs_Success() (gas: 313023) -MultiAggregateRateLimiter_applyRateLimiterConfigUpdates:test_OnlyCallableByOwner_Revert() (gas: 17750) +MultiAggregateRateLimiter_applyRateLimiterConfigUpdates:test_OnlyCallableByOwner_Revert() (gas: 17756) MultiAggregateRateLimiter_applyRateLimiterConfigUpdates:test_SingleConfigOutbound_Success() (gas: 76030) MultiAggregateRateLimiter_applyRateLimiterConfigUpdates:test_SingleConfig_Success() (gas: 75946) MultiAggregateRateLimiter_applyRateLimiterConfigUpdates:test_UpdateExistingConfigWithNoDifference_Success() (gas: 38436) MultiAggregateRateLimiter_applyRateLimiterConfigUpdates:test_UpdateExistingConfig_Success() (gas: 53473) MultiAggregateRateLimiter_applyRateLimiterConfigUpdates:test_ZeroChainSelector_Revert() (gas: 17046) MultiAggregateRateLimiter_applyRateLimiterConfigUpdates:test_ZeroConfigs_Success() (gas: 12361) -MultiAggregateRateLimiter_constructor:test_ConstructorNoAuthorizedCallers_Success() (gas: 2050112) -MultiAggregateRateLimiter_constructor:test_Constructor_Success() (gas: 2166413) +MultiAggregateRateLimiter_constructor:test_ConstructorNoAuthorizedCallers_Success() (gas: 2050118) +MultiAggregateRateLimiter_constructor:test_Constructor_Success() (gas: 2166419) MultiAggregateRateLimiter_getTokenBucket:test_GetTokenBucket_Success() (gas: 30404) -MultiAggregateRateLimiter_getTokenBucket:test_Refill_Success() (gas: 47673) +MultiAggregateRateLimiter_getTokenBucket:test_Refill_Success() (gas: 47679) MultiAggregateRateLimiter_getTokenBucket:test_TimeUnderflow_Revert() (gas: 15863) -MultiAggregateRateLimiter_getTokenValue:test_GetTokenValue_Success() (gas: 17459) -MultiAggregateRateLimiter_getTokenValue:test_NoTokenPrice_Reverts() (gas: 21354) -MultiAggregateRateLimiter_onInboundMessage:test_ValidateMessageFromUnauthorizedCaller_Revert() (gas: 14533) -MultiAggregateRateLimiter_onInboundMessage:test_ValidateMessageWithDifferentTokensOnDifferentChains_Success() (gas: 209639) -MultiAggregateRateLimiter_onInboundMessage:test_ValidateMessageWithDisabledRateLimitToken_Success() (gas: 58270) -MultiAggregateRateLimiter_onInboundMessage:test_ValidateMessageWithNoTokens_Success() (gas: 17599) -MultiAggregateRateLimiter_onInboundMessage:test_ValidateMessageWithRateLimitDisabled_Success() (gas: 45006) -MultiAggregateRateLimiter_onInboundMessage:test_ValidateMessageWithRateLimitExceeded_Revert() (gas: 46166) -MultiAggregateRateLimiter_onInboundMessage:test_ValidateMessageWithRateLimitReset_Success() (gas: 76036) -MultiAggregateRateLimiter_onInboundMessage:test_ValidateMessageWithTokensOnDifferentChains_Success() (gas: 307711) -MultiAggregateRateLimiter_onInboundMessage:test_ValidateMessageWithTokens_Success() (gas: 50358) +MultiAggregateRateLimiter_getTokenValue:test_GetTokenValue_Success() (gas: 17465) +MultiAggregateRateLimiter_getTokenValue:test_NoTokenPrice_Reverts() (gas: 21360) +MultiAggregateRateLimiter_onInboundMessage:test_ValidateMessageFromUnauthorizedCaller_Revert() (gas: 14539) +MultiAggregateRateLimiter_onInboundMessage:test_ValidateMessageWithDifferentTokensOnDifferentChains_Success() (gas: 209717) +MultiAggregateRateLimiter_onInboundMessage:test_ValidateMessageWithDisabledRateLimitToken_Success() (gas: 58293) +MultiAggregateRateLimiter_onInboundMessage:test_ValidateMessageWithNoTokens_Success() (gas: 17605) +MultiAggregateRateLimiter_onInboundMessage:test_ValidateMessageWithRateLimitDisabled_Success() (gas: 45057) +MultiAggregateRateLimiter_onInboundMessage:test_ValidateMessageWithRateLimitExceeded_Revert() (gas: 46184) +MultiAggregateRateLimiter_onInboundMessage:test_ValidateMessageWithRateLimitReset_Success() (gas: 76162) +MultiAggregateRateLimiter_onInboundMessage:test_ValidateMessageWithTokensOnDifferentChains_Success() (gas: 307789) +MultiAggregateRateLimiter_onInboundMessage:test_ValidateMessageWithTokens_Success() (gas: 50381) MultiAggregateRateLimiter_onOutboundMessage:test_RateLimitValueDifferentLanes_Success() (gas: 1073669836) MultiAggregateRateLimiter_onOutboundMessage:test_ValidateMessageWithNoTokens_Success() (gas: 19158) MultiAggregateRateLimiter_onOutboundMessage:test_onOutboundMessage_ValidateMessageFromUnauthorizedCaller_Revert() (gas: 15829) MultiAggregateRateLimiter_onOutboundMessage:test_onOutboundMessage_ValidateMessageWithDifferentTokensOnDifferentChains_Success() (gas: 209483) MultiAggregateRateLimiter_onOutboundMessage:test_onOutboundMessage_ValidateMessageWithDisabledRateLimitToken_Success() (gas: 60053) -MultiAggregateRateLimiter_onOutboundMessage:test_onOutboundMessage_ValidateMessageWithRateLimitDisabled_Success() (gas: 46818) +MultiAggregateRateLimiter_onOutboundMessage:test_onOutboundMessage_ValidateMessageWithRateLimitDisabled_Success() (gas: 46824) MultiAggregateRateLimiter_onOutboundMessage:test_onOutboundMessage_ValidateMessageWithRateLimitExceeded_Revert() (gas: 47987) -MultiAggregateRateLimiter_onOutboundMessage:test_onOutboundMessage_ValidateMessageWithRateLimitReset_Success() (gas: 77293) +MultiAggregateRateLimiter_onOutboundMessage:test_onOutboundMessage_ValidateMessageWithRateLimitReset_Success() (gas: 77305) MultiAggregateRateLimiter_onOutboundMessage:test_onOutboundMessage_ValidateMessageWithTokensOnDifferentChains_Success() (gas: 307781) MultiAggregateRateLimiter_onOutboundMessage:test_onOutboundMessage_ValidateMessageWithTokens_Success() (gas: 52163) -MultiAggregateRateLimiter_setFeeQuoter:test_OnlyOwner_Revert() (gas: 11325) +MultiAggregateRateLimiter_setFeeQuoter:test_OnlyOwner_Revert() (gas: 11331) MultiAggregateRateLimiter_setFeeQuoter:test_Owner_Success() (gas: 19072) MultiAggregateRateLimiter_setFeeQuoter:test_ZeroAddress_Revert() (gas: 10597) -MultiAggregateRateLimiter_updateRateLimitTokens:test_NonOwner_Revert() (gas: 18800) +MultiAggregateRateLimiter_updateRateLimitTokens:test_NonOwner_Revert() (gas: 18806) MultiAggregateRateLimiter_updateRateLimitTokens:test_UpdateRateLimitTokensMultipleChains_Success() (gas: 279944) MultiAggregateRateLimiter_updateRateLimitTokens:test_UpdateRateLimitTokensSingleChain_Success() (gas: 254495) -MultiAggregateRateLimiter_updateRateLimitTokens:test_UpdateRateLimitTokens_AddsAndRemoves_Success() (gas: 204465) -MultiAggregateRateLimiter_updateRateLimitTokens:test_UpdateRateLimitTokens_RemoveNonExistentToken_Success() (gas: 28703) +MultiAggregateRateLimiter_updateRateLimitTokens:test_UpdateRateLimitTokens_AddsAndRemoves_Success() (gas: 204470) +MultiAggregateRateLimiter_updateRateLimitTokens:test_UpdateRateLimitTokens_RemoveNonExistentToken_Success() (gas: 28709) MultiAggregateRateLimiter_updateRateLimitTokens:test_ZeroDestToken_Revert() (gas: 18279) MultiAggregateRateLimiter_updateRateLimitTokens:test_ZeroSourceToken_Revert() (gas: 18208) MultiOCR3Base_setOCR3Configs:test_FMustBePositive_Revert() (gas: 59255) -MultiOCR3Base_setOCR3Configs:test_FTooHigh_Revert() (gas: 43629) -MultiOCR3Base_setOCR3Configs:test_RepeatSignerAddress_Revert() (gas: 283636) -MultiOCR3Base_setOCR3Configs:test_RepeatTransmitterAddress_Revert() (gas: 422261) -MultiOCR3Base_setOCR3Configs:test_SetConfigIgnoreSigners_Success() (gas: 511281) -MultiOCR3Base_setOCR3Configs:test_SetConfigWithSigners_Success() (gas: 828440) -MultiOCR3Base_setOCR3Configs:test_SetConfigWithoutSigners_Success() (gas: 456886) +MultiOCR3Base_setOCR3Configs:test_FTooHigh_Revert() (gas: 43632) +MultiOCR3Base_setOCR3Configs:test_RepeatSignerAddress_Revert() (gas: 283639) +MultiOCR3Base_setOCR3Configs:test_RepeatTransmitterAddress_Revert() (gas: 422264) +MultiOCR3Base_setOCR3Configs:test_SetConfigIgnoreSigners_Success() (gas: 511308) +MultiOCR3Base_setOCR3Configs:test_SetConfigWithSigners_Success() (gas: 828467) +MultiOCR3Base_setOCR3Configs:test_SetConfigWithoutSigners_Success() (gas: 456913) MultiOCR3Base_setOCR3Configs:test_SetConfigsZeroInput_Success() (gas: 12382) -MultiOCR3Base_setOCR3Configs:test_SetMultipleConfigs_Success() (gas: 2140159) -MultiOCR3Base_setOCR3Configs:test_SignerCannotBeZeroAddress_Revert() (gas: 141717) -MultiOCR3Base_setOCR3Configs:test_StaticConfigChange_Revert() (gas: 807340) -MultiOCR3Base_setOCR3Configs:test_TooManySigners_Revert() (gas: 158799) -MultiOCR3Base_setOCR3Configs:test_TooManyTransmitters_Revert() (gas: 112293) -MultiOCR3Base_setOCR3Configs:test_TransmitterCannotBeZeroAddress_Revert() (gas: 254083) -MultiOCR3Base_setOCR3Configs:test_UpdateConfigSigners_Success() (gas: 860224) -MultiOCR3Base_setOCR3Configs:test_UpdateConfigTransmittersWithoutSigners_Success() (gas: 475193) +MultiOCR3Base_setOCR3Configs:test_SetMultipleConfigs_Success() (gas: 2140246) +MultiOCR3Base_setOCR3Configs:test_SignerCannotBeZeroAddress_Revert() (gas: 141720) +MultiOCR3Base_setOCR3Configs:test_StaticConfigChange_Revert() (gas: 807349) +MultiOCR3Base_setOCR3Configs:test_TooManySigners_Revert() (gas: 158802) +MultiOCR3Base_setOCR3Configs:test_TooManyTransmitters_Revert() (gas: 112296) +MultiOCR3Base_setOCR3Configs:test_TransmitterCannotBeZeroAddress_Revert() (gas: 254086) +MultiOCR3Base_setOCR3Configs:test_UpdateConfigSigners_Success() (gas: 860245) +MultiOCR3Base_setOCR3Configs:test_UpdateConfigTransmittersWithoutSigners_Success() (gas: 475215) MultiOCR3Base_transmit:test_ConfigDigestMismatch_Revert() (gas: 42845) MultiOCR3Base_transmit:test_ForkedChain_Revert() (gas: 48450) -MultiOCR3Base_transmit:test_InsufficientSignatures_Revert() (gas: 76928) +MultiOCR3Base_transmit:test_InsufficientSignatures_Revert() (gas: 76934) MultiOCR3Base_transmit:test_NonUniqueSignature_Revert() (gas: 65768) MultiOCR3Base_transmit:test_SignatureOutOfRegistration_Revert() (gas: 33417) -MultiOCR3Base_transmit:test_TooManySignatures_Revert() (gas: 79519) +MultiOCR3Base_transmit:test_TooManySignatures_Revert() (gas: 79525) MultiOCR3Base_transmit:test_TransmitSigners_gas_Success() (gas: 33631) -MultiOCR3Base_transmit:test_TransmitWithExtraCalldataArgs_Revert() (gas: 47122) -MultiOCR3Base_transmit:test_TransmitWithLessCalldataArgs_Revert() (gas: 25690) +MultiOCR3Base_transmit:test_TransmitWithExtraCalldataArgs_Revert() (gas: 47128) +MultiOCR3Base_transmit:test_TransmitWithLessCalldataArgs_Revert() (gas: 25696) MultiOCR3Base_transmit:test_TransmitWithoutSignatureVerification_gas_Success() (gas: 18712) -MultiOCR3Base_transmit:test_UnAuthorizedTransmitter_Revert() (gas: 24189) +MultiOCR3Base_transmit:test_UnAuthorizedTransmitter_Revert() (gas: 24195) MultiOCR3Base_transmit:test_UnauthorizedSigner_Revert() (gas: 61131) -MultiOCR3Base_transmit:test_UnconfiguredPlugin_Revert() (gas: 39888) -MultiOCR3Base_transmit:test_ZeroSignatures_Revert() (gas: 32971) -MultiOnRampTokenPoolReentrancy:test_OnRampTokenPoolReentrancy_Success() (gas: 409147) -MultiRampsE2E:test_E2E_3MessagesMMultiOffRampSuccess_gas() (gas: 1526265) -NonceManager_NonceIncrementation:test_getIncrementedOutboundNonce_Success() (gas: 37916) +MultiOCR3Base_transmit:test_UnconfiguredPlugin_Revert() (gas: 39894) +MultiOCR3Base_transmit:test_ZeroSignatures_Revert() (gas: 32977) +MultiOnRampTokenPoolReentrancy:test_OnRampTokenPoolReentrancy_Success() (gas: 409189) +MultiRampsE2E:test_E2E_3MessagesMMultiOffRampSuccess_gas() (gas: 1537029) +NonceManager_NonceIncrementation:test_getIncrementedOutboundNonce_Success() (gas: 37922) NonceManager_NonceIncrementation:test_incrementInboundNonce_Skip() (gas: 23709) NonceManager_NonceIncrementation:test_incrementInboundNonce_Success() (gas: 38799) -NonceManager_NonceIncrementation:test_incrementNoncesInboundAndOutbound_Success() (gas: 71898) -NonceManager_OffRampUpgrade:test_NoPrevOffRampForChain_Success() (gas: 260404) -NonceManager_OffRampUpgrade:test_UpgradedNonceNewSenderStartsAtZero_Success() (gas: 264546) -NonceManager_OffRampUpgrade:test_UpgradedNonceStartsAtV1Nonce_Success() (gas: 327828) -NonceManager_OffRampUpgrade:test_UpgradedOffRampNonceSkipsIfMsgInFlight_Success() (gas: 299527) -NonceManager_OffRampUpgrade:test_UpgradedSenderNoncesReadsPreviousRampTransitive_Success() (gas: 244871) -NonceManager_OffRampUpgrade:test_UpgradedSenderNoncesReadsPreviousRamp_Success() (gas: 232964) -NonceManager_OffRampUpgrade:test_Upgraded_Success() (gas: 153309) -NonceManager_OnRampUpgrade:test_UpgradeNonceNewSenderStartsAtZero_Success() (gas: 168358) -NonceManager_OnRampUpgrade:test_UpgradeNonceStartsAtV1Nonce_Success() (gas: 220193) -NonceManager_OnRampUpgrade:test_UpgradeSenderNoncesReadsPreviousRamp_Success() (gas: 125157) +NonceManager_NonceIncrementation:test_incrementNoncesInboundAndOutbound_Success() (gas: 71904) +NonceManager_OffRampUpgrade:test_NoPrevOffRampForChain_Success() (gas: 262138) +NonceManager_OffRampUpgrade:test_UpgradedNonceNewSenderStartsAtZero_Success() (gas: 266256) +NonceManager_OffRampUpgrade:test_UpgradedNonceStartsAtV1Nonce_Success() (gas: 331224) +NonceManager_OffRampUpgrade:test_UpgradedOffRampNonceSkipsIfMsgInFlight_Success() (gas: 302071) +NonceManager_OffRampUpgrade:test_UpgradedSenderNoncesReadsPreviousRampTransitive_Success() (gas: 245579) +NonceManager_OffRampUpgrade:test_UpgradedSenderNoncesReadsPreviousRamp_Success() (gas: 233648) +NonceManager_OffRampUpgrade:test_Upgraded_Success() (gas: 154815) +NonceManager_OnRampUpgrade:test_UpgradeNonceNewSenderStartsAtZero_Success() (gas: 168463) +NonceManager_OnRampUpgrade:test_UpgradeNonceStartsAtV1Nonce_Success() (gas: 220298) +NonceManager_OnRampUpgrade:test_UpgradeSenderNoncesReadsPreviousRamp_Success() (gas: 125472) NonceManager_OnRampUpgrade:test_Upgrade_Success() (gas: 107566) -NonceManager_applyPreviousRampsUpdates:test_MultipleRampsUpdates() (gas: 122955) -NonceManager_applyPreviousRampsUpdates:test_PreviousRampAlreadySetOffRamp_Revert() (gas: 42965) -NonceManager_applyPreviousRampsUpdates:test_PreviousRampAlreadySetOnRampAndOffRamp_Revert() (gas: 64288) -NonceManager_applyPreviousRampsUpdates:test_PreviousRampAlreadySetOnRamp_Revert() (gas: 42829) -NonceManager_applyPreviousRampsUpdates:test_SingleRampUpdate() (gas: 66576) +NonceManager_applyPreviousRampsUpdates:test_MultipleRampsUpdates() (gas: 122961) +NonceManager_applyPreviousRampsUpdates:test_PreviousRampAlreadySetOffRamp_Revert() (gas: 42983) +NonceManager_applyPreviousRampsUpdates:test_PreviousRampAlreadySetOnRampAndOffRamp_Revert() (gas: 64312) +NonceManager_applyPreviousRampsUpdates:test_PreviousRampAlreadySetOnRamp_Revert() (gas: 42847) +NonceManager_applyPreviousRampsUpdates:test_SingleRampUpdate() (gas: 66594) NonceManager_applyPreviousRampsUpdates:test_ZeroInput() (gas: 12025) NonceManager_typeAndVersion:test_typeAndVersion() (gas: 9699) -OCR2BaseNoChecks_setOCR2Config:test_FMustBePositive_Revert() (gas: 12183) -OCR2BaseNoChecks_setOCR2Config:test_RepeatAddress_Revert() (gas: 42404) -OCR2BaseNoChecks_setOCR2Config:test_SetConfigSuccess_gas() (gas: 84585) -OCR2BaseNoChecks_setOCR2Config:test_TooManyTransmitter_Revert() (gas: 38150) +OCR2BaseNoChecks_setOCR2Config:test_FMustBePositive_Revert() (gas: 12195) +OCR2BaseNoChecks_setOCR2Config:test_RepeatAddress_Revert() (gas: 42416) +OCR2BaseNoChecks_setOCR2Config:test_SetConfigSuccess_gas() (gas: 84590) +OCR2BaseNoChecks_setOCR2Config:test_TooManyTransmitter_Revert() (gas: 38162) OCR2BaseNoChecks_setOCR2Config:test_TransmitterCannotBeZeroAddress_Revert() (gas: 24290) -OCR2BaseNoChecks_transmit:test_ConfigDigestMismatch_Revert() (gas: 17469) -OCR2BaseNoChecks_transmit:test_ForkedChain_Revert() (gas: 26762) +OCR2BaseNoChecks_transmit:test_ConfigDigestMismatch_Revert() (gas: 17475) +OCR2BaseNoChecks_transmit:test_ForkedChain_Revert() (gas: 26768) OCR2BaseNoChecks_transmit:test_TransmitSuccess_gas() (gas: 27499) OCR2BaseNoChecks_transmit:test_UnAuthorizedTransmitter_Revert() (gas: 21317) OCR2Base_setOCR2Config:test_FMustBePositive_Revert() (gas: 12201) OCR2Base_setOCR2Config:test_FTooHigh_Revert() (gas: 12357) OCR2Base_setOCR2Config:test_OracleOutOfRegister_Revert() (gas: 14904) OCR2Base_setOCR2Config:test_RepeatAddress_Revert() (gas: 45454) -OCR2Base_setOCR2Config:test_SetConfigSuccess_gas() (gas: 155211) -OCR2Base_setOCR2Config:test_SingerCannotBeZeroAddress_Revert() (gas: 24407) +OCR2Base_setOCR2Config:test_SetConfigSuccess_gas() (gas: 155216) +OCR2Base_setOCR2Config:test_SingerCannotBeZeroAddress_Revert() (gas: 24413) OCR2Base_setOCR2Config:test_TooManySigners_Revert() (gas: 20520) -OCR2Base_setOCR2Config:test_TransmitterCannotBeZeroAddress_Revert() (gas: 47298) -OCR2Base_transmit:test_ConfigDigestMismatch_Revert() (gas: 19638) -OCR2Base_transmit:test_ForkedChain_Revert() (gas: 37713) +OCR2Base_setOCR2Config:test_TransmitterCannotBeZeroAddress_Revert() (gas: 47304) +OCR2Base_transmit:test_ConfigDigestMismatch_Revert() (gas: 19644) +OCR2Base_transmit:test_ForkedChain_Revert() (gas: 37719) OCR2Base_transmit:test_NonUniqueSignature_Revert() (gas: 55324) OCR2Base_transmit:test_SignatureOutOfRegistration_Revert() (gas: 20977) OCR2Base_transmit:test_Transmit2SignersSuccess_gas() (gas: 51689) OCR2Base_transmit:test_UnAuthorizedTransmitter_Revert() (gas: 23499) OCR2Base_transmit:test_UnauthorizedSigner_Revert() (gas: 39695) OCR2Base_transmit:test_WrongNumberOfSignatures_Revert() (gas: 20572) -OffRamp_afterOC3ConfigSet:test_afterOCR3ConfigSet_SignatureVerificationDisabled_Revert() (gas: 6056933) -OffRamp_applySourceChainConfigUpdates:test_AddMultipleChains_Success() (gas: 468074) -OffRamp_applySourceChainConfigUpdates:test_AddNewChain_Success() (gas: 99238) -OffRamp_applySourceChainConfigUpdates:test_ApplyZeroUpdates_Success() (gas: 12414) -OffRamp_applySourceChainConfigUpdates:test_ReplaceExistingChainOnRamp_Revert() (gas: 93240) -OffRamp_applySourceChainConfigUpdates:test_ReplaceExistingChain_Success() (gas: 109971) -OffRamp_applySourceChainConfigUpdates:test_RouterAddress_Revert() (gas: 13288) -OffRamp_applySourceChainConfigUpdates:test_ZeroOnRampAddress_Revert() (gas: 18022) -OffRamp_applySourceChainConfigUpdates:test_ZeroSourceChainSelector_Revert() (gas: 15371) -OffRamp_batchExecute:test_MultipleReportsDifferentChainsSkipCursedChain_Success() (gas: 177419) -OffRamp_batchExecute:test_MultipleReportsDifferentChains_Success() (gas: 334109) -OffRamp_batchExecute:test_MultipleReportsSameChain_Success() (gas: 277477) -OffRamp_batchExecute:test_MultipleReportsSkipDuplicate_Success() (gas: 168556) -OffRamp_batchExecute:test_OutOfBoundsGasLimitsAccess_Revert() (gas: 188490) -OffRamp_batchExecute:test_SingleReport_Success() (gas: 156460) -OffRamp_batchExecute:test_Unhealthy_Success() (gas: 572587) -OffRamp_batchExecute:test_ZeroReports_Revert() (gas: 10486) -OffRamp_ccipReceive:test_Reverts() (gas: 15770) -OffRamp_commit:test_FailedRMNVerification_Reverts() (gas: 64420) -OffRamp_commit:test_InvalidIntervalMinLargerThanMax_Revert() (gas: 67632) -OffRamp_commit:test_InvalidInterval_Revert() (gas: 59886) -OffRamp_commit:test_InvalidRootRevert() (gas: 58921) -OffRamp_commit:test_NoConfigWithOtherConfigPresent_Revert() (gas: 6661100) -OffRamp_commit:test_NoConfig_Revert() (gas: 6244915) -OffRamp_commit:test_OnlyGasPriceUpdates_Success() (gas: 112473) -OffRamp_commit:test_OnlyPriceUpdateStaleReport_Revert() (gas: 120501) -OffRamp_commit:test_OnlyTokenPriceUpdates_Success() (gas: 112494) -OffRamp_commit:test_PriceSequenceNumberCleared_Success() (gas: 353540) -OffRamp_commit:test_ReportAndPriceUpdate_Success() (gas: 164945) -OffRamp_commit:test_ReportOnlyRootSuccess_gas() (gas: 139934) -OffRamp_commit:test_RootAlreadyCommitted_Revert() (gas: 141925) -OffRamp_commit:test_SourceChainNotEnabled_Revert() (gas: 59208) -OffRamp_commit:test_StaleReportWithRoot_Success() (gas: 232957) -OffRamp_commit:test_UnauthorizedTransmitter_Revert() (gas: 121451) -OffRamp_commit:test_Unhealthy_Revert() (gas: 57938) -OffRamp_commit:test_ValidPriceUpdateThenStaleReportWithRoot_Success() (gas: 206779) -OffRamp_commit:test_ZeroEpochAndRound_Revert() (gas: 51273) -OffRamp_constructor:test_Constructor_Success() (gas: 6244332) -OffRamp_constructor:test_SourceChainSelector_Revert() (gas: 136075) -OffRamp_constructor:test_ZeroChainSelector_Revert() (gas: 103518) -OffRamp_constructor:test_ZeroNonceManager_Revert() (gas: 101418) -OffRamp_constructor:test_ZeroOnRampAddress_Revert() (gas: 138723) -OffRamp_constructor:test_ZeroRMNRemote_Revert() (gas: 101338) -OffRamp_constructor:test_ZeroTokenAdminRegistry_Revert() (gas: 101376) -OffRamp_execute:test_IncorrectArrayType_Revert() (gas: 17505) -OffRamp_execute:test_LargeBatch_Success() (gas: 3391111) -OffRamp_execute:test_MultipleReportsWithPartialValidationFailures_Success() (gas: 372353) -OffRamp_execute:test_MultipleReports_Success() (gas: 299779) -OffRamp_execute:test_NoConfigWithOtherConfigPresent_Revert() (gas: 7069102) -OffRamp_execute:test_NoConfig_Revert() (gas: 6293902) -OffRamp_execute:test_NonArray_Revert() (gas: 27787) -OffRamp_execute:test_SingleReport_Success() (gas: 175730) -OffRamp_execute:test_UnauthorizedTransmitter_Revert() (gas: 147970) -OffRamp_execute:test_WrongConfigWithSigners_Revert() (gas: 7071845) -OffRamp_execute:test_ZeroReports_Revert() (gas: 17227) -OffRamp_executeSingleMessage:test_MessageSender_Revert() (gas: 18682) -OffRamp_executeSingleMessage:test_NonContractWithTokens_Success() (gas: 247849) -OffRamp_executeSingleMessage:test_NonContract_Success() (gas: 21002) -OffRamp_executeSingleMessage:test_TokenHandlingError_Revert() (gas: 208927) -OffRamp_executeSingleMessage:test_ZeroGasDONExecution_Revert() (gas: 49237) -OffRamp_executeSingleMessage:test_executeSingleMessage_NoTokens_Success() (gas: 48725) -OffRamp_executeSingleMessage:test_executeSingleMessage_WithFailingValidationNoRouterCall_Revert() (gas: 228696) -OffRamp_executeSingleMessage:test_executeSingleMessage_WithFailingValidation_Revert() (gas: 85260) -OffRamp_executeSingleMessage:test_executeSingleMessage_WithTokens_Success() (gas: 279681) -OffRamp_executeSingleMessage:test_executeSingleMessage_WithValidation_Success() (gas: 91512) -OffRamp_executeSingleReport:test_DisabledSourceChain_Revert() (gas: 28226) -OffRamp_executeSingleReport:test_EmptyReport_Revert() (gas: 21832) -OffRamp_executeSingleReport:test_InvalidSourcePoolAddress_Success() (gas: 499180) -OffRamp_executeSingleReport:test_ManualExecutionNotYetEnabled_Revert() (gas: 48620) -OffRamp_executeSingleReport:test_MismatchingDestChainSelector_Revert() (gas: 33892) -OffRamp_executeSingleReport:test_MismatchingOnRampRoot_Revert() (gas: 154020) -OffRamp_executeSingleReport:test_NonExistingSourceChain_Revert() (gas: 28449) -OffRamp_executeSingleReport:test_ReceiverError_Success() (gas: 188116) -OffRamp_executeSingleReport:test_RetryFailedMessageWithoutManualExecution_Revert() (gas: 198571) -OffRamp_executeSingleReport:test_RootNotCommitted_Revert() (gas: 41037) -OffRamp_executeSingleReport:test_RouterYULCall_Revert() (gas: 447967) -OffRamp_executeSingleReport:test_SingleMessageNoTokensOtherChain_Success() (gas: 248847) -OffRamp_executeSingleReport:test_SingleMessageNoTokensUnordered_Success() (gas: 193195) -OffRamp_executeSingleReport:test_SingleMessageNoTokens_Success() (gas: 212816) -OffRamp_executeSingleReport:test_SingleMessageToNonCCIPReceiver_Success() (gas: 260215) -OffRamp_executeSingleReport:test_SingleMessagesNoTokensSuccess_gas() (gas: 141403) -OffRamp_executeSingleReport:test_SkippedIncorrectNonceStillExecutes_Success() (gas: 423165) -OffRamp_executeSingleReport:test_SkippedIncorrectNonce_Success() (gas: 59057) -OffRamp_executeSingleReport:test_TokenDataMismatch_Revert() (gas: 74155) -OffRamp_executeSingleReport:test_TwoMessagesWithTokensAndGE_Success() (gas: 599623) -OffRamp_executeSingleReport:test_TwoMessagesWithTokensSuccess_gas() (gas: 543529) -OffRamp_executeSingleReport:test_UnexpectedTokenData_Revert() (gas: 33663) -OffRamp_executeSingleReport:test_UnhealthySingleChainCurse_Revert() (gas: 568482) -OffRamp_executeSingleReport:test_Unhealthy_Success() (gas: 568496) -OffRamp_executeSingleReport:test_WithCurseOnAnotherSourceChain_Success() (gas: 473801) -OffRamp_executeSingleReport:test__execute_SkippedAlreadyExecutedMessageUnordered_Success() (gas: 135923) -OffRamp_executeSingleReport:test__execute_SkippedAlreadyExecutedMessage_Success() (gas: 165161) -OffRamp_getExecutionState:test_FillExecutionState_Success() (gas: 3737630) -OffRamp_getExecutionState:test_GetDifferentChainExecutionState_Success() (gas: 119064) -OffRamp_getExecutionState:test_GetExecutionState_Success() (gas: 88148) -OffRamp_manuallyExecute:test_ManualExecGasLimitMismatchSingleReport_Revert() (gas: 79036) -OffRamp_manuallyExecute:test_manuallyExecute_DestinationGasAmountCountMismatch_Revert() (gas: 78924) -OffRamp_manuallyExecute:test_manuallyExecute_DoesNotRevertIfUntouched_Success() (gas: 172960) -OffRamp_manuallyExecute:test_manuallyExecute_FailedTx_Revert() (gas: 213287) -OffRamp_manuallyExecute:test_manuallyExecute_ForkedChain_Revert() (gas: 26909) -OffRamp_manuallyExecute:test_manuallyExecute_GasLimitMismatchMultipleReports_Revert() (gas: 159537) -OffRamp_manuallyExecute:test_manuallyExecute_InvalidReceiverExecutionGasLimit_Revert() (gas: 27468) -OffRamp_manuallyExecute:test_manuallyExecute_InvalidTokenGasOverride_Revert() (gas: 58874) -OffRamp_manuallyExecute:test_manuallyExecute_LowGasLimit_Success() (gas: 532013) -OffRamp_manuallyExecute:test_manuallyExecute_MultipleReportsWithSingleCursedLane_Revert() (gas: 317521) -OffRamp_manuallyExecute:test_manuallyExecute_ReentrancyFails_Success() (gas: 2390649) -OffRamp_manuallyExecute:test_manuallyExecute_SourceChainSelectorMismatch_Revert() (gas: 164912) -OffRamp_manuallyExecute:test_manuallyExecute_Success() (gas: 226245) -OffRamp_manuallyExecute:test_manuallyExecute_WithGasOverride_Success() (gas: 226785) -OffRamp_manuallyExecute:test_manuallyExecute_WithMultiReportGasOverride_Success() (gas: 778479) -OffRamp_manuallyExecute:test_manuallyExecute_WithPartialMessages_Success() (gas: 346205) -OffRamp_releaseOrMintSingleToken:test__releaseOrMintSingleToken_NotACompatiblePool_Revert() (gas: 40239) -OffRamp_releaseOrMintSingleToken:test__releaseOrMintSingleToken_Success() (gas: 105265) -OffRamp_releaseOrMintSingleToken:test__releaseOrMintSingleToken_TokenHandlingError_transfer_Revert() (gas: 86476) -OffRamp_releaseOrMintSingleToken:test_releaseOrMintToken_InvalidDataLength_Revert() (gas: 37975) -OffRamp_releaseOrMintSingleToken:test_releaseOrMintToken_ReleaseOrMintBalanceMismatch_Revert() (gas: 95515) -OffRamp_releaseOrMintSingleToken:test_releaseOrMintToken_TokenHandlingError_BalanceOf_Revert() (gas: 40961) -OffRamp_releaseOrMintSingleToken:test_releaseOrMintToken_skip_ReleaseOrMintBalanceMismatch_if_pool_Revert() (gas: 87721) -OffRamp_releaseOrMintTokens:test_TokenHandlingError_Reverts() (gas: 164647) -OffRamp_releaseOrMintTokens:test__releaseOrMintTokens_PoolIsNotAPool_Reverts() (gas: 25146) -OffRamp_releaseOrMintTokens:test_releaseOrMintTokens_InvalidDataLengthReturnData_Revert() (gas: 64911) -OffRamp_releaseOrMintTokens:test_releaseOrMintTokens_InvalidEVMAddress_Revert() (gas: 41883) -OffRamp_releaseOrMintTokens:test_releaseOrMintTokens_PoolDoesNotSupportDest_Reverts() (gas: 81999) -OffRamp_releaseOrMintTokens:test_releaseOrMintTokens_Success() (gas: 176661) -OffRamp_releaseOrMintTokens:test_releaseOrMintTokens_WithGasOverride_Success() (gas: 178641) -OffRamp_releaseOrMintTokens:test_releaseOrMintTokens_destDenominatedDecimals_Success() (gas: 189850) -OffRamp_setDynamicConfig:test_FeeQuoterZeroAddress_Revert() (gas: 11189) -OffRamp_setDynamicConfig:test_NonOwner_Revert() (gas: 13793) -OffRamp_setDynamicConfig:test_SetDynamicConfigWithValidator_Success() (gas: 46198) -OffRamp_setDynamicConfig:test_SetDynamicConfig_Success() (gas: 24173) -OffRamp_trialExecute:test_RateLimitError_Success() (gas: 225140) -OffRamp_trialExecute:test_TokenHandlingErrorIsCaught_Success() (gas: 233762) -OffRamp_trialExecute:test_TokenPoolIsNotAContract_Success() (gas: 310735) -OffRamp_trialExecute:test_trialExecute_Success() (gas: 283386) -OnRampTokenPoolReentrancy:test_OnRampTokenPoolReentrancy_Success() (gas: 387975) -OnRamp_applyAllowListUpdates:test_applyAllowListUpdates_InvalidAllowListRequestDisabledAllowListWithAdds() (gas: 17746) -OnRamp_applyAllowListUpdates:test_applyAllowListUpdates_Revert() (gas: 66535) -OnRamp_applyAllowListUpdates:test_applyAllowListUpdates_Success() (gas: 323600) +OffRamp_afterOC3ConfigSet:test_afterOCR3ConfigSet_SignatureVerificationDisabled_Revert() (gas: 5983389) +OffRamp_applySourceChainConfigUpdates:test_AddMultipleChains_Success() (gas: 468168) +OffRamp_applySourceChainConfigUpdates:test_AddNewChain_Success() (gas: 99296) +OffRamp_applySourceChainConfigUpdates:test_ApplyZeroUpdates_Success() (gas: 12472) +OffRamp_applySourceChainConfigUpdates:test_InvalidOnRampUpdate_Revert() (gas: 204676) +OffRamp_applySourceChainConfigUpdates:test_ReplaceExistingChainOnRamp_Success() (gas: 101379) +OffRamp_applySourceChainConfigUpdates:test_ReplaceExistingChain_Success() (gas: 110796) +OffRamp_applySourceChainConfigUpdates:test_RouterAddress_Revert() (gas: 13418) +OffRamp_applySourceChainConfigUpdates:test_ZeroOnRampAddress_Revert() (gas: 72638) +OffRamp_applySourceChainConfigUpdates:test_ZeroSourceChainSelector_Revert() (gas: 15462) +OffRamp_batchExecute:test_MultipleReportsDifferentChainsSkipCursedChain_Success() (gas: 179216) +OffRamp_batchExecute:test_MultipleReportsDifferentChains_Success() (gas: 337235) +OffRamp_batchExecute:test_MultipleReportsSameChain_Success() (gas: 280603) +OffRamp_batchExecute:test_MultipleReportsSkipDuplicate_Success() (gas: 170311) +OffRamp_batchExecute:test_OutOfBoundsGasLimitsAccess_Revert() (gas: 190845) +OffRamp_batchExecute:test_SingleReport_Success() (gas: 157648) +OffRamp_batchExecute:test_Unhealthy_Success() (gas: 578050) +OffRamp_batchExecute:test_ZeroReports_Revert() (gas: 10576) +OffRamp_ccipReceive:test_Reverts() (gas: 15782) +OffRamp_commit:test_FailedRMNVerification_Reverts() (gas: 63748) +OffRamp_commit:test_InvalidIntervalMinLargerThanMax_Revert() (gas: 67791) +OffRamp_commit:test_InvalidInterval_Revert() (gas: 63958) +OffRamp_commit:test_InvalidOnRamp_Revert() (gas: 92493) +OffRamp_commit:test_InvalidRootRevert() (gas: 63031) +OffRamp_commit:test_NoConfigWithOtherConfigPresent_Revert() (gas: 6587127) +OffRamp_commit:test_NoConfig_Revert() (gas: 6170821) +OffRamp_commit:test_OnlyGasPriceUpdates_Success() (gas: 112719) +OffRamp_commit:test_OnlyPriceUpdateStaleReport_Revert() (gas: 120961) +OffRamp_commit:test_OnlyTokenPriceUpdates_Success() (gas: 112696) +OffRamp_commit:test_PriceSequenceNumberCleared_Success() (gas: 354230) +OffRamp_commit:test_ReportAndPriceUpdate_Success() (gas: 163825) +OffRamp_commit:test_ReportOnlyRootSuccess_gas() (gas: 138880) +OffRamp_commit:test_RootAlreadyCommitted_Revert() (gas: 145911) +OffRamp_commit:test_SourceChainNotEnabled_Revert() (gas: 59514) +OffRamp_commit:test_StaleReportWithRoot_Success() (gas: 231205) +OffRamp_commit:test_UnauthorizedTransmitter_Revert() (gas: 125016) +OffRamp_commit:test_Unhealthy_Revert() (gas: 58244) +OffRamp_commit:test_ValidPriceUpdateThenStaleReportWithRoot_Success() (gas: 205903) +OffRamp_commit:test_ZeroEpochAndRound_Revert() (gas: 51483) +OffRamp_constructor:test_Constructor_Success() (gas: 6170587) +OffRamp_constructor:test_SourceChainSelector_Revert() (gas: 135943) +OffRamp_constructor:test_ZeroChainSelector_Revert() (gas: 103386) +OffRamp_constructor:test_ZeroNonceManager_Revert() (gas: 101280) +OffRamp_constructor:test_ZeroOnRampAddress_Revert() (gas: 161468) +OffRamp_constructor:test_ZeroRMNRemote_Revert() (gas: 101200) +OffRamp_constructor:test_ZeroTokenAdminRegistry_Revert() (gas: 101238) +OffRamp_execute:test_IncorrectArrayType_Revert() (gas: 17610) +OffRamp_execute:test_LargeBatch_Success() (gas: 3419182) +OffRamp_execute:test_MultipleReportsWithPartialValidationFailures_Success() (gas: 375374) +OffRamp_execute:test_MultipleReports_Success() (gas: 302902) +OffRamp_execute:test_NoConfigWithOtherConfigPresent_Revert() (gas: 6996650) +OffRamp_execute:test_NoConfig_Revert() (gas: 6221351) +OffRamp_execute:test_NonArray_Revert() (gas: 27961) +OffRamp_execute:test_SingleReport_Success() (gas: 176939) +OffRamp_execute:test_UnauthorizedTransmitter_Revert() (gas: 149068) +OffRamp_execute:test_WrongConfigWithSigners_Revert() (gas: 6999426) +OffRamp_execute:test_ZeroReports_Revert() (gas: 17293) +OffRamp_executeSingleMessage:test_MessageSender_Revert() (gas: 18874) +OffRamp_executeSingleMessage:test_NonContractWithTokens_Success() (gas: 248743) +OffRamp_executeSingleMessage:test_NonContract_Success() (gas: 21206) +OffRamp_executeSingleMessage:test_TokenHandlingError_Revert() (gas: 209803) +OffRamp_executeSingleMessage:test_ZeroGasDONExecution_Revert() (gas: 49525) +OffRamp_executeSingleMessage:test_executeSingleMessage_NoTokens_Success() (gas: 49013) +OffRamp_executeSingleMessage:test_executeSingleMessage_WithFailingValidationNoRouterCall_Revert() (gas: 218730) +OffRamp_executeSingleMessage:test_executeSingleMessage_WithFailingValidation_Revert() (gas: 85512) +OffRamp_executeSingleMessage:test_executeSingleMessage_WithTokens_Success() (gas: 280659) +OffRamp_executeSingleMessage:test_executeSingleMessage_WithValidation_Success() (gas: 91830) +OffRamp_executeSingleReport:test_DisabledSourceChain_Revert() (gas: 28730) +OffRamp_executeSingleReport:test_EmptyReport_Revert() (gas: 22018) +OffRamp_executeSingleReport:test_InvalidSourcePoolAddress_Success() (gas: 503897) +OffRamp_executeSingleReport:test_ManualExecutionNotYetEnabled_Revert() (gas: 49358) +OffRamp_executeSingleReport:test_MismatchingDestChainSelector_Revert() (gas: 34462) +OffRamp_executeSingleReport:test_NonExistingSourceChain_Revert() (gas: 28977) +OffRamp_executeSingleReport:test_ReceiverError_Success() (gas: 189608) +OffRamp_executeSingleReport:test_RetryFailedMessageWithoutManualExecution_Revert() (gas: 200597) +OffRamp_executeSingleReport:test_RootNotCommitted_Revert() (gas: 41727) +OffRamp_executeSingleReport:test_RouterYULCall_Revert() (gas: 449309) +OffRamp_executeSingleReport:test_SingleMessageNoTokensOtherChain_Success() (gas: 251345) +OffRamp_executeSingleReport:test_SingleMessageNoTokensUnordered_Success() (gas: 196311) +OffRamp_executeSingleReport:test_SingleMessageNoTokens_Success() (gas: 215860) +OffRamp_executeSingleReport:test_SingleMessageToNonCCIPReceiver_Success() (gas: 251303) +OffRamp_executeSingleReport:test_SingleMessagesNoTokensSuccess_gas() (gas: 142769) +OffRamp_executeSingleReport:test_SkippedIncorrectNonceStillExecutes_Success() (gas: 426988) +OffRamp_executeSingleReport:test_SkippedIncorrectNonce_Success() (gas: 59801) +OffRamp_executeSingleReport:test_TokenDataMismatch_Revert() (gas: 74893) +OffRamp_executeSingleReport:test_TwoMessagesWithTokensAndGE_Success() (gas: 605297) +OffRamp_executeSingleReport:test_TwoMessagesWithTokensSuccess_gas() (gas: 548785) +OffRamp_executeSingleReport:test_UnexpectedTokenData_Revert() (gas: 34181) +OffRamp_executeSingleReport:test_UnhealthySingleChainCurse_Revert() (gas: 575250) +OffRamp_executeSingleReport:test_Unhealthy_Success() (gas: 575264) +OffRamp_executeSingleReport:test_WithCurseOnAnotherSourceChain_Success() (gas: 478001) +OffRamp_executeSingleReport:test__execute_SkippedAlreadyExecutedMessageUnordered_Success() (gas: 138039) +OffRamp_executeSingleReport:test__execute_SkippedAlreadyExecutedMessage_Success() (gas: 167264) +OffRamp_getExecutionState:test_FillExecutionState_Success() (gas: 3894518) +OffRamp_getExecutionState:test_GetDifferentChainExecutionState_Success() (gas: 120480) +OffRamp_getExecutionState:test_GetExecutionState_Success() (gas: 89540) +OffRamp_manuallyExecute:test_ManualExecGasLimitMismatchSingleReport_Revert() (gas: 81676) +OffRamp_manuallyExecute:test_manuallyExecute_DestinationGasAmountCountMismatch_Revert() (gas: 80532) +OffRamp_manuallyExecute:test_manuallyExecute_DoesNotRevertIfUntouched_Success() (gas: 174130) +OffRamp_manuallyExecute:test_manuallyExecute_FailedTx_Revert() (gas: 215543) +OffRamp_manuallyExecute:test_manuallyExecute_ForkedChain_Revert() (gas: 27365) +OffRamp_manuallyExecute:test_manuallyExecute_GasLimitMismatchMultipleReports_Revert() (gas: 165597) +OffRamp_manuallyExecute:test_manuallyExecute_InvalidReceiverExecutionGasLimit_Revert() (gas: 27936) +OffRamp_manuallyExecute:test_manuallyExecute_InvalidTokenGasOverride_Revert() (gas: 59666) +OffRamp_manuallyExecute:test_manuallyExecute_LowGasLimit_Success() (gas: 534293) +OffRamp_manuallyExecute:test_manuallyExecute_MultipleReportsWithSingleCursedLane_Revert() (gas: 321217) +OffRamp_manuallyExecute:test_manuallyExecute_ReentrancyFails_Success() (gas: 2393253) +OffRamp_manuallyExecute:test_manuallyExecute_SourceChainSelectorMismatch_Revert() (gas: 166568) +OffRamp_manuallyExecute:test_manuallyExecute_Success() (gas: 228525) +OffRamp_manuallyExecute:test_manuallyExecute_WithGasOverride_Success() (gas: 229065) +OffRamp_manuallyExecute:test_manuallyExecute_WithMultiReportGasOverride_Success() (gas: 788283) +OffRamp_manuallyExecute:test_manuallyExecute_WithPartialMessages_Success() (gas: 350237) +OffRamp_releaseOrMintSingleToken:test__releaseOrMintSingleToken_NotACompatiblePool_Revert() (gas: 40611) +OffRamp_releaseOrMintSingleToken:test__releaseOrMintSingleToken_Success() (gas: 105733) +OffRamp_releaseOrMintSingleToken:test__releaseOrMintSingleToken_TokenHandlingError_transfer_Revert() (gas: 86956) +OffRamp_releaseOrMintSingleToken:test_releaseOrMintToken_InvalidDataLength_Revert() (gas: 38380) +OffRamp_releaseOrMintSingleToken:test_releaseOrMintToken_ReleaseOrMintBalanceMismatch_Revert() (gas: 95983) +OffRamp_releaseOrMintSingleToken:test_releaseOrMintToken_TokenHandlingError_BalanceOf_Revert() (gas: 41378) +OffRamp_releaseOrMintSingleToken:test_releaseOrMintToken_skip_ReleaseOrMintBalanceMismatch_if_pool_Revert() (gas: 88177) +OffRamp_releaseOrMintTokens:test_TokenHandlingError_Reverts() (gas: 165433) +OffRamp_releaseOrMintTokens:test__releaseOrMintTokens_PoolIsNotAPool_Reverts() (gas: 25404) +OffRamp_releaseOrMintTokens:test_releaseOrMintTokens_InvalidDataLengthReturnData_Revert() (gas: 65574) +OffRamp_releaseOrMintTokens:test_releaseOrMintTokens_InvalidEVMAddress_Revert() (gas: 42279) +OffRamp_releaseOrMintTokens:test_releaseOrMintTokens_PoolDoesNotSupportDest_Reverts() (gas: 82668) +OffRamp_releaseOrMintTokens:test_releaseOrMintTokens_Success() (gas: 177447) +OffRamp_releaseOrMintTokens:test_releaseOrMintTokens_WithGasOverride_Success() (gas: 179427) +OffRamp_releaseOrMintTokens:test_releaseOrMintTokens_destDenominatedDecimals_Success() (gas: 190636) +OffRamp_setDynamicConfig:test_FeeQuoterZeroAddress_Revert() (gas: 11201) +OffRamp_setDynamicConfig:test_NonOwner_Revert() (gas: 13811) +OffRamp_setDynamicConfig:test_SetDynamicConfigWithValidator_Success() (gas: 46216) +OffRamp_setDynamicConfig:test_SetDynamicConfig_Success() (gas: 24191) +OffRamp_trialExecute:test_RateLimitError_Success() (gas: 226586) +OffRamp_trialExecute:test_TokenHandlingErrorIsCaught_Success() (gas: 235208) +OffRamp_trialExecute:test_TokenPoolIsNotAContract_Success() (gas: 314371) +OffRamp_trialExecute:test_trialExecute_Success() (gas: 284928) +OnRampTokenPoolReentrancy:test_OnRampTokenPoolReentrancy_Success() (gas: 388215) +OnRamp_applyAllowListUpdates:test_applyAllowListUpdates_InvalidAllowListRequestDisabledAllowListWithAdds() (gas: 17758) +OnRamp_applyAllowListUpdates:test_applyAllowListUpdates_Revert() (gas: 66553) +OnRamp_applyAllowListUpdates:test_applyAllowListUpdates_Success() (gas: 323605) OnRamp_applyDestChainConfigUpdates:test_ApplyDestChainConfigUpdates_Success() (gas: 64546) OnRamp_applyDestChainConfigUpdates:test_ApplyDestChainConfigUpdates_WithInvalidChainSelector_Revert() (gas: 13254) -OnRamp_constructor:test_Constructor_InvalidConfigChainSelectorEqZero_Revert() (gas: 94831) -OnRamp_constructor:test_Constructor_InvalidConfigNonceManagerEqAddressZero_Revert() (gas: 92765) -OnRamp_constructor:test_Constructor_InvalidConfigRMNProxyEqAddressZero_Revert() (gas: 97791) -OnRamp_constructor:test_Constructor_InvalidConfigTokenAdminRegistryEqAddressZero_Revert() (gas: 92823) -OnRamp_constructor:test_Constructor_Success() (gas: 2827622) +OnRamp_constructor:test_Constructor_InvalidConfigChainSelectorEqZero_Revert() (gas: 94823) +OnRamp_constructor:test_Constructor_InvalidConfigNonceManagerEqAddressZero_Revert() (gas: 92757) +OnRamp_constructor:test_Constructor_InvalidConfigRMNProxyEqAddressZero_Revert() (gas: 97783) +OnRamp_constructor:test_Constructor_InvalidConfigTokenAdminRegistryEqAddressZero_Revert() (gas: 92815) +OnRamp_constructor:test_Constructor_Success() (gas: 2817599) OnRamp_forwardFromRouter:test_ForwardFromRouterExtraArgsV2AllowOutOfOrderTrue_Success() (gas: 114939) OnRamp_forwardFromRouter:test_ForwardFromRouterExtraArgsV2_Success() (gas: 145710) OnRamp_forwardFromRouter:test_ForwardFromRouterSuccessCustomExtraArgs() (gas: 145313) OnRamp_forwardFromRouter:test_ForwardFromRouterSuccessEmptyExtraArgs() (gas: 143538) OnRamp_forwardFromRouter:test_ForwardFromRouterSuccessLegacyExtraArgs() (gas: 145538) OnRamp_forwardFromRouter:test_ForwardFromRouter_Success() (gas: 144917) -OnRamp_forwardFromRouter:test_ForwardFromRouter_Success_ConfigurableSourceRouter() (gas: 140243) +OnRamp_forwardFromRouter:test_ForwardFromRouter_Success_ConfigurableSourceRouter() (gas: 140249) OnRamp_forwardFromRouter:test_InvalidExtraArgsTag_Revert() (gas: 28824) -OnRamp_forwardFromRouter:test_MessageValidationError_Revert() (gas: 138926) +OnRamp_forwardFromRouter:test_MessageValidationError_Revert() (gas: 138938) OnRamp_forwardFromRouter:test_MesssageFeeTooHigh_Revert() (gas: 26924) OnRamp_forwardFromRouter:test_MultiCannotSendZeroTokens_Revert() (gas: 74139) OnRamp_forwardFromRouter:test_OriginalSender_Revert() (gas: 12951) -OnRamp_forwardFromRouter:test_Paused_Revert() (gas: 37326) -OnRamp_forwardFromRouter:test_Permissions_Revert() (gas: 18278) +OnRamp_forwardFromRouter:test_Paused_Revert() (gas: 37338) +OnRamp_forwardFromRouter:test_Permissions_Revert() (gas: 18284) OnRamp_forwardFromRouter:test_ShouldIncrementNonceOnlyOnOrdered_Success() (gas: 184562) OnRamp_forwardFromRouter:test_ShouldIncrementSeqNumAndNonce_Success() (gas: 210880) OnRamp_forwardFromRouter:test_ShouldStoreLinkFees() (gas: 124838) OnRamp_forwardFromRouter:test_ShouldStoreNonLinkFees() (gas: 141462) -OnRamp_forwardFromRouter:test_SourceTokenDataTooLarge_Revert() (gas: 3829289) +OnRamp_forwardFromRouter:test_SourceTokenDataTooLarge_Revert() (gas: 3769244) OnRamp_forwardFromRouter:test_UnAllowedOriginalSender_Revert() (gas: 18714) -OnRamp_forwardFromRouter:test_UnsupportedToken_Revert() (gas: 110907) -OnRamp_forwardFromRouter:test_forwardFromRouter_UnsupportedToken_Revert() (gas: 76229) -OnRamp_forwardFromRouter:test_forwardFromRouter_WithValidation_Success() (gas: 281171) -OnRamp_getFee:test_EmptyMessage_Success() (gas: 97722) -OnRamp_getFee:test_EnforceOutOfOrder_Revert() (gas: 64203) -OnRamp_getFee:test_GetFeeOfZeroForTokenMessage_Success() (gas: 85422) -OnRamp_getFee:test_NotAFeeTokenButPricedToken_Revert() (gas: 34972) -OnRamp_getFee:test_SingleTokenMessage_Success() (gas: 112713) -OnRamp_getFee:test_Unhealthy_Revert() (gas: 17009) +OnRamp_forwardFromRouter:test_UnsupportedToken_Revert() (gas: 110919) +OnRamp_forwardFromRouter:test_forwardFromRouter_UnsupportedToken_Revert() (gas: 76235) +OnRamp_forwardFromRouter:test_forwardFromRouter_WithValidation_Success() (gas: 281240) +OnRamp_getFee:test_EmptyMessage_Success() (gas: 97734) +OnRamp_getFee:test_EnforceOutOfOrder_Revert() (gas: 64215) +OnRamp_getFee:test_GetFeeOfZeroForTokenMessage_Success() (gas: 85428) +OnRamp_getFee:test_NotAFeeTokenButPricedToken_Revert() (gas: 34978) +OnRamp_getFee:test_SingleTokenMessage_Success() (gas: 112749) +OnRamp_getFee:test_Unhealthy_Revert() (gas: 17021) OnRamp_getSupportedTokens:test_GetSupportedTokens_Revert() (gas: 10438) OnRamp_getTokenPool:test_GetTokenPool_Success() (gas: 35204) OnRamp_setDynamicConfig:test_SetConfigInvalidConfigFeeAggregatorEqAddressZero_Revert() (gas: 11420) OnRamp_setDynamicConfig:test_SetConfigInvalidConfigFeeQuoterEqAddressZero_Revert() (gas: 13019) OnRamp_setDynamicConfig:test_SetConfigInvalidConfig_Revert() (gas: 11377) -OnRamp_setDynamicConfig:test_SetConfigOnlyOwner_Revert() (gas: 16409) +OnRamp_setDynamicConfig:test_SetConfigOnlyOwner_Revert() (gas: 16421) OnRamp_setDynamicConfig:test_SetDynamicConfig_Success() (gas: 55330) OnRamp_withdrawFeeTokens:test_WithdrawFeeTokens_Success() (gas: 97235) -PingPong_ccipReceive:test_CcipReceive_Success() (gas: 150578) -PingPong_plumbing:test_OutOfOrderExecution_Success() (gas: 20280) -PingPong_plumbing:test_Pausing_Success() (gas: 17780) -PingPong_startPingPong:test_StartPingPong_With_OOO_Success() (gas: 160987) -PingPong_startPingPong:test_StartPingPong_With_Sequenced_Ordered_Success() (gas: 180396) +PingPong_ccipReceive:test_CcipReceive_Success() (gas: 150719) +PingPong_plumbing:test_OutOfOrderExecution_Success() (gas: 20286) +PingPong_plumbing:test_Pausing_Success() (gas: 17786) +PingPong_startPingPong:test_StartPingPong_With_OOO_Success() (gas: 161185) +PingPong_startPingPong:test_StartPingPong_With_Sequenced_Ordered_Success() (gas: 180603) RMNHome:test() (gas: 186) RMN_constructor:test_Constructor_Success() (gas: 48874) -RMN_getRecordedCurseRelatedOps:test_OpsPostDeployment() (gas: 19690) -RMN_lazyVoteToCurseUpdate_Benchmark:test_VoteToCurseLazilyRetain3VotersUponConfigChange_gas() (gas: 152263) -RMN_ownerUnbless:test_Unbless_Success() (gas: 74882) -RMN_ownerUnvoteToCurse:test_CanBlessAndCurseAfterGlobalCurseIsLifted() (gas: 471457) -RMN_ownerUnvoteToCurse:test_IsIdempotent() (gas: 398096) +RMN_getRecordedCurseRelatedOps:test_OpsPostDeployment() (gas: 19696) +RMN_lazyVoteToCurseUpdate_Benchmark:test_VoteToCurseLazilyRetain3VotersUponConfigChange_gas() (gas: 152287) +RMN_ownerUnbless:test_Unbless_Success() (gas: 74900) +RMN_ownerUnvoteToCurse:test_CanBlessAndCurseAfterGlobalCurseIsLifted() (gas: 471574) +RMN_ownerUnvoteToCurse:test_IsIdempotent() (gas: 398222) RMN_ownerUnvoteToCurse:test_NonOwner_Revert() (gas: 18669) -RMN_ownerUnvoteToCurse:test_OwnerUnvoteToCurseSuccess_gas() (gas: 357751) -RMN_ownerUnvoteToCurse:test_UnknownVoter_Revert() (gas: 33034) -RMN_ownerUnvoteToCurse_Benchmark:test_OwnerUnvoteToCurse_1Voter_LiftsCurse_gas() (gas: 262211) +RMN_ownerUnvoteToCurse:test_OwnerUnvoteToCurseSuccess_gas() (gas: 357841) +RMN_ownerUnvoteToCurse:test_UnknownVoter_Revert() (gas: 33058) +RMN_ownerUnvoteToCurse_Benchmark:test_OwnerUnvoteToCurse_1Voter_LiftsCurse_gas() (gas: 262247) RMN_permaBlessing:test_PermaBlessing() (gas: 202691) RMN_setConfig:test_BlessVoterIsZeroAddress_Revert() (gas: 15494) RMN_setConfig:test_EitherThresholdIsZero_Revert() (gas: 21095) -RMN_setConfig:test_NonOwner_Revert() (gas: 14719) +RMN_setConfig:test_NonOwner_Revert() (gas: 14725) RMN_setConfig:test_RepeatedAddress_Revert() (gas: 18213) -RMN_setConfig:test_SetConfigSuccess_gas() (gas: 104080) +RMN_setConfig:test_SetConfigSuccess_gas() (gas: 104089) RMN_setConfig:test_TotalWeightsSmallerThanEachThreshold_Revert() (gas: 30173) -RMN_setConfig:test_VoteToBlessByEjectedVoter_Revert() (gas: 130363) +RMN_setConfig:test_VoteToBlessByEjectedVoter_Revert() (gas: 130377) RMN_setConfig:test_VotersLengthIsZero_Revert() (gas: 12128) RMN_setConfig:test_WeightIsZeroAddress_Revert() (gas: 15734) -RMN_setConfig_Benchmark_1:test_SetConfig_7Voters_gas() (gas: 659462) -RMN_setConfig_Benchmark_2:test_ResetConfig_7Voters_gas() (gas: 212484) -RMN_unvoteToCurse:test_InvalidCursesHash() (gas: 26412) -RMN_unvoteToCurse:test_OwnerSkips() (gas: 33813) -RMN_unvoteToCurse:test_OwnerSucceeds() (gas: 63981) -RMN_unvoteToCurse:test_UnauthorizedVoter() (gas: 47598) -RMN_unvoteToCurse:test_ValidCursesHash() (gas: 61127) -RMN_unvoteToCurse:test_VotersCantLiftCurseButOwnerCan() (gas: 628641) -RMN_voteToBless:test_Curse_Revert() (gas: 473252) -RMN_voteToBless:test_IsAlreadyBlessed_Revert() (gas: 115312) -RMN_voteToBless:test_RootSuccess() (gas: 558319) -RMN_voteToBless:test_SenderAlreadyVoted_Revert() (gas: 97177) +RMN_setConfig_Benchmark_1:test_SetConfig_7Voters_gas() (gas: 659495) +RMN_setConfig_Benchmark_2:test_ResetConfig_7Voters_gas() (gas: 212511) +RMN_unvoteToCurse:test_InvalidCursesHash() (gas: 26430) +RMN_unvoteToCurse:test_OwnerSkips() (gas: 33831) +RMN_unvoteToCurse:test_OwnerSucceeds() (gas: 63999) +RMN_unvoteToCurse:test_UnauthorizedVoter() (gas: 47634) +RMN_unvoteToCurse:test_ValidCursesHash() (gas: 61139) +RMN_unvoteToCurse:test_VotersCantLiftCurseButOwnerCan() (gas: 628827) +RMN_voteToBless:test_Curse_Revert() (gas: 473342) +RMN_voteToBless:test_IsAlreadyBlessed_Revert() (gas: 115339) +RMN_voteToBless:test_RootSuccess() (gas: 558469) +RMN_voteToBless:test_SenderAlreadyVoted_Revert() (gas: 97204) RMN_voteToBless:test_UnauthorizedVoter_Revert() (gas: 17096) -RMN_voteToBless_Benchmark:test_1RootSuccess_gas() (gas: 44703) -RMN_voteToBless_Benchmark:test_3RootSuccess_gas() (gas: 98673) -RMN_voteToBless_Benchmark:test_5RootSuccess_gas() (gas: 152581) -RMN_voteToBless_Blessed_Benchmark:test_1RootSuccessBecameBlessed_gas() (gas: 29673) -RMN_voteToBless_Blessed_Benchmark:test_1RootSuccess_gas() (gas: 27619) -RMN_voteToBless_Blessed_Benchmark:test_3RootSuccess_gas() (gas: 81611) -RMN_voteToBless_Blessed_Benchmark:test_5RootSuccess_gas() (gas: 135497) -RMN_voteToCurse:test_CurseOnlyWhenThresholdReached_Success() (gas: 1650405) -RMN_voteToCurse:test_EmptySubjects_Revert() (gas: 14031) -RMN_voteToCurse:test_EvenIfAlreadyCursed_Success() (gas: 534854) -RMN_voteToCurse:test_OwnerCanCurseAndUncurse() (gas: 399532) -RMN_voteToCurse:test_RepeatedSubject_Revert() (gas: 144336) -RMN_voteToCurse:test_ReusedCurseId_Revert() (gas: 146885) -RMN_voteToCurse:test_UnauthorizedVoter_Revert() (gas: 12630) -RMN_voteToCurse:test_VoteToCurse_NoCurse_Success() (gas: 187388) -RMN_voteToCurse:test_VoteToCurse_YesCurse_Success() (gas: 472854) -RMN_voteToCurse_2:test_VotesAreDroppedIfSubjectIsNotCursedDuringConfigChange() (gas: 370837) -RMN_voteToCurse_2:test_VotesAreRetainedIfSubjectIsCursedDuringConfigChange() (gas: 1153282) -RMN_voteToCurse_Benchmark_1:test_VoteToCurse_NewSubject_NewVoter_NoCurse_gas() (gas: 141079) -RMN_voteToCurse_Benchmark_1:test_VoteToCurse_NewSubject_NewVoter_YesCurse_gas() (gas: 165213) -RMN_voteToCurse_Benchmark_2:test_VoteToCurse_OldSubject_NewVoter_NoCurse_gas() (gas: 121413) -RMN_voteToCurse_Benchmark_2:test_VoteToCurse_OldSubject_OldVoter_NoCurse_gas() (gas: 98355) -RMN_voteToCurse_Benchmark_3:test_VoteToCurse_OldSubject_NewVoter_YesCurse_gas() (gas: 145748) +RMN_voteToBless_Benchmark:test_1RootSuccess_gas() (gas: 44706) +RMN_voteToBless_Benchmark:test_3RootSuccess_gas() (gas: 98682) +RMN_voteToBless_Benchmark:test_5RootSuccess_gas() (gas: 152596) +RMN_voteToBless_Blessed_Benchmark:test_1RootSuccessBecameBlessed_gas() (gas: 29676) +RMN_voteToBless_Blessed_Benchmark:test_1RootSuccess_gas() (gas: 27622) +RMN_voteToBless_Blessed_Benchmark:test_3RootSuccess_gas() (gas: 81620) +RMN_voteToBless_Blessed_Benchmark:test_5RootSuccess_gas() (gas: 135512) +RMN_voteToCurse:test_CurseOnlyWhenThresholdReached_Success() (gas: 1651029) +RMN_voteToCurse:test_EmptySubjects_Revert() (gas: 14055) +RMN_voteToCurse:test_EvenIfAlreadyCursed_Success() (gas: 535106) +RMN_voteToCurse:test_OwnerCanCurseAndUncurse() (gas: 399724) +RMN_voteToCurse:test_RepeatedSubject_Revert() (gas: 144396) +RMN_voteToCurse:test_ReusedCurseId_Revert() (gas: 146963) +RMN_voteToCurse:test_UnauthorizedVoter_Revert() (gas: 12660) +RMN_voteToCurse:test_VoteToCurse_NoCurse_Success() (gas: 187466) +RMN_voteToCurse:test_VoteToCurse_YesCurse_Success() (gas: 473034) +RMN_voteToCurse_2:test_VotesAreDroppedIfSubjectIsNotCursedDuringConfigChange() (gas: 370924) +RMN_voteToCurse_2:test_VotesAreRetainedIfSubjectIsCursedDuringConfigChange() (gas: 1153719) +RMN_voteToCurse_Benchmark_1:test_VoteToCurse_NewSubject_NewVoter_NoCurse_gas() (gas: 141103) +RMN_voteToCurse_Benchmark_1:test_VoteToCurse_NewSubject_NewVoter_YesCurse_gas() (gas: 165243) +RMN_voteToCurse_Benchmark_2:test_VoteToCurse_OldSubject_NewVoter_NoCurse_gas() (gas: 121431) +RMN_voteToCurse_Benchmark_2:test_VoteToCurse_OldSubject_OldVoter_NoCurse_gas() (gas: 98367) +RMN_voteToCurse_Benchmark_3:test_VoteToCurse_OldSubject_NewVoter_YesCurse_gas() (gas: 145778) RateLimiter_constructor:test_Constructor_Success() (gas: 19704) -RateLimiter_consume:test_AggregateValueMaxCapacityExceeded_Revert() (gas: 16006) +RateLimiter_consume:test_AggregateValueMaxCapacityExceeded_Revert() (gas: 16012) RateLimiter_consume:test_AggregateValueRateLimitReached_Revert() (gas: 22345) RateLimiter_consume:test_ConsumeAggregateValue_Success() (gas: 31443) RateLimiter_consume:test_ConsumeTokens_Success() (gas: 20366) -RateLimiter_consume:test_ConsumeUnlimited_Success() (gas: 40573) -RateLimiter_consume:test_ConsumingMoreThanUint128_Revert() (gas: 15786) +RateLimiter_consume:test_ConsumeUnlimited_Success() (gas: 40585) +RateLimiter_consume:test_ConsumingMoreThanUint128_Revert() (gas: 15792) RateLimiter_consume:test_RateLimitReachedOverConsecutiveBlocks_Revert() (gas: 25747) RateLimiter_consume:test_Refill_Success() (gas: 37354) RateLimiter_consume:test_TokenMaxCapacityExceeded_Revert() (gas: 18340) RateLimiter_consume:test_TokenRateLimitReached_Revert() (gas: 24823) -RateLimiter_currentTokenBucketState:test_CurrentTokenBucketState_Success() (gas: 38875) -RateLimiter_currentTokenBucketState:test_Refill_Success() (gas: 46768) -RateLimiter_setTokenBucketConfig:test_SetRateLimiterConfig_Success() (gas: 38446) +RateLimiter_currentTokenBucketState:test_CurrentTokenBucketState_Success() (gas: 38884) +RateLimiter_currentTokenBucketState:test_Refill_Success() (gas: 46777) +RateLimiter_setTokenBucketConfig:test_SetRateLimiterConfig_Success() (gas: 38449) RegistryModuleOwnerCustom_constructor:test_constructor_Revert() (gas: 36037) -RegistryModuleOwnerCustom_registerAdminViaGetCCIPAdmin:test_registerAdminViaGetCCIPAdmin_Revert() (gas: 19643) -RegistryModuleOwnerCustom_registerAdminViaGetCCIPAdmin:test_registerAdminViaGetCCIPAdmin_Success() (gas: 129930) -RegistryModuleOwnerCustom_registerAdminViaOwner:test_registerAdminViaOwner_Revert() (gas: 19457) -RegistryModuleOwnerCustom_registerAdminViaOwner:test_registerAdminViaOwner_Success() (gas: 129743) -Router_applyRampUpdates:test_OffRampMismatch_Revert() (gas: 89306) -Router_applyRampUpdates:test_OffRampUpdatesWithRouting() (gas: 10648972) +RegistryModuleOwnerCustom_registerAdminViaGetCCIPAdmin:test_registerAdminViaGetCCIPAdmin_Revert() (gas: 19655) +RegistryModuleOwnerCustom_registerAdminViaGetCCIPAdmin:test_registerAdminViaGetCCIPAdmin_Success() (gas: 129978) +RegistryModuleOwnerCustom_registerAdminViaOwner:test_registerAdminViaOwner_Revert() (gas: 19475) +RegistryModuleOwnerCustom_registerAdminViaOwner:test_registerAdminViaOwner_Success() (gas: 129797) +Router_applyRampUpdates:test_OffRampMismatch_Revert() (gas: 89321) +Router_applyRampUpdates:test_OffRampUpdatesWithRouting() (gas: 10652272) Router_applyRampUpdates:test_OnRampDisable() (gas: 55971) Router_applyRampUpdates:test_OnlyOwner_Revert() (gas: 12317) -Router_ccipSend:test_CCIPSendLinkFeeNoTokenSuccess_gas() (gas: 113852) -Router_ccipSend:test_CCIPSendLinkFeeOneTokenSuccess_gas() (gas: 201347) -Router_ccipSend:test_CCIPSendNativeFeeNoTokenSuccess_gas() (gas: 126206) -Router_ccipSend:test_CCIPSendNativeFeeOneTokenSuccess_gas() (gas: 213703) -Router_ccipSend:test_FeeTokenAmountTooLow_Revert() (gas: 64181) -Router_ccipSend:test_InvalidMsgValue() (gas: 32008) -Router_ccipSend:test_NativeFeeTokenInsufficientValue() (gas: 66640) -Router_ccipSend:test_NativeFeeTokenOverpay_Success() (gas: 169155) -Router_ccipSend:test_NativeFeeTokenZeroValue() (gas: 53922) -Router_ccipSend:test_NativeFeeToken_Success() (gas: 167749) -Router_ccipSend:test_NonLinkFeeToken_Success() (gas: 238276) -Router_ccipSend:test_UnsupportedDestinationChain_Revert() (gas: 24761) -Router_ccipSend:test_WhenNotHealthy_Revert() (gas: 44736) -Router_ccipSend:test_WrappedNativeFeeToken_Success() (gas: 170007) -Router_ccipSend:test_ZeroFeeAndGasPrice_Success() (gas: 240298) +Router_ccipSend:test_CCIPSendLinkFeeNoTokenSuccess_gas() (gas: 114017) +Router_ccipSend:test_CCIPSendLinkFeeOneTokenSuccess_gas() (gas: 201533) +Router_ccipSend:test_CCIPSendNativeFeeNoTokenSuccess_gas() (gas: 126386) +Router_ccipSend:test_CCIPSendNativeFeeOneTokenSuccess_gas() (gas: 213904) +Router_ccipSend:test_FeeTokenAmountTooLow_Revert() (gas: 64241) +Router_ccipSend:test_InvalidMsgValue() (gas: 32014) +Router_ccipSend:test_NativeFeeTokenInsufficientValue() (gas: 66706) +Router_ccipSend:test_NativeFeeTokenOverpay_Success() (gas: 169401) +Router_ccipSend:test_NativeFeeTokenZeroValue() (gas: 53982) +Router_ccipSend:test_NativeFeeToken_Success() (gas: 167995) +Router_ccipSend:test_NonLinkFeeToken_Success() (gas: 238462) +Router_ccipSend:test_UnsupportedDestinationChain_Revert() (gas: 24767) +Router_ccipSend:test_WhenNotHealthy_Revert() (gas: 44742) +Router_ccipSend:test_WrappedNativeFeeToken_Success() (gas: 170253) +Router_ccipSend:test_ZeroFeeAndGasPrice_Success() (gas: 240550) Router_constructor:test_Constructor_Success() (gas: 13070) Router_getArmProxy:test_getArmProxy() (gas: 10561) -Router_getFee:test_GetFeeSupportedChain_Success() (gas: 44349) -Router_getFee:test_UnsupportedDestinationChain_Revert() (gas: 17144) +Router_getFee:test_GetFeeSupportedChain_Success() (gas: 44415) +Router_getFee:test_UnsupportedDestinationChain_Revert() (gas: 17156) Router_getSupportedTokens:test_GetSupportedTokens_Revert() (gas: 10460) -Router_recoverTokens:test_RecoverTokensInvalidRecipient_Revert() (gas: 11316) +Router_recoverTokens:test_RecoverTokensInvalidRecipient_Revert() (gas: 11322) Router_recoverTokens:test_RecoverTokensNoFunds_Revert() (gas: 20261) -Router_recoverTokens:test_RecoverTokensNonOwner_Revert() (gas: 11159) -Router_recoverTokens:test_RecoverTokensValueReceiver_Revert() (gas: 402507) -Router_recoverTokens:test_RecoverTokens_Success() (gas: 52437) +Router_recoverTokens:test_RecoverTokensNonOwner_Revert() (gas: 11171) +Router_recoverTokens:test_RecoverTokensValueReceiver_Revert() (gas: 392489) +Router_recoverTokens:test_RecoverTokens_Success() (gas: 52442) Router_routeMessage:test_AutoExec_Success() (gas: 42738) Router_routeMessage:test_ExecutionEvent_Success() (gas: 158166) Router_routeMessage:test_ManualExec_Success() (gas: 35429) -Router_routeMessage:test_OnlyOffRamp_Revert() (gas: 25140) -Router_routeMessage:test_WhenNotHealthy_Revert() (gas: 44742) -Router_setWrappedNative:test_OnlyOwner_Revert() (gas: 10986) -SelfFundedPingPong_ccipReceive:test_FundingIfNotANop_Revert() (gas: 55572) -SelfFundedPingPong_ccipReceive:test_Funding_Success() (gas: 417040) +Router_routeMessage:test_OnlyOffRamp_Revert() (gas: 25146) +Router_routeMessage:test_WhenNotHealthy_Revert() (gas: 44754) +Router_setWrappedNative:test_OnlyOwner_Revert() (gas: 10992) +SelfFundedPingPong_ccipReceive:test_FundingIfNotANop_Revert() (gas: 55596) +SelfFundedPingPong_ccipReceive:test_Funding_Success() (gas: 417712) SelfFundedPingPong_setCountIncrBeforeFunding:test_setCountIncrBeforeFunding() (gas: 20169) -TokenAdminRegistry_acceptAdminRole:test_acceptAdminRole_OnlyPendingAdministrator_Revert() (gas: 51109) -TokenAdminRegistry_acceptAdminRole:test_acceptAdminRole_Success() (gas: 43956) +TokenAdminRegistry_acceptAdminRole:test_acceptAdminRole_OnlyPendingAdministrator_Revert() (gas: 51115) +TokenAdminRegistry_acceptAdminRole:test_acceptAdminRole_Success() (gas: 43961) TokenAdminRegistry_addRegistryModule:test_addRegistryModule_OnlyOwner_Revert() (gas: 12641) TokenAdminRegistry_addRegistryModule:test_addRegistryModule_Success() (gas: 67038) -TokenAdminRegistry_getAllConfiguredTokens:test_getAllConfiguredTokens_outOfBounds_Success() (gas: 11350) +TokenAdminRegistry_getAllConfiguredTokens:test_getAllConfiguredTokens_outOfBounds_Success() (gas: 11356) TokenAdminRegistry_getPool:test_getPool_Success() (gas: 17596) TokenAdminRegistry_getPools:test_getPools_Success() (gas: 39920) -TokenAdminRegistry_isAdministrator:test_isAdministrator_Success() (gas: 105946) +TokenAdminRegistry_isAdministrator:test_isAdministrator_Success() (gas: 105952) TokenAdminRegistry_proposeAdministrator:test_proposeAdministrator_AlreadyRegistered_Revert() (gas: 104067) TokenAdminRegistry_proposeAdministrator:test_proposeAdministrator_OnlyRegistryModule_Revert() (gas: 15499) TokenAdminRegistry_proposeAdministrator:test_proposeAdministrator_ZeroAddress_Revert() (gas: 15044) -TokenAdminRegistry_proposeAdministrator:test_proposeAdministrator_module_Success() (gas: 112572) -TokenAdminRegistry_proposeAdministrator:test_proposeAdministrator_owner_Success() (gas: 107686) -TokenAdminRegistry_proposeAdministrator:test_proposeAdministrator_reRegisterWhileUnclaimed_Success() (gas: 115710) +TokenAdminRegistry_proposeAdministrator:test_proposeAdministrator_module_Success() (gas: 112578) +TokenAdminRegistry_proposeAdministrator:test_proposeAdministrator_owner_Success() (gas: 107692) +TokenAdminRegistry_proposeAdministrator:test_proposeAdministrator_reRegisterWhileUnclaimed_Success() (gas: 115716) TokenAdminRegistry_removeRegistryModule:test_removeRegistryModule_OnlyOwner_Revert() (gas: 12597) -TokenAdminRegistry_removeRegistryModule:test_removeRegistryModule_Success() (gas: 54495) +TokenAdminRegistry_removeRegistryModule:test_removeRegistryModule_Success() (gas: 54509) TokenAdminRegistry_setPool:test_setPool_InvalidTokenPoolToken_Revert() (gas: 19166) -TokenAdminRegistry_setPool:test_setPool_OnlyAdministrator_Revert() (gas: 18026) +TokenAdminRegistry_setPool:test_setPool_OnlyAdministrator_Revert() (gas: 18032) TokenAdminRegistry_setPool:test_setPool_Success() (gas: 35961) TokenAdminRegistry_setPool:test_setPool_ZeroAddressRemovesPool_Success() (gas: 30635) -TokenAdminRegistry_transferAdminRole:test_transferAdminRole_OnlyAdministrator_Revert() (gas: 18085) -TokenAdminRegistry_transferAdminRole:test_transferAdminRole_Success() (gas: 49390) -TokenPoolAndProxy:test_lockOrBurn_burnMint_Success() (gas: 5945631) -TokenPoolAndProxy:test_lockOrBurn_burnWithFromMint_Success() (gas: 5977107) -TokenPoolAndProxy:test_lockOrBurn_lockRelease_Success() (gas: 6179838) -TokenPoolAndProxy:test_setPreviousPool_Success() (gas: 3334200) -TokenPoolAndProxyMigration:test_tokenPoolMigration_Success_1_2() (gas: 6789707) -TokenPoolAndProxyMigration:test_tokenPoolMigration_Success_1_4() (gas: 7022389) -TokenPoolWithAllowList_applyAllowListUpdates:test_AllowListNotEnabled_Revert() (gas: 2100002) +TokenAdminRegistry_transferAdminRole:test_transferAdminRole_OnlyAdministrator_Revert() (gas: 18091) +TokenAdminRegistry_transferAdminRole:test_transferAdminRole_Success() (gas: 49402) +TokenPoolAndProxy:test_lockOrBurn_burnMint_Success() (gas: 5855541) +TokenPoolAndProxy:test_lockOrBurn_burnWithFromMint_Success() (gas: 5887014) +TokenPoolAndProxy:test_lockOrBurn_lockRelease_Success() (gas: 6040093) +TokenPoolAndProxy:test_setPreviousPool_Success() (gas: 3214305) +TokenPoolAndProxyMigration:test_tokenPoolMigration_Success_1_2() (gas: 6699954) +TokenPoolAndProxyMigration:test_tokenPoolMigration_Success_1_4() (gas: 6912610) +TokenPoolWithAllowList_applyAllowListUpdates:test_AllowListNotEnabled_Revert() (gas: 2069936) TokenPoolWithAllowList_applyAllowListUpdates:test_OnlyOwner_Revert() (gas: 12101) TokenPoolWithAllowList_applyAllowListUpdates:test_SetAllowListSkipsZero_Success() (gas: 23464) TokenPoolWithAllowList_applyAllowListUpdates:test_SetAllowList_Success() (gas: 177802) @@ -947,42 +948,42 @@ TokenPoolWithAllowList_setRouter:test_SetRouter_Success() (gas: 24843) TokenPool_applyChainUpdates:test_applyChainUpdates_DisabledNonZeroRateLimit_Revert() (gas: 271551) TokenPool_applyChainUpdates:test_applyChainUpdates_InvalidRateLimitRate_Revert() (gas: 542134) TokenPool_applyChainUpdates:test_applyChainUpdates_NonExistentChain_Revert() (gas: 18449) -TokenPool_applyChainUpdates:test_applyChainUpdates_OnlyCallableByOwner_Revert() (gas: 11391) +TokenPool_applyChainUpdates:test_applyChainUpdates_OnlyCallableByOwner_Revert() (gas: 11397) TokenPool_applyChainUpdates:test_applyChainUpdates_Success() (gas: 477675) -TokenPool_applyChainUpdates:test_applyChainUpdates_ZeroAddressNotAllowed_Revert() (gas: 157320) -TokenPool_constructor:test_ZeroAddressNotAllowed_Revert() (gas: 70594) +TokenPool_applyChainUpdates:test_applyChainUpdates_ZeroAddressNotAllowed_Revert() (gas: 157356) +TokenPool_constructor:test_ZeroAddressNotAllowed_Revert() (gas: 70564) TokenPool_constructor:test_immutableFields_Success() (gas: 20544) -TokenPool_getRemotePool:test_getRemotePool_Success() (gas: 274133) -TokenPool_onlyOffRamp:test_CallerIsNotARampOnRouter_Revert() (gas: 277110) -TokenPool_onlyOffRamp:test_ChainNotAllowed_Revert() (gas: 289682) +TokenPool_getRemotePool:test_getRemotePool_Success() (gas: 274145) +TokenPool_onlyOffRamp:test_CallerIsNotARampOnRouter_Revert() (gas: 277116) +TokenPool_onlyOffRamp:test_ChainNotAllowed_Revert() (gas: 289701) TokenPool_onlyOffRamp:test_onlyOffRamp_Success() (gas: 349912) -TokenPool_onlyOnRamp:test_CallerIsNotARampOnRouter_Revert() (gas: 276850) -TokenPool_onlyOnRamp:test_ChainNotAllowed_Revert() (gas: 253710) +TokenPool_onlyOnRamp:test_CallerIsNotARampOnRouter_Revert() (gas: 276856) +TokenPool_onlyOnRamp:test_ChainNotAllowed_Revert() (gas: 253729) TokenPool_onlyOnRamp:test_onlyOnRamp_Success() (gas: 304962) -TokenPool_setChainRateLimiterConfig:test_NonExistentChain_Revert() (gas: 17142) -TokenPool_setChainRateLimiterConfig:test_OnlyOwnerOrRateLimitAdmin_Revert() (gas: 15137) -TokenPool_setRemotePool:test_setRemotePool_NonExistentChain_Reverts() (gas: 15653) -TokenPool_setRemotePool:test_setRemotePool_OnlyOwner_Reverts() (gas: 13201) -TokenPool_setRemotePool:test_setRemotePool_Success() (gas: 282083) -TokenProxy_ccipSend:test_CcipSendGasShouldBeZero_Revert() (gas: 17121) -TokenProxy_ccipSend:test_CcipSendInsufficientAllowance_Revert() (gas: 134143) +TokenPool_setChainRateLimiterConfig:test_NonExistentChain_Revert() (gas: 17148) +TokenPool_setChainRateLimiterConfig:test_OnlyOwnerOrRateLimitAdmin_Revert() (gas: 15149) +TokenPool_setRemotePool:test_setRemotePool_NonExistentChain_Reverts() (gas: 15665) +TokenPool_setRemotePool:test_setRemotePool_OnlyOwner_Reverts() (gas: 13213) +TokenPool_setRemotePool:test_setRemotePool_Success() (gas: 282095) +TokenProxy_ccipSend:test_CcipSendGasShouldBeZero_Revert() (gas: 17127) +TokenProxy_ccipSend:test_CcipSendInsufficientAllowance_Revert() (gas: 134209) TokenProxy_ccipSend:test_CcipSendInvalidToken_Revert() (gas: 15931) -TokenProxy_ccipSend:test_CcipSendNative_Success() (gas: 242858) +TokenProxy_ccipSend:test_CcipSendNative_Success() (gas: 243059) TokenProxy_ccipSend:test_CcipSendNoDataAllowed_Revert() (gas: 16315) -TokenProxy_ccipSend:test_CcipSend_Success() (gas: 261460) +TokenProxy_ccipSend:test_CcipSend_Success() (gas: 261662) TokenProxy_constructor:test_Constructor() (gas: 13812) -TokenProxy_getFee:test_GetFeeGasShouldBeZero_Revert() (gas: 16839) +TokenProxy_getFee:test_GetFeeGasShouldBeZero_Revert() (gas: 16845) TokenProxy_getFee:test_GetFeeInvalidToken_Revert() (gas: 12670) TokenProxy_getFee:test_GetFeeNoDataAllowed_Revert() (gas: 15864) -TokenProxy_getFee:test_GetFee_Success() (gas: 84508) +TokenProxy_getFee:test_GetFee_Success() (gas: 84634) USDCTokenPool__validateMessage:test_ValidateInvalidMessage_Revert() (gas: 25407) -USDCTokenPool_lockOrBurn:test_CallerIsNotARampOnRouter_Revert() (gas: 35364) -USDCTokenPool_lockOrBurn:test_LockOrBurnWithAllowList_Revert() (gas: 30106) -USDCTokenPool_lockOrBurn:test_LockOrBurn_Success() (gas: 133143) -USDCTokenPool_lockOrBurn:test_UnknownDomain_Revert() (gas: 477468) -USDCTokenPool_releaseOrMint:test_ReleaseOrMintRealTx_Success() (gas: 268219) -USDCTokenPool_releaseOrMint:test_TokenMaxCapacityExceeded_Revert() (gas: 50718) -USDCTokenPool_releaseOrMint:test_UnlockingUSDCFailed_Revert() (gas: 98636) -USDCTokenPool_setDomains:test_InvalidDomain_Revert() (gas: 66174) -USDCTokenPool_setDomains:test_OnlyOwner_Revert() (gas: 11339) -USDCTokenPool_supportsInterface:test_SupportsInterface_Success() (gas: 9876) \ No newline at end of file +USDCTokenPool_lockOrBurn:test_CallerIsNotARampOnRouter_Revert() (gas: 35376) +USDCTokenPool_lockOrBurn:test_LockOrBurnWithAllowList_Revert() (gas: 30112) +USDCTokenPool_lockOrBurn:test_LockOrBurn_Success() (gas: 133148) +USDCTokenPool_lockOrBurn:test_UnknownDomain_Revert() (gas: 477486) +USDCTokenPool_releaseOrMint:test_ReleaseOrMintRealTx_Success() (gas: 268238) +USDCTokenPool_releaseOrMint:test_TokenMaxCapacityExceeded_Revert() (gas: 50724) +USDCTokenPool_releaseOrMint:test_UnlockingUSDCFailed_Revert() (gas: 98642) +USDCTokenPool_setDomains:test_InvalidDomain_Revert() (gas: 66189) +USDCTokenPool_setDomains:test_OnlyOwner_Revert() (gas: 11345) +USDCTokenPool_supportsInterface:test_SupportsInterface_Success() (gas: 9888) \ No newline at end of file From 52d36b1b8353162a2c07fdb75471770d396929ec Mon Sep 17 00:00:00 2001 From: Ryan <80392855+RayXpub@users.noreply.github.com> Date: Thu, 12 Sep 2024 14:07:13 +0400 Subject: [PATCH 15/19] chore: fmt --- contracts/src/v0.8/ccip/offRamp/OffRamp.sol | 3 +-- contracts/src/v0.8/ccip/test/offRamp/OffRamp.t.sol | 13 ++++++++----- 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/contracts/src/v0.8/ccip/offRamp/OffRamp.sol b/contracts/src/v0.8/ccip/offRamp/OffRamp.sol index 1d2e9ae73e..5280a7f6e2 100644 --- a/contracts/src/v0.8/ccip/offRamp/OffRamp.sol +++ b/contracts/src/v0.8/ccip/offRamp/OffRamp.sol @@ -787,7 +787,7 @@ contract OffRamp is ITypeAndVersion, MultiOCR3Base { if (currentConfig.onRamp.length == 0) { currentConfig.minSeqNr = 1; emit SourceChainSelectorAdded(sourceChainSelector); - } else if (currentConfig.minSeqNr != 1) { + } else if (currentConfig.minSeqNr != 1) { // OnRamp updates should only happens due to a misconfiguration // If an OnRamp is misconfigured not reports should have been committed and no messages should have been executed // This is enforced byt the onRamp address check in the commit function @@ -799,7 +799,6 @@ contract OffRamp is ITypeAndVersion, MultiOCR3Base { revert ZeroAddressNotAllowed(); } - currentConfig.onRamp = newOnRamp; currentConfig.isEnabled = sourceConfigUpdate.isEnabled; currentConfig.router = sourceConfigUpdate.router; diff --git a/contracts/src/v0.8/ccip/test/offRamp/OffRamp.t.sol b/contracts/src/v0.8/ccip/test/offRamp/OffRamp.t.sol index 75fb1bac27..42aa6ade1a 100644 --- a/contracts/src/v0.8/ccip/test/offRamp/OffRamp.t.sol +++ b/contracts/src/v0.8/ccip/test/offRamp/OffRamp.t.sol @@ -3255,11 +3255,14 @@ contract OffRamp_applySourceChainConfigUpdates is OffRampSetup { merkleRoot: "test #2" }); - _commit(OffRamp.CommitReport({ - priceUpdates: _getSingleTokenPriceUpdateStruct(s_sourceFeeToken, 4e18), - merkleRoots: roots, - rmnSignatures: s_rmnSignatures - }), s_latestSequenceNumber); + _commit( + OffRamp.CommitReport({ + priceUpdates: _getSingleTokenPriceUpdateStruct(s_sourceFeeToken, 4e18), + merkleRoots: roots, + rmnSignatures: s_rmnSignatures + }), + s_latestSequenceNumber + ); vm.stopPrank(); vm.startPrank(OWNER); From 48868c76b41a72a8cd81096c74ae50a128fab9f2 Mon Sep 17 00:00:00 2001 From: Ryan <80392855+RayXpub@users.noreply.github.com> Date: Thu, 12 Sep 2024 14:10:37 +0400 Subject: [PATCH 16/19] chore: update geth wrappers --- core/gethwrappers/ccip/generated/offramp/offramp.go | 4 ++-- .../generated-wrapper-dependency-versions-do-not-edit.txt | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/core/gethwrappers/ccip/generated/offramp/offramp.go b/core/gethwrappers/ccip/generated/offramp/offramp.go index 1f24887773..8226f37f99 100644 --- a/core/gethwrappers/ccip/generated/offramp/offramp.go +++ b/core/gethwrappers/ccip/generated/offramp/offramp.go @@ -154,8 +154,8 @@ type OffRampStaticConfig struct { } var OffRampMetaData = &bind.MetaData{ - ABI: "[{\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"chainSelector\",\"type\":\"uint64\"},{\"internalType\":\"contractIRMNV2\",\"name\":\"rmn\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tokenAdminRegistry\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"nonceManager\",\"type\":\"address\"}],\"internalType\":\"structOffRamp.StaticConfig\",\"name\":\"staticConfig\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"feeQuoter\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"permissionLessExecutionThresholdSeconds\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"messageValidator\",\"type\":\"address\"}],\"internalType\":\"structOffRamp.DynamicConfig\",\"name\":\"dynamicConfig\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"contractIRouter\",\"name\":\"router\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"bool\",\"name\":\"isEnabled\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"onRamp\",\"type\":\"bytes\"}],\"internalType\":\"structOffRamp.SourceChainConfigArgs[]\",\"name\":\"sourceChainConfigs\",\"type\":\"tuple[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"CanOnlySelfCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"expected\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"actual\",\"type\":\"bytes32\"}],\"name\":\"ConfigDigestMismatch\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"}],\"name\":\"CursedByRMN\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"EmptyReport\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"messageId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"err\",\"type\":\"bytes\"}],\"name\":\"ExecutionError\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"expected\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"actual\",\"type\":\"uint256\"}],\"name\":\"ForkedChain\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"enumMultiOCR3Base.InvalidConfigErrorType\",\"name\":\"errorType\",\"type\":\"uint8\"}],\"name\":\"InvalidConfig\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"expected\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"got\",\"type\":\"uint256\"}],\"name\":\"InvalidDataLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"encodedAddress\",\"type\":\"bytes\"}],\"name\":\"InvalidEVMAddress\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"min\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"max\",\"type\":\"uint64\"}],\"name\":\"InvalidInterval\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"messageId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"newLimit\",\"type\":\"uint256\"}],\"name\":\"InvalidManualExecutionGasLimit\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"messageId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"tokenIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"oldLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"tokenGasOverride\",\"type\":\"uint256\"}],\"name\":\"InvalidManualExecutionTokenGasOverride\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"messageDestChainSelector\",\"type\":\"uint64\"}],\"name\":\"InvalidMessageDestChainSelector\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"sequenceNumber\",\"type\":\"uint64\"},{\"internalType\":\"enumInternal.MessageExecutionState\",\"name\":\"newState\",\"type\":\"uint8\"}],\"name\":\"InvalidNewState\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"reportOnRamp\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"configOnRamp\",\"type\":\"bytes\"}],\"name\":\"InvalidOnRamp\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidOnRampUpdate\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidProof\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidRoot\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"}],\"name\":\"InvalidStaticConfig\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LeavesCannotBeEmpty\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"messageId\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"sequenceNumber\",\"type\":\"uint64\"}],\"name\":\"ManualExecutionGasAmountCountMismatch\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ManualExecutionGasLimitMismatch\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"}],\"name\":\"ManualExecutionNotYetEnabled\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"errorReason\",\"type\":\"bytes\"}],\"name\":\"MessageValidationError\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NonUniqueSignatures\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"notPool\",\"type\":\"address\"}],\"name\":\"NotACompatiblePool\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OracleCannotBeZeroAddress\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"err\",\"type\":\"bytes\"}],\"name\":\"ReceiverError\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amountReleased\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balancePre\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balancePost\",\"type\":\"uint256\"}],\"name\":\"ReleaseOrMintBalanceMismatch\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"merkleRoot\",\"type\":\"bytes32\"}],\"name\":\"RootAlreadyCommitted\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"}],\"name\":\"RootNotCommitted\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SignatureVerificationDisabled\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SignaturesOutOfRegistration\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"}],\"name\":\"SourceChainNotEnabled\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"reportSourceChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"messageSourceChainSelector\",\"type\":\"uint64\"}],\"name\":\"SourceChainSelectorMismatch\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"StaleCommitReport\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"ocrPluginType\",\"type\":\"uint8\"}],\"name\":\"StaticConfigCannotBeChanged\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"sequenceNumber\",\"type\":\"uint64\"}],\"name\":\"TokenDataMismatch\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"err\",\"type\":\"bytes\"}],\"name\":\"TokenHandlingError\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UnauthorizedSigner\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UnauthorizedTransmitter\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UnexpectedTokenData\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"expected\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"actual\",\"type\":\"uint256\"}],\"name\":\"WrongMessageLength\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"WrongNumberOfSignatures\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZeroAddressNotAllowed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZeroChainSelectorNotAllowed\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"sequenceNumber\",\"type\":\"uint64\"}],\"name\":\"AlreadyAttempted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"onRampAddress\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"minSeqNr\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"maxSeqNr\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"merkleRoot\",\"type\":\"bytes32\"}],\"indexed\":false,\"internalType\":\"structInternal.MerkleRoot[]\",\"name\":\"merkleRoots\",\"type\":\"tuple[]\"},{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"sourceToken\",\"type\":\"address\"},{\"internalType\":\"uint224\",\"name\":\"usdPerToken\",\"type\":\"uint224\"}],\"internalType\":\"structInternal.TokenPriceUpdate[]\",\"name\":\"tokenPriceUpdates\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"uint64\",\"name\":\"destChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"uint224\",\"name\":\"usdPerUnitGas\",\"type\":\"uint224\"}],\"internalType\":\"structInternal.GasPriceUpdate[]\",\"name\":\"gasPriceUpdates\",\"type\":\"tuple[]\"}],\"indexed\":false,\"internalType\":\"structInternal.PriceUpdates\",\"name\":\"priceUpdates\",\"type\":\"tuple\"}],\"name\":\"CommitReportAccepted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"ocrPluginType\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"configDigest\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"signers\",\"type\":\"address[]\"},{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"transmitters\",\"type\":\"address[]\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"F\",\"type\":\"uint8\"}],\"name\":\"ConfigSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"feeQuoter\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"permissionLessExecutionThresholdSeconds\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"messageValidator\",\"type\":\"address\"}],\"indexed\":false,\"internalType\":\"structOffRamp.DynamicConfig\",\"name\":\"dynamicConfig\",\"type\":\"tuple\"}],\"name\":\"DynamicConfigSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"sequenceNumber\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"messageId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"messageHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"enumInternal.MessageExecutionState\",\"name\":\"state\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"returnData\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"gasUsed\",\"type\":\"uint256\"}],\"name\":\"ExecutionStateChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"OwnershipTransferRequested\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"root\",\"type\":\"bytes32\"}],\"name\":\"RootRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"sequenceNumber\",\"type\":\"uint64\"}],\"name\":\"SkippedAlreadyExecutedMessage\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"}],\"name\":\"SkippedReportExecution\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"components\":[{\"internalType\":\"contractIRouter\",\"name\":\"router\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"isEnabled\",\"type\":\"bool\"},{\"internalType\":\"uint64\",\"name\":\"minSeqNr\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"onRamp\",\"type\":\"bytes\"}],\"indexed\":false,\"internalType\":\"structOffRamp.SourceChainConfig\",\"name\":\"sourceConfig\",\"type\":\"tuple\"}],\"name\":\"SourceChainConfigSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"}],\"name\":\"SourceChainSelectorAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"chainSelector\",\"type\":\"uint64\"},{\"internalType\":\"contractIRMNV2\",\"name\":\"rmn\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tokenAdminRegistry\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"nonceManager\",\"type\":\"address\"}],\"indexed\":false,\"internalType\":\"structOffRamp.StaticConfig\",\"name\":\"staticConfig\",\"type\":\"tuple\"}],\"name\":\"StaticConfigSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint8\",\"name\":\"ocrPluginType\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"configDigest\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"sequenceNumber\",\"type\":\"uint64\"}],\"name\":\"Transmitted\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"acceptOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"contractIRouter\",\"name\":\"router\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"bool\",\"name\":\"isEnabled\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"onRamp\",\"type\":\"bytes\"}],\"internalType\":\"structOffRamp.SourceChainConfigArgs[]\",\"name\":\"sourceChainConfigUpdates\",\"type\":\"tuple[]\"}],\"name\":\"applySourceChainConfigUpdates\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"messageId\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"sender\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"structClient.EVMTokenAmount[]\",\"name\":\"destTokenAmounts\",\"type\":\"tuple[]\"}],\"internalType\":\"structClient.Any2EVMMessage\",\"name\":\"\",\"type\":\"tuple\"}],\"name\":\"ccipReceive\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32[3]\",\"name\":\"reportContext\",\"type\":\"bytes32[3]\"},{\"internalType\":\"bytes\",\"name\":\"report\",\"type\":\"bytes\"},{\"internalType\":\"bytes32[]\",\"name\":\"rs\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes32[]\",\"name\":\"ss\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes32\",\"name\":\"rawVs\",\"type\":\"bytes32\"}],\"name\":\"commit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32[3]\",\"name\":\"reportContext\",\"type\":\"bytes32[3]\"},{\"internalType\":\"bytes\",\"name\":\"report\",\"type\":\"bytes\"}],\"name\":\"execute\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"messageId\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"destChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"sequenceNumber\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"internalType\":\"structInternal.RampMessageHeader\",\"name\":\"header\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"sender\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"gasLimit\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"bytes\",\"name\":\"sourcePoolAddress\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"destTokenAddress\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"extraData\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"destExecData\",\"type\":\"bytes\"}],\"internalType\":\"structInternal.RampTokenAmount[]\",\"name\":\"tokenAmounts\",\"type\":\"tuple[]\"}],\"internalType\":\"structInternal.Any2EVMRampMessage\",\"name\":\"message\",\"type\":\"tuple\"},{\"internalType\":\"bytes[]\",\"name\":\"offchainTokenData\",\"type\":\"bytes[]\"},{\"internalType\":\"uint32[]\",\"name\":\"tokenGasOverrides\",\"type\":\"uint32[]\"}],\"name\":\"executeSingleMessage\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getDynamicConfig\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"feeQuoter\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"permissionLessExecutionThresholdSeconds\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"messageValidator\",\"type\":\"address\"}],\"internalType\":\"structOffRamp.DynamicConfig\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"sequenceNumber\",\"type\":\"uint64\"}],\"name\":\"getExecutionState\",\"outputs\":[{\"internalType\":\"enumInternal.MessageExecutionState\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getLatestPriceSequenceNumber\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"root\",\"type\":\"bytes32\"}],\"name\":\"getMerkleRoot\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"}],\"name\":\"getSourceChainConfig\",\"outputs\":[{\"components\":[{\"internalType\":\"contractIRouter\",\"name\":\"router\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"isEnabled\",\"type\":\"bool\"},{\"internalType\":\"uint64\",\"name\":\"minSeqNr\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"onRamp\",\"type\":\"bytes\"}],\"internalType\":\"structOffRamp.SourceChainConfig\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getStaticConfig\",\"outputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"chainSelector\",\"type\":\"uint64\"},{\"internalType\":\"contractIRMNV2\",\"name\":\"rmn\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tokenAdminRegistry\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"nonceManager\",\"type\":\"address\"}],\"internalType\":\"structOffRamp.StaticConfig\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"ocrPluginType\",\"type\":\"uint8\"}],\"name\":\"latestConfigDetails\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"configDigest\",\"type\":\"bytes32\"},{\"internalType\":\"uint8\",\"name\":\"F\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"n\",\"type\":\"uint8\"},{\"internalType\":\"bool\",\"name\":\"isSignatureVerificationEnabled\",\"type\":\"bool\"}],\"internalType\":\"structMultiOCR3Base.ConfigInfo\",\"name\":\"configInfo\",\"type\":\"tuple\"},{\"internalType\":\"address[]\",\"name\":\"signers\",\"type\":\"address[]\"},{\"internalType\":\"address[]\",\"name\":\"transmitters\",\"type\":\"address[]\"}],\"internalType\":\"structMultiOCR3Base.OCRConfig\",\"name\":\"ocrConfig\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"components\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"messageId\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"destChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"sequenceNumber\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"internalType\":\"structInternal.RampMessageHeader\",\"name\":\"header\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"sender\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"gasLimit\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"bytes\",\"name\":\"sourcePoolAddress\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"destTokenAddress\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"extraData\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"destExecData\",\"type\":\"bytes\"}],\"internalType\":\"structInternal.RampTokenAmount[]\",\"name\":\"tokenAmounts\",\"type\":\"tuple[]\"}],\"internalType\":\"structInternal.Any2EVMRampMessage[]\",\"name\":\"messages\",\"type\":\"tuple[]\"},{\"internalType\":\"bytes[][]\",\"name\":\"offchainTokenData\",\"type\":\"bytes[][]\"},{\"internalType\":\"bytes32[]\",\"name\":\"proofs\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"proofFlagBits\",\"type\":\"uint256\"}],\"internalType\":\"structInternal.ExecutionReportSingleChain[]\",\"name\":\"reports\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"receiverExecutionGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint32[]\",\"name\":\"tokenGasOverrides\",\"type\":\"uint32[]\"}],\"internalType\":\"structOffRamp.GasLimitOverride[][]\",\"name\":\"gasLimitOverrides\",\"type\":\"tuple[][]\"}],\"name\":\"manuallyExecute\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"feeQuoter\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"permissionLessExecutionThresholdSeconds\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"messageValidator\",\"type\":\"address\"}],\"internalType\":\"structOffRamp.DynamicConfig\",\"name\":\"dynamicConfig\",\"type\":\"tuple\"}],\"name\":\"setDynamicConfig\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"configDigest\",\"type\":\"bytes32\"},{\"internalType\":\"uint8\",\"name\":\"ocrPluginType\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"F\",\"type\":\"uint8\"},{\"internalType\":\"bool\",\"name\":\"isSignatureVerificationEnabled\",\"type\":\"bool\"},{\"internalType\":\"address[]\",\"name\":\"signers\",\"type\":\"address[]\"},{\"internalType\":\"address[]\",\"name\":\"transmitters\",\"type\":\"address[]\"}],\"internalType\":\"structMultiOCR3Base.OCRConfigArgs[]\",\"name\":\"ocrConfigArgs\",\"type\":\"tuple[]\"}],\"name\":\"setOCR3Configs\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"typeAndVersion\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"}]", - Bin: "0x6101206040523480156200001257600080fd5b506040516200687b3803806200687b8339810160408190526200003591620007f5565b33806000816200008c5760405162461bcd60e51b815260206004820152601860248201527f43616e6e6f7420736574206f776e657220746f207a65726f000000000000000060448201526064015b60405180910390fd5b600080546001600160a01b0319166001600160a01b0384811691909117909155811615620000bf57620000bf81620001fa565b5050466080525060208301516001600160a01b03161580620000ec575060408301516001600160a01b0316155b8062000103575060608301516001600160a01b0316155b1562000122576040516342bcdf7f60e11b815260040160405180910390fd5b82516001600160401b03166000036200014e5760405163c656089560e01b815260040160405180910390fd5b82516001600160401b0390811660a052602080850180516001600160a01b0390811660c05260408088018051831660e0526060808a01805185166101005283518b519098168852945184169587019590955251821690850152905116908201527f683eb52ee924eb817377cfa8f41f238f4bb7a877da5267869dfffbad85f564d89060800160405180910390a1620001e682620002a5565b620001f1816200036d565b50505062000b7c565b336001600160a01b03821603620002545760405162461bcd60e51b815260206004820152601760248201527f43616e6e6f74207472616e7366657220746f2073656c66000000000000000000604482015260640162000083565b600180546001600160a01b0319166001600160a01b0383811691821790925560008054604051929316917fed8889f560326eb138920d842192f0eb3dd22b4f139c87a2c57538e05bae12789190a350565b80516001600160a01b0316620002ce576040516342bcdf7f60e11b815260040160405180910390fd5b805160048054602080850180516001600160a01b039586166001600160c01b03199094168417600160a01b63ffffffff928316021790945560408087018051600580546001600160a01b031916918916919091179055815194855291519094169183019190915251909216908201527fa1c15688cb2c24508e158f6942b9276c6f3028a85e1af8cf3fff0c3ff3d5fc8d9060600160405180910390a150565b60005b8151811015620005a957600082828151811062000391576200039162000932565b60200260200101519050600081602001519050806001600160401b0316600003620003cf5760405163c656089560e01b815260040160405180910390fd5b81516001600160a01b0316620003f8576040516342bcdf7f60e11b815260040160405180910390fd5b6001600160401b03811660009081526006602052604090206060830151600182018054620004269062000948565b905060000362000484578154600160a81b600160e81b031916600160a81b1782556040516001600160401b03841681527ff4c1390c70e5c0f491ae1ccbc06f9117cbbadf2767b247b3bc203280f24c0fb99060200160405180910390a15b80511580620004ba5750604080516000602082015201604051602081830303815290604052805190602001208180519060200120145b15620004d9576040516342bcdf7f60e11b815260040160405180910390fd5b8154600160a81b90046001600160401b03166001146200050c57604051634ffae15560e11b815260040160405180910390fd5b600182016200051c8282620009d9565b50604080850151835486516001600160a01b03166001600160a01b0319921515600160a01b02929092166001600160a81b031990911617178355516001600160401b038416907f49f51971edd25182e97182d6ea372a0488ce2ab639f6a3a7ab4df0d2636fe56b906200059190859062000aa5565b60405180910390a25050505080600101905062000370565b5050565b634e487b7160e01b600052604160045260246000fd5b604051608081016001600160401b0381118282101715620005e857620005e8620005ad565b60405290565b604051601f8201601f191681016001600160401b0381118282101715620006195762000619620005ad565b604052919050565b80516001600160401b03811681146200063957600080fd5b919050565b6001600160a01b03811681146200065457600080fd5b50565b6000601f83601f8401126200066b57600080fd5b825160206001600160401b03808311156200068a576200068a620005ad565b8260051b6200069b838201620005ee565b9384528681018301938381019089861115620006b657600080fd5b84890192505b85831015620007e857825184811115620006d65760008081fd5b89016080601f19828d038101821315620006f05760008081fd5b620006fa620005c3565b8884015162000709816200063e565b815260406200071a85820162000621565b8a8301526060808601518015158114620007345760008081fd5b838301529385015193898511156200074c5760008081fd5b84860195508f603f8701126200076457600094508485fd5b8a8601519450898511156200077d576200077d620005ad565b6200078e8b858f88011601620005ee565b93508484528f82868801011115620007a65760008081fd5b60005b85811015620007c6578681018301518582018d01528b01620007a9565b5060009484018b019490945250918201528352509184019190840190620006bc565b9998505050505050505050565b60008060008385036101008112156200080d57600080fd5b60808112156200081c57600080fd5b62000826620005c3565b620008318662000621565b8152602086015162000843816200063e565b6020820152604086015162000858816200063e565b604082015260608601516200086d816200063e565b606082810191909152909450607f19820112156200088a57600080fd5b50604051606081016001600160401b038082118383101715620008b157620008b1620005ad565b8160405260808701519150620008c7826200063e565b90825260a08601519063ffffffff82168214620008e357600080fd5b81602084015260c08701519150620008fb826200063e565b6040830182905260e0870151929450808311156200091857600080fd5b5050620009288682870162000657565b9150509250925092565b634e487b7160e01b600052603260045260246000fd5b600181811c908216806200095d57607f821691505b6020821081036200097e57634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620009d4576000816000526020600020601f850160051c81016020861015620009af5750805b601f850160051c820191505b81811015620009d057828155600101620009bb565b5050505b505050565b81516001600160401b03811115620009f557620009f5620005ad565b62000a0d8162000a06845462000948565b8462000984565b602080601f83116001811462000a45576000841562000a2c5750858301515b600019600386901b1c1916600185901b178555620009d0565b600085815260208120601f198616915b8281101562000a765788860151825594840194600190910190840162000a55565b508582101562000a955787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b602080825282546001600160a01b0381168383015260a081901c60ff161515604084015260a81c6001600160401b0316606083015260808083015260018084018054600093929190849062000afa8162000948565b8060a089015260c0600183166000811462000b1e576001811462000b3b5762000b6d565b60ff19841660c08b015260c083151560051b8b0101945062000b6d565b85600052602060002060005b8481101562000b645781548c820185015290880190890162000b47565b8b0160c0019550505b50929998505050505050505050565b60805160a05160c05160e05161010051615c8962000bf26000396000818161022c01526129170152600081816101fd0152612be90152600081816101ce01528181610552015281816106ff015261235b01526000818161019f015261259a015260008181611d830152611db60152615c896000f3fe608060405234801561001057600080fd5b50600436106101515760003560e01c806379ba5097116100cd578063d434969111610081578063e9d68a8e11610066578063e9d68a8e146104bc578063f2fde38b146104dc578063f716f99f146104ef57600080fd5b8063d434969114610496578063e62653f5146104a957600080fd5b80638da5cb5b116100b25780638da5cb5b14610417578063c673e58414610432578063ccd37ba31461045257600080fd5b806379ba50971461040157806385572ffb1461040957600080fd5b8063311cd513116101245780635e36480c116101095780635e36480c1461033c5780636f9e320f1461035c5780637437ff9f1461036f57600080fd5b8063311cd5131461030e5780633f4b04aa1461032157600080fd5b806304666f9c1461015657806306285c691461016b578063181f5a77146102b25780632d04ab76146102fb575b600080fd5b610169610164366004613bb0565b610502565b005b61025c60408051608081018252600080825260208201819052918101829052606081019190915260405180608001604052807f00000000000000000000000000000000000000000000000000000000000000006001600160401b031681526020017f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031681526020017f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031681526020017f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316815250905090565b6040516102a9919081516001600160401b031681526020808301516001600160a01b0390811691830191909152604080840151821690830152606092830151169181019190915260800190565b60405180910390f35b6102ee6040518060400160405280601181526020017f4f666652616d7020312e362e302d64657600000000000000000000000000000081525081565b6040516102a99190613d1e565b610169610309366004613dce565b610516565b61016961031c366004613e80565b610a12565b6009546040516001600160401b0390911681526020016102a9565b61034f61034a366004613ed3565b610a7b565b6040516102a99190613f30565b61016961036a366004613f5b565b610ad0565b6103cb604080516060810182526000808252602082018190529181019190915250604080516060810182526004546001600160a01b038082168352600160a01b90910463ffffffff166020830152600554169181019190915290565b6040805182516001600160a01b03908116825260208085015163ffffffff169083015292820151909216908201526060016102a9565b610169610ae1565b610169610151366004613faf565b6000546040516001600160a01b0390911681526020016102a9565b610445610440366004613ffa565b610b92565b6040516102a9919061405a565b6104886104603660046140cf565b6001600160401b03919091166000908152600860209081526040808320938352929052205490565b6040519081526020016102a9565b6101696104a436600461436b565b610cf0565b6101696104b73660046146f3565b610fd0565b6104cf6104ca36600461493a565b611277565b6040516102a99190614955565b6101696104ea3660046149a2565b611383565b6101696104fd366004614a27565b611394565b61050a6113d6565b61051381611432565b50565b600061052487890189614d7c565b602081015151909150156105b6576020810151604080830151905162ccd5af60e81b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169263ccd5af009261058592600401614fa4565b60006040518083038186803b15801561059d57600080fd5b505afa1580156105b1573d6000803e3d6000fd5b505050505b805151511515806105cc57508051602001515115155b156106985760095460208a0135906001600160401b0380831691161015610670576009805467ffffffffffffffff19166001600160401b038316179055600480548351604051633937306f60e01b81526001600160a01b0390921692633937306f926106399291016150d8565b600060405180830381600087803b15801561065357600080fd5b505af1158015610667573d6000803e3d6000fd5b50505050610696565b81602001515160000361069657604051632261116760e01b815260040160405180910390fd5b505b60005b816020015151811015610953576000826020015182815181106106c0576106c0615006565b60209081029190910101518051604051632cbc26bb60e01b815267ffffffffffffffff60801b608083901b166004820152919250906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690632cbc26bb90602401602060405180830381865afa158015610746573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061076a91906150eb565b1561079857604051637edeb53960e11b81526001600160401b03821660048201526024015b60405180910390fd5b60006107a382611676565b9050806001016040516107b69190615142565b6040518091039020836020015180519060200120146107f357826020015181600101604051630426012b60e31b815260040161078f929190615235565b60408301518154600160a81b90046001600160401b039081169116141580610834575082606001516001600160401b031683604001516001600160401b0316115b1561087957825160408085015160608601519151636af0786b60e11b81526001600160401b03938416600482015290831660248201529116604482015260640161078f565b60808301518061089c5760405163504570e360e01b815260040160405180910390fd5b83516001600160401b03166000908152600860209081526040808320848452909152902054156108f45783516040516332cf0cbf60e01b81526001600160401b0390911660048201526024810182905260440161078f565b6060840151610904906001615270565b825467ffffffffffffffff60a81b1916600160a81b6001600160401b0392831602179092559251166000908152600860209081526040808320948352939052919091204290555060010161069b565b50602081015181516040517f35c02761bcd3ef995c6a601a1981f4ed3934dcbe5041e24e286c89f5531d17e49261098b929091615297565b60405180910390a1610a0760008a8a8a8a8a8080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020808e0282810182019093528d82529093508d92508c9182918501908490808284376000920191909152508b92506116c2915050565b505050505050505050565b610a52610a21828401846152bc565b6040805160008082526020820190925290610a4c565b6060815260200190600190039081610a375790505b506119bb565b604080516000808252602082019092529050610a756001858585858660006116c2565b50505050565b6000610a89600160046152f0565b6002610a96608085615319565b6001600160401b0316610aa9919061533f565b610ab38585611a7d565b901c166003811115610ac757610ac7613f06565b90505b92915050565b610ad86113d6565b61051381611ac2565b6001546001600160a01b03163314610b3b5760405162461bcd60e51b815260206004820152601660248201527f4d7573742062652070726f706f736564206f776e657200000000000000000000604482015260640161078f565b60008054336001600160a01b0319808316821784556001805490911690556040516001600160a01b0390921692909183917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a350565b610bd56040805160e081019091526000606082018181526080830182905260a0830182905260c08301919091528190815260200160608152602001606081525090565b60ff808316600090815260026020818152604092839020835160e081018552815460608201908152600183015480881660808401526101008104881660a0840152620100009004909616151560c082015294855291820180548451818402810184019095528085529293858301939092830182828015610c7e57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610c60575b5050505050815260200160038201805480602002602001604051908101604052809291908181526020018280548015610ce057602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610cc2575b5050505050815250509050919050565b333014610d10576040516306e34e6560e31b815260040160405180910390fd5b6040805160008082526020820190925281610d4d565b6040805180820190915260008082526020820152815260200190600190039081610d265790505b5060a08701515190915015610d8357610d808660a001518760200151886060015189600001516020015189898989611ba1565b90505b6040805160a081018252875151815287516020908101516001600160401b031681830152808901518351600094840192610dbe929101613d1e565b60408051601f19818403018152918152908252898101516020830152018390526005549091506001600160a01b03168015610e99576040516308d450a160e01b81526001600160a01b038216906308d450a190610e1f9085906004016153f7565b600060405180830381600087803b158015610e3957600080fd5b505af1925050508015610e4a575060015b610e99573d808015610e78576040519150601f19603f3d011682016040523d82523d6000602084013e610e7d565b606091505b50806040516309c2532560e01b815260040161078f9190613d1e565b604088015151158015610eae57506080880151155b80610ec5575060608801516001600160a01b03163b155b80610eec57506060880151610eea906001600160a01b03166385572ffb60e01b611d64565b155b15610ef957505050610fc9565b87516020908101516001600160401b03166000908152600690915260408082205460808b015160608c01519251633cf9798360e01b815284936001600160a01b0390931692633cf9798392610f57928992611388929160040161540a565b6000604051808303816000875af1158015610f76573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610f9e9190810190615446565b509150915081610fc357806040516302a35ba360e21b815260040161078f9190613d1e565b50505050505b5050505050565b610fd8611d80565b815181518114610ffb576040516320f8fd5960e21b815260040160405180910390fd5b60005b8181101561126757600084828151811061101a5761101a615006565b6020026020010151905060008160200151519050600085848151811061104257611042615006565b602002602001015190508051821461106d576040516320f8fd5960e21b815260040160405180910390fd5b60005b8281101561125857600082828151811061108c5761108c615006565b60200260200101516000015190506000856020015183815181106110b2576110b2615006565b6020026020010151905081600014611106578060800151821015611106578551815151604051633a98d46360e11b81526001600160401b03909216600483015260248201526044810183905260640161078f565b83838151811061111857611118615006565b602002602001015160200151518160a00151511461116557805180516060909101516040516370a193fd60e01b815260048101929092526001600160401b0316602482015260440161078f565b60005b8160a001515181101561124a57600085858151811061118957611189615006565b60200260200101516020015182815181106111a6576111a6615006565b602002602001015163ffffffff169050806000146112415760008360a0015183815181106111d6576111d6615006565b6020026020010151608001518060200190518101906111f591906154db565b90508063ffffffff1682101561123f578351516040516348e617b360e01b815260048101919091526024810184905263ffffffff821660448201526064810183905260840161078f565b505b50600101611168565b505050806001019050611070565b50505050806001019050610ffe565b5061127283836119bb565b505050565b60408051608080820183526000808352602080840182905283850182905260608085018190526001600160401b03878116845260068352928690208651948501875280546001600160a01b0381168652600160a01b810460ff16151593860193909352600160a81b90920490921694830194909452600184018054939492939184019161130390615108565b80601f016020809104026020016040519081016040528092919081815260200182805461132f90615108565b8015610ce05780601f1061135157610100808354040283529160200191610ce0565b820191906000526020600020905b81548152906001019060200180831161135f57505050919092525091949350505050565b61138b6113d6565b61051381611de8565b61139c6113d6565b60005b81518110156113d2576113ca8282815181106113bd576113bd615006565b6020026020010151611e91565b60010161139f565b5050565b6000546001600160a01b031633146114305760405162461bcd60e51b815260206004820152601660248201527f4f6e6c792063616c6c61626c65206279206f776e657200000000000000000000604482015260640161078f565b565b60005b81518110156113d257600082828151811061145257611452615006565b60200260200101519050600081602001519050806001600160401b031660000361148f5760405163c656089560e01b815260040160405180910390fd5b81516001600160a01b03166114b7576040516342bcdf7f60e11b815260040160405180910390fd5b6001600160401b038116600090815260066020526040902060608301516001820180546114e390615108565b905060000361154157815467ffffffffffffffff60a81b1916600160a81b1782556040516001600160401b03841681527ff4c1390c70e5c0f491ae1ccbc06f9117cbbadf2767b247b3bc203280f24c0fb99060200160405180910390a15b805115806115765750604080516000602082015201604051602081830303815290604052805190602001208180519060200120145b15611594576040516342bcdf7f60e11b815260040160405180910390fd5b8154600160a81b90046001600160401b03166001146115c657604051634ffae15560e11b815260040160405180910390fd5b600182016115d48282615548565b50604080850151835486516001600160a01b03166001600160a01b0319921515600160a01b02929092167fffffffffffffffffffffff00000000000000000000000000000000000000000090911617178355516001600160401b038416907f49f51971edd25182e97182d6ea372a0488ce2ab639f6a3a7ab4df0d2636fe56b9061165f908590615607565b60405180910390a250505050806001019050611435565b6001600160401b03811660009081526006602052604081208054600160a01b900460ff16610aca5760405163ed053c5960e01b81526001600160401b038416600482015260240161078f565b60ff878116600090815260026020908152604080832081516080810183528154815260019091015480861693820193909352610100830485169181019190915262010000909104909216151560608301528735906117218760a4615655565b905082606001511561176957845161173a90602061533f565b865161174790602061533f565b6117529060a0615655565b61175c9190615655565b6117669082615655565b90505b36811461179257604051638e1192e160e01b81526004810182905236602482015260440161078f565b50815181146117c15781516040516324f7d61360e21b815260048101919091526024810182905260440161078f565b6117c9611d80565b60ff808a166000908152600360209081526040808320338452825280832081518083019092528054808616835293949193909284019161010090910416600281111561181757611817613f06565b600281111561182857611828613f06565b905250905060028160200151600281111561184557611845613f06565b1480156118995750600260008b60ff1660ff168152602001908152602001600020600301816000015160ff168154811061188157611881615006565b6000918252602090912001546001600160a01b031633145b6118b657604051631b41e11d60e31b815260040160405180910390fd5b508160600151156119665760208201516118d1906001615668565b60ff168551146118f4576040516371253a2560e01b815260040160405180910390fd5b83518551146119165760405163a75d88af60e01b815260040160405180910390fd5b60008787604051611928929190615681565b60405190819003812061193f918b90602001615691565b6040516020818303038152906040528051906020012090506119648a82888888612170565b505b6040805182815260208a8101356001600160401b03169082015260ff8b16917f198d6990ef96613a9026203077e422916918b03ff47f0be6bee7b02d8e139ef0910160405180910390a2505050505050505050565b81516000036119dc5760405162bf199760e01b815260040160405180910390fd5b80516040805160008082526020820190925291159181611a1f565b6040805180820190915260008152606060208201528152602001906001900390816119f75790505b50905060005b8451811015610fc957611a75858281518110611a4357611a43615006565b602002602001015184611a6f57858381518110611a6257611a62615006565b602002602001015161232d565b8361232d565b600101611a25565b6001600160401b038216600090815260076020526040812081611aa16080856156a5565b6001600160401b031681526020810191909152604001600020549392505050565b80516001600160a01b0316611aea576040516342bcdf7f60e11b815260040160405180910390fd5b805160048054602080850180516001600160a01b039586167fffffffffffffffff0000000000000000000000000000000000000000000000009094168417600160a01b63ffffffff928316021790945560408087018051600580546001600160a01b031916918916919091179055815194855291519094169183019190915251909216908201527fa1c15688cb2c24508e158f6942b9276c6f3028a85e1af8cf3fff0c3ff3d5fc8d9060600160405180910390a150565b606088516001600160401b03811115611bbc57611bbc6139d0565b604051908082528060200260200182016040528015611c0157816020015b6040805180820190915260008082526020820152815260200190600190039081611bda5790505b509050811560005b8a51811015611d565781611cb357848482818110611c2957611c29615006565b9050602002016020810190611c3e91906156cb565b63ffffffff1615611cb357848482818110611c5b57611c5b615006565b9050602002016020810190611c7091906156cb565b6040805163ffffffff9092166020830152016040516020818303038152906040528b8281518110611ca357611ca3615006565b6020026020010151608001819052505b611d318b8281518110611cc857611cc8615006565b60200260200101518b8b8b8b8b87818110611ce557611ce5615006565b9050602002810190611cf791906156e8565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612ba192505050565b838281518110611d4357611d43615006565b6020908102919091010152600101611c09565b505098975050505050505050565b6000611d6f83612e9f565b8015610ac75750610ac78383612eea565b467f00000000000000000000000000000000000000000000000000000000000000001461143057604051630f01ce8560e01b81527f0000000000000000000000000000000000000000000000000000000000000000600482015246602482015260440161078f565b336001600160a01b03821603611e405760405162461bcd60e51b815260206004820152601760248201527f43616e6e6f74207472616e7366657220746f2073656c66000000000000000000604482015260640161078f565b600180546001600160a01b0319166001600160a01b0383811691821790925560008054604051929316917fed8889f560326eb138920d842192f0eb3dd22b4f139c87a2c57538e05bae12789190a350565b806040015160ff16600003611ebc576000604051631b3fab5160e11b815260040161078f919061572e565b60208082015160ff80821660009081526002909352604083206001810154929390928392169003611f0d576060840151600182018054911515620100000262ff000019909216919091179055611f49565b6060840151600182015460ff6201000090910416151590151514611f49576040516321fd80df60e21b815260ff8416600482015260240161078f565b60a084015180516101001015611f75576001604051631b3fab5160e11b815260040161078f919061572e565b611fdb8484600301805480602002602001604051908101604052809291908181526020018280548015611fd157602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611fb3575b5050505050612f8c565b8460600151156120e5576120498484600201805480602002602001604051908101604052809291908181526020018280548015611fd1576020028201919060005260206000209081546001600160a01b03168152600190910190602001808311611fb3575050505050612f8c565b608085015180516101001015612075576002604051631b3fab5160e11b815260040161078f919061572e565b6040860151612085906003615748565b60ff168151116120ab576003604051631b3fab5160e11b815260040161078f919061572e565b805160018401805461ff00191661010060ff8416021790556120d69060028601906020840190613956565b506120e385826001612ff5565b505b6120f184826002612ff5565b80516121069060038501906020840190613956565b5060408581015160018401805460ff191660ff8316179055865180855560a088015192517fab8b1b57514019638d7b5ce9c638fe71366fe8e2be1c40a7a80f1733d0e9f5479361215f9389939260028a01929190615764565b60405180910390a1610fc984613150565b8251600090815b8181101561232357600060018886846020811061219657612196615006565b6121a391901a601b615668565b8985815181106121b5576121b5615006565b60200260200101518986815181106121cf576121cf615006565b60200260200101516040516000815260200160405260405161220d949392919093845260ff9290921660208401526040830152606082015260800190565b6020604051602081039080840390855afa15801561222f573d6000803e3d6000fd5b505060408051601f1981015160ff808e166000908152600360209081528582206001600160a01b0385168352815285822085870190965285548084168652939750909550929392840191610100900416600281111561229057612290613f06565b60028111156122a1576122a1613f06565b90525090506001816020015160028111156122be576122be613f06565b146122dc57604051636518c33d60e11b815260040160405180910390fd5b8051600160ff9091161b85161561230657604051633d9ef1f160e21b815260040160405180910390fd5b806000015160ff166001901b851794505050806001019050612177565b5050505050505050565b81518151604051632cbc26bb60e01b8152608083901b67ffffffffffffffff60801b166004820152901515907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690632cbc26bb90602401602060405180830381865afa1580156123aa573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123ce91906150eb565b1561243f5780156123fd57604051637edeb53960e11b81526001600160401b038316600482015260240161078f565b6040516001600160401b03831681527faab522ed53d887e56ed53dd37398a01aeef6a58e0fa77c2173beb9512d8949339060200160405180910390a150505050565b600061244a83611676565b600101805461245890615108565b80601f016020809104026020016040519081016040528092919081815260200182805461248490615108565b80156124d15780601f106124a6576101008083540402835291602001916124d1565b820191906000526020600020905b8154815290600101906020018083116124b457829003601f168201915b505050602088015151929350505060008190036125005760405162bf199760e01b815260040160405180910390fd5b8560400151518114612525576040516357e0e08360e01b815260040160405180910390fd5b6000816001600160401b0381111561253f5761253f6139d0565b604051908082528060200260200182016040528015612568578160200160208202803683370190505b50905060005b828110156126895760008860200151828151811061258e5761258e615006565b602002602001015190507f00000000000000000000000000000000000000000000000000000000000000006001600160401b03168160000151604001516001600160401b0316146126055780516040908101519051631c21951160e11b81526001600160401b03909116600482015260240161078f565b866001600160401b03168160000151602001516001600160401b03161461265957805160200151604051636c95f1eb60e01b81526001600160401b03808a166004830152909116602482015260440161078f565b61266381866131a7565b83838151811061267557612675615006565b60209081029190910101525060010161256e565b5060006126a086838a606001518b608001516132c9565b9050806000036126ce57604051633ee8bd3f60e11b81526001600160401b038716600482015260240161078f565b60005b83811015610a075760005a905060008a6020015183815181106126f6576126f6615006565b6020026020010151905060006127148a836000015160600151610a7b565b9050600081600381111561272a5761272a613f06565b14806127475750600381600381111561274557612745613f06565b145b61279d57815160600151604080516001600160401b03808e16825290921660208301527f3b575419319662b2a6f5e2467d84521517a3382b908eb3d557bb3fdb0c50e23c910160405180910390a1505050612b99565b6060891561287c578b85815181106127b7576127b7615006565b6020908102919091018101510151600454909150600090600160a01b900463ffffffff166127e588426152f0565b11905080806128055750600383600381111561280357612803613f06565b145b61282d576040516354e7e43160e11b81526001600160401b038d16600482015260240161078f565b8c868151811061283f5761283f615006565b602002602001015160000151600014612876578c868151811061286457612864615006565b60209081029190910101515160808501525b506128e8565b600082600381111561289057612890613f06565b146128e857825160600151604080516001600160401b03808f16825290921660208301527f3ef2a99c550a751d4b0b261268f05a803dfb049ab43616a1ffb388f61fe65120910160405180910390a150505050612b99565b8251608001516001600160401b0316156129c157600082600381111561291057612910613f06565b036129c1577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e0e03cae8c85600001516080015186602001516040518463ffffffff1660e01b815260040161297193929190615816565b6020604051808303816000875af1158015612990573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129b491906150eb565b6129c15750505050612b99565b60008d6040015186815181106129d9576129d9615006565b6020026020010151905080518460a001515114612a2357835160600151604051631cfe6d8b60e01b81526001600160401b03808f166004830152909116602482015260440161078f565b612a378c8560000151606001516001613306565b600080612a458684866133ab565b91509150612a5c8e87600001516060015184613306565b8c15612ab3576003826003811115612a7657612a76613f06565b03612ab3576000856003811115612a8f57612a8f613f06565b14612ab357855151604051632b11b8d960e01b815261078f91908390600401615842565b6002826003811115612ac757612ac7613f06565b14612b0c576003826003811115612ae057612ae0613f06565b14612b0c578d866000015160600151836040516349362d1f60e11b815260040161078f9392919061585b565b8560000151600001518660000151606001516001600160401b03168f6001600160401b03167f05665fe9ad095383d018353f4cbcba77e84db27dd215081bbf7cdf9ae6fbe48b8d8c81518110612b6457612b64615006565b602002602001015186865a612b79908f6152f0565b604051612b899493929190615880565b60405180910390a4505050505050505b6001016126d1565b60408051808201909152600080825260208201526000612bc4876020015161345f565b60405163bbe4f6db60e01b81526001600160a01b0380831660048301529192506000917f0000000000000000000000000000000000000000000000000000000000000000169063bbe4f6db90602401602060405180830381865afa158015612c30573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c5491906158b7565b90506001600160a01b0381161580612c835750612c816001600160a01b03821663aff2afbf60e01b611d64565b155b15612cac5760405163ae9b4ce960e01b81526001600160a01b038216600482015260240161078f565b600080612cd788858c60800151806020019051810190612ccc91906154db565b63ffffffff166134d3565b915091506000806000612d8a6040518061010001604052808e81526020018c6001600160401b031681526020018d6001600160a01b031681526020018f606001518152602001896001600160a01b031681526020018f6000015181526020018f6040015181526020018b815250604051602401612d5491906158d4565b60408051601f198184030181529190526020810180516001600160e01b0316633907753760e01b179052878661138860846135b6565b92509250925082612db0578160405163e1cd550960e01b815260040161078f9190613d1e565b8151602014612ddf578151604051631e3be00960e21b815260206004820152602481019190915260440161078f565b600082806020019051810190612df591906159a0565b9050866001600160a01b03168c6001600160a01b031614612e71576000612e268d8a612e21868a6152f0565b6134d3565b50905086811080612e40575081612e3d88836152f0565b14155b15612e6f5760405163a966e21f60e01b815260048101839052602481018890526044810182905260640161078f565b505b604080518082019091526001600160a01b039098168852602088015250949550505050505095945050505050565b6000612eb2826301ffc9a760e01b612eea565b8015610aca5750612ee3827fffffffff00000000000000000000000000000000000000000000000000000000612eea565b1592915050565b6040517fffffffff0000000000000000000000000000000000000000000000000000000082166024820152600090819060440160408051601f19818403018152919052602080820180516001600160e01b03166301ffc9a760e01b178152825192935060009283928392909183918a617530fa92503d91506000519050828015612f75575060208210155b8015612f815750600081115b979650505050505050565b60005b81518110156112725760ff831660009081526003602052604081208351909190849084908110612fc157612fc1615006565b6020908102919091018101516001600160a01b03168252810191909152604001600020805461ffff19169055600101612f8f565b60005b8251811015610a7557600083828151811061301557613015615006565b602002602001015190506000600281111561303257613032613f06565b60ff80871660009081526003602090815260408083206001600160a01b0387168452909152902054610100900416600281111561307157613071613f06565b14613092576004604051631b3fab5160e11b815260040161078f919061572e565b6001600160a01b0381166130b95760405163d6c62c9b60e01b815260040160405180910390fd5b60405180604001604052808360ff1681526020018460028111156130df576130df613f06565b905260ff80871660009081526003602090815260408083206001600160a01b0387168452825290912083518154931660ff198416811782559184015190929091839161ffff19161761010083600281111561313c5761313c613f06565b021790555090505050806001019050612ff8565b60ff81166105135760ff8082166000908152600260205260409020600101546201000090041661319357604051631e8ed32560e21b815260040160405180910390fd5b6009805467ffffffffffffffff1916905550565b8151602080820151604092830151925160009384936131ed937f2425b0b9f9054c76ff151b0a175b18f37a4a4e82013a72e9f15c9caa095ed21f939092918891016159b9565b60408051601f1981840301815290829052805160209182012086518051888401516060808b0151908401516080808d0151950151959761323697949693959294919391016159eb565b604051602081830303815290604052805190602001208560400151805190602001208660a0015160405160200161326d9190615aef565b60408051601f198184030181528282528051602091820120908301969096528101939093526060830191909152608082015260a081019190915260c0015b60405160208183030381529060405280519060200120905092915050565b6000806132d7858585613690565b6001600160401b038716600090815260086020908152604080832093835292905220549150505b949350505050565b60006002613315608085615319565b6001600160401b0316613328919061533f565b905060006133368585611a7d565b905081613345600160046152f0565b901b19168183600381111561335c5761335c613f06565b6001600160401b03871660009081526007602052604081209190921b9290921791829161338a6080886156a5565b6001600160401b031681526020810191909152604001600020555050505050565b60405163d434969160e01b8152600090606090309063d4349691906133d890889088908890600401615b86565b600060405180830381600087803b1580156133f257600080fd5b505af1925050508015613403575060015b613442573d808015613431576040519150601f19603f3d011682016040523d82523d6000602084013e613436565b606091505b50600392509050613457565b50506040805160208101909152600081526002905b935093915050565b60008151602014613485578160405163046b337b60e51b815260040161078f9190613d1e565b60008280602001905181019061349b91906159a0565b90506001600160a01b038111806134b3575061040081105b15610aca578260405163046b337b60e51b815260040161078f9190613d1e565b6000806000806000613534886040516024016134fe91906001600160a01b0391909116815260200190565b60408051601f198184030181529190526020810180516001600160e01b03166370a0823160e01b179052888861138860846135b6565b9250925092508261355a578160405163e1cd550960e01b815260040161078f9190613d1e565b6020825114613589578151604051631e3be00960e21b815260206004820152602481019190915260440161078f565b8180602001905181019061359d91906159a0565b6135a782886152f0565b94509450505050935093915050565b6000606060008361ffff166001600160401b038111156135d8576135d86139d0565b6040519080825280601f01601f191660200182016040528015613602576020820181803683370190505b509150863b61361c5763030ed58f60e21b60005260046000fd5b5a8581101561363657632be8ca8b60e21b60005260046000fd5b8590036040810481038710613656576337c3be2960e01b60005260046000fd5b505a6000808a5160208c0160008c8cf193505a900390503d848111156136795750835b808352806000602085013e50955095509592505050565b82518251600091908183036136b857604051630469ac9960e21b815260040160405180910390fd5b61010182118015906136cc57506101018111155b6136e9576040516309bde33960e01b815260040160405180910390fd5b60001982820101610100811115613713576040516309bde33960e01b815260040160405180910390fd5b80600003613740578660008151811061372e5761372e615006565b6020026020010151935050505061390e565b6000816001600160401b0381111561375a5761375a6139d0565b604051908082528060200260200182016040528015613783578160200160208202803683370190505b50905060008080805b858110156138ad5760006001821b8b8116036137e757888510156137d0578c5160018601958e9181106137c1576137c1615006565b60200260200101519050613809565b85516001850194879181106137c1576137c1615006565b8b5160018401938d9181106137fe576137fe615006565b602002602001015190505b600089861015613839578d5160018701968f91811061382a5761382a615006565b6020026020010151905061385b565b865160018601958891811061385057613850615006565b602002602001015190505b8285111561387c576040516309bde33960e01b815260040160405180910390fd5b6138868282613915565b87848151811061389857613898615006565b6020908102919091010152505060010161378c565b5060018503821480156138bf57508683145b80156138ca57508581145b6138e7576040516309bde33960e01b815260040160405180910390fd5b8360018603815181106138fc576138fc615006565b60200260200101519750505050505050505b9392505050565b600081831061392d576139288284613933565b610ac7565b610ac783835b6040805160016020820152908101839052606081018290526000906080016132ab565b8280548282559060005260206000209081019282156139ab579160200282015b828111156139ab57825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190613976565b506139b79291506139bb565b5090565b5b808211156139b757600081556001016139bc565b634e487b7160e01b600052604160045260246000fd5b604051608081016001600160401b0381118282101715613a0857613a086139d0565b60405290565b604051606081016001600160401b0381118282101715613a0857613a086139d0565b60405160a081016001600160401b0381118282101715613a0857613a086139d0565b60405160c081016001600160401b0381118282101715613a0857613a086139d0565b604080519081016001600160401b0381118282101715613a0857613a086139d0565b604051601f8201601f191681016001600160401b0381118282101715613abe57613abe6139d0565b604052919050565b60006001600160401b03821115613adf57613adf6139d0565b5060051b60200190565b6001600160a01b038116811461051357600080fd5b80356001600160401b0381168114613b1557600080fd5b919050565b801515811461051357600080fd5b8035613b1581613b1a565b60006001600160401b03821115613b4c57613b4c6139d0565b50601f01601f191660200190565b600082601f830112613b6b57600080fd5b8135613b7e613b7982613b33565b613a96565b818152846020838601011115613b9357600080fd5b816020850160208301376000918101602001919091529392505050565b60006020808385031215613bc357600080fd5b82356001600160401b0380821115613bda57600080fd5b818501915085601f830112613bee57600080fd5b8135613bfc613b7982613ac6565b81815260059190911b83018401908481019088831115613c1b57600080fd5b8585015b83811015613cc157803585811115613c375760008081fd5b86016080818c03601f1901811315613c4f5760008081fd5b613c576139e6565b89830135613c6481613ae9565b81526040613c73848201613afe565b8b830152606080850135613c8681613b1a565b83830152928401359289841115613c9f57600091508182fd5b613cad8f8d86880101613b5a565b908301525085525050918601918601613c1f565b5098975050505050505050565b60005b83811015613ce9578181015183820152602001613cd1565b50506000910152565b60008151808452613d0a816020860160208601613cce565b601f01601f19169290920160200192915050565b602081526000610ac76020830184613cf2565b8060608101831015610aca57600080fd5b60008083601f840112613d5457600080fd5b5081356001600160401b03811115613d6b57600080fd5b602083019150836020828501011115613d8357600080fd5b9250929050565b60008083601f840112613d9c57600080fd5b5081356001600160401b03811115613db357600080fd5b6020830191508360208260051b8501011115613d8357600080fd5b60008060008060008060008060e0898b031215613dea57600080fd5b613df48a8a613d31565b975060608901356001600160401b0380821115613e1057600080fd5b613e1c8c838d01613d42565b909950975060808b0135915080821115613e3557600080fd5b613e418c838d01613d8a565b909750955060a08b0135915080821115613e5a57600080fd5b50613e678b828c01613d8a565b999c989b50969995989497949560c00135949350505050565b600080600060808486031215613e9557600080fd5b613e9f8585613d31565b925060608401356001600160401b03811115613eba57600080fd5b613ec686828701613d42565b9497909650939450505050565b60008060408385031215613ee657600080fd5b613eef83613afe565b9150613efd60208401613afe565b90509250929050565b634e487b7160e01b600052602160045260246000fd5b60048110613f2c57613f2c613f06565b9052565b60208101610aca8284613f1c565b8035613b1581613ae9565b63ffffffff8116811461051357600080fd5b600060608284031215613f6d57600080fd5b613f75613a0e565b8235613f8081613ae9565b81526020830135613f9081613f49565b60208201526040830135613fa381613ae9565b60408201529392505050565b600060208284031215613fc157600080fd5b81356001600160401b03811115613fd757600080fd5b820160a0818503121561390e57600080fd5b803560ff81168114613b1557600080fd5b60006020828403121561400c57600080fd5b610ac782613fe9565b60008151808452602080850194506020840160005b8381101561404f5781516001600160a01b03168752958201959082019060010161402a565b509495945050505050565b60208152600082518051602084015260ff602082015116604084015260ff604082015116606084015260608101511515608084015250602083015160c060a08401526140a960e0840182614015565b90506040840151601f198483030160c08501526140c68282614015565b95945050505050565b600080604083850312156140e257600080fd5b6140eb83613afe565b946020939093013593505050565b600060a0828403121561410b57600080fd5b614113613a30565b90508135815261412560208301613afe565b602082015261413660408301613afe565b604082015261414760608301613afe565b606082015261415860808301613afe565b608082015292915050565b600082601f83011261417457600080fd5b81356020614184613b7983613ac6565b82815260059290921b840181019181810190868411156141a357600080fd5b8286015b8481101561429d5780356001600160401b03808211156141c75760008081fd5b9088019060a0828b03601f19018113156141e15760008081fd5b6141e9613a30565b87840135838111156141fb5760008081fd5b6142098d8a83880101613b5a565b825250604080850135848111156142205760008081fd5b61422e8e8b83890101613b5a565b8a84015250606080860135858111156142475760008081fd5b6142558f8c838a0101613b5a565b8385015250608091508186013581840152508285013592508383111561427b5760008081fd5b6142898d8a85880101613b5a565b9082015286525050509183019183016141a7565b509695505050505050565b600061014082840312156142bb57600080fd5b6142c3613a52565b90506142cf83836140f9565b815260a08201356001600160401b03808211156142eb57600080fd5b6142f785838601613b5a565b602084015260c084013591508082111561431057600080fd5b61431c85838601613b5a565b604084015261432d60e08501613f3e565b6060840152610100840135608084015261012084013591508082111561435257600080fd5b5061435f84828501614163565b60a08301525092915050565b60008060008060006060868803121561438357600080fd5b85356001600160401b038082111561439a57600080fd5b6143a689838a016142a8565b965060208801359150808211156143bc57600080fd5b6143c889838a01613d8a565b909650945060408801359150808211156143e157600080fd5b506143ee88828901613d8a565b969995985093965092949392505050565b600082601f83011261441057600080fd5b81356020614420613b7983613ac6565b82815260059290921b8401810191818101908684111561443f57600080fd5b8286015b8481101561429d5780356001600160401b038111156144625760008081fd5b6144708986838b01016142a8565b845250918301918301614443565b600082601f83011261448f57600080fd5b8135602061449f613b7983613ac6565b82815260059290921b840181019181810190868411156144be57600080fd5b8286015b8481101561429d5780356001600160401b03808211156144e157600080fd5b818901915089603f8301126144f557600080fd5b85820135614505613b7982613ac6565b81815260059190911b830160400190878101908c83111561452557600080fd5b604085015b8381101561455e5780358581111561454157600080fd5b6145508f6040838a0101613b5a565b84525091890191890161452a565b508752505050928401925083016144c2565b600082601f83011261458157600080fd5b81356020614591613b7983613ac6565b8083825260208201915060208460051b8701019350868411156145b357600080fd5b602086015b8481101561429d57803583529183019183016145b8565b600082601f8301126145e057600080fd5b813560206145f0613b7983613ac6565b82815260059290921b8401810191818101908684111561460f57600080fd5b8286015b8481101561429d5780356001600160401b03808211156146335760008081fd5b9088019060a0828b03601f190181131561464d5760008081fd5b614655613a30565b614660888501613afe565b8152604080850135848111156146765760008081fd5b6146848e8b838901016143ff565b8a840152506060808601358581111561469d5760008081fd5b6146ab8f8c838a010161447e565b83850152506080915081860135858111156146c65760008081fd5b6146d48f8c838a0101614570565b9184019190915250919093013590830152508352918301918301614613565b6000806040838503121561470657600080fd5b6001600160401b038335111561471b57600080fd5b61472884843585016145cf565b91506001600160401b036020840135111561474257600080fd5b6020830135830184601f82011261475857600080fd5b614765613b798235613ac6565b81358082526020808301929160051b84010187101561478357600080fd5b602083015b6020843560051b85010181101561492c576001600160401b03813511156147ae57600080fd5b87603f8235860101126147c057600080fd5b6147d3613b796020833587010135613ac6565b81358501602081810135808452908301929160059190911b016040018a10156147fb57600080fd5b604083358701015b83358701602081013560051b0160400181101561491c576001600160401b038135111561482f57600080fd5b833587018135016040818d03603f1901121561484a57600080fd5b614852613a74565b604082013581526001600160401b036060830135111561487157600080fd5b8c605f60608401358401011261488657600080fd5b604060608301358301013561489d613b7982613ac6565b808282526020820191508f60608460051b60608801358801010111156148c257600080fd5b6060808601358601015b60608460051b6060880135880101018110156148fc576148ec8135613f49565b80358352602092830192016148cc565b508060208501525050508085525050602083019250602081019050614803565b5084525060209283019201614788565b508093505050509250929050565b60006020828403121561494c57600080fd5b610ac782613afe565b602081526001600160a01b0382511660208201526020820151151560408201526001600160401b036040830151166060820152600060608301516080808401526132fe60a0840182613cf2565b6000602082840312156149b457600080fd5b813561390e81613ae9565b600082601f8301126149d057600080fd5b813560206149e0613b7983613ac6565b8083825260208201915060208460051b870101935086841115614a0257600080fd5b602086015b8481101561429d578035614a1a81613ae9565b8352918301918301614a07565b60006020808385031215614a3a57600080fd5b82356001600160401b0380821115614a5157600080fd5b818501915085601f830112614a6557600080fd5b8135614a73613b7982613ac6565b81815260059190911b83018401908481019088831115614a9257600080fd5b8585015b83811015613cc157803585811115614aad57600080fd5b860160c0818c03601f19011215614ac45760008081fd5b614acc613a52565b8882013581526040614adf818401613fe9565b8a8301526060614af0818501613fe9565b8284015260809150614b03828501613b28565b9083015260a08381013589811115614b1b5760008081fd5b614b298f8d838801016149bf565b838501525060c0840135915088821115614b435760008081fd5b614b518e8c848701016149bf565b9083015250845250918601918601614a96565b80356001600160e01b0381168114613b1557600080fd5b600082601f830112614b8c57600080fd5b81356020614b9c613b7983613ac6565b82815260069290921b84018101918181019086841115614bbb57600080fd5b8286015b8481101561429d5760408189031215614bd85760008081fd5b614be0613a74565b614be982613afe565b8152614bf6858301614b64565b81860152835291830191604001614bbf565b600082601f830112614c1957600080fd5b81356020614c29613b7983613ac6565b82815260059290921b84018101918181019086841115614c4857600080fd5b8286015b8481101561429d5780356001600160401b0380821115614c6c5760008081fd5b9088019060a0828b03601f1901811315614c865760008081fd5b614c8e613a30565b614c99888501613afe565b815260408085013584811115614caf5760008081fd5b614cbd8e8b83890101613b5a565b8a8401525060609350614cd1848601613afe565b908201526080614ce2858201613afe565b93820193909352920135908201528352918301918301614c4c565b600082601f830112614d0e57600080fd5b81356020614d1e613b7983613ac6565b82815260069290921b84018101918181019086841115614d3d57600080fd5b8286015b8481101561429d5760408189031215614d5a5760008081fd5b614d62613a74565b813581528482013585820152835291830191604001614d41565b60006020808385031215614d8f57600080fd5b82356001600160401b0380821115614da657600080fd5b9084019060608287031215614dba57600080fd5b614dc2613a0e565b823582811115614dd157600080fd5b83016040818903811315614de457600080fd5b614dec613a74565b823585811115614dfb57600080fd5b8301601f81018b13614e0c57600080fd5b8035614e1a613b7982613ac6565b81815260069190911b8201890190898101908d831115614e3957600080fd5b928a01925b82841015614e895785848f031215614e565760008081fd5b614e5e613a74565b8435614e6981613ae9565b8152614e76858d01614b64565b818d0152825292850192908a0190614e3e565b845250505082870135915084821115614ea157600080fd5b614ead8a838501614b7b565b81880152835250508284013582811115614ec657600080fd5b614ed288828601614c08565b85830152506040830135935081841115614eeb57600080fd5b614ef787858501614cfd565b60408201529695505050505050565b600082825180855260208086019550808260051b84010181860160005b84811015614f9757601f19868403018952815160a06001600160401b03808351168652868301518288880152614f5b83880182613cf2565b60408581015184169089015260608086015190931692880192909252506080928301519290950191909152509783019790830190600101614f23565b5090979650505050505050565b60006040808352614fb86040840186614f06565b83810360208581019190915285518083528682019282019060005b81811015614ff857845180518452840151848401529383019391850191600101614fd3565b509098975050505050505050565b634e487b7160e01b600052603260045260246000fd5b805160408084528151848201819052600092602091908201906060870190855b8181101561507357835180516001600160a01b031684528501516001600160e01b031685840152928401929185019160010161503c565b50508583015187820388850152805180835290840192506000918401905b808310156150cc57835180516001600160401b031683528501516001600160e01b031685830152928401926001929092019190850190615091565b50979650505050505050565b602081526000610ac7602083018461501c565b6000602082840312156150fd57600080fd5b815161390e81613b1a565b600181811c9082168061511c57607f821691505b60208210810361513c57634e487b7160e01b600052602260045260246000fd5b50919050565b600080835461515081615108565b60018281168015615168576001811461517d576151ac565b60ff19841687528215158302870194506151ac565b8760005260208060002060005b858110156151a35781548a82015290840190820161518a565b50505082870194505b50929695505050505050565b600081546151c581615108565b8085526020600183811680156151e257600181146151fc5761522a565b60ff1985168884015283151560051b88018301955061522a565b866000528260002060005b858110156152225781548a8201860152908301908401615207565b890184019650505b505050505092915050565b6040815260006152486040830185613cf2565b82810360208401526140c681856151b8565b634e487b7160e01b600052601160045260246000fd5b6001600160401b038181168382160190808211156152905761529061525a565b5092915050565b6040815260006152aa6040830185614f06565b82810360208401526140c6818561501c565b6000602082840312156152ce57600080fd5b81356001600160401b038111156152e457600080fd5b6132fe848285016145cf565b81810381811115610aca57610aca61525a565b634e487b7160e01b600052601260045260246000fd5b60006001600160401b038084168061533357615333615303565b92169190910692915050565b8082028115828204841417610aca57610aca61525a565b80518252600060206001600160401b0381840151168185015260408084015160a0604087015261538960a0870182613cf2565b9050606085015186820360608801526153a28282613cf2565b608087810151898303918a01919091528051808352908601935060009250908501905b808310156150cc57835180516001600160a01b03168352860151868301529285019260019290920191908401906153c5565b602081526000610ac76020830184615356565b60808152600061541d6080830187615356565b61ffff9590951660208301525060408101929092526001600160a01b0316606090910152919050565b60008060006060848603121561545b57600080fd5b835161546681613b1a565b60208501519093506001600160401b0381111561548257600080fd5b8401601f8101861361549357600080fd5b80516154a1613b7982613b33565b8181528760208385010111156154b657600080fd5b6154c7826020830160208601613cce565b809450505050604084015190509250925092565b6000602082840312156154ed57600080fd5b815161390e81613f49565b601f821115611272576000816000526020600020601f850160051c810160208610156155215750805b601f850160051c820191505b818110156155405782815560010161552d565b505050505050565b81516001600160401b03811115615561576155616139d0565b6155758161556f8454615108565b846154f8565b602080601f8311600181146155aa57600084156155925750858301515b600019600386901b1c1916600185901b178555615540565b600085815260208120601f198616915b828110156155d9578886015182559484019460019091019084016155ba565b50858210156155f75787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60208152600082546001600160a01b038116602084015260ff8160a01c16151560408401526001600160401b038160a81c16606084015250608080830152610ac760a08301600185016151b8565b80820180821115610aca57610aca61525a565b60ff8181168382160190811115610aca57610aca61525a565b8183823760009101908152919050565b828152606082602083013760800192915050565b60006001600160401b03808416806156bf576156bf615303565b92169190910492915050565b6000602082840312156156dd57600080fd5b813561390e81613f49565b6000808335601e198436030181126156ff57600080fd5b8301803591506001600160401b0382111561571957600080fd5b602001915036819003821315613d8357600080fd5b602081016005831061574257615742613f06565b91905290565b60ff81811683821602908116908181146152905761529061525a565b600060a0820160ff881683526020878185015260a0604085015281875480845260c0860191508860005282600020935060005b818110156157bc5784546001600160a01b031683526001948501949284019201615797565b50508481036060860152865180825290820192508187019060005b818110156157fc5782516001600160a01b0316855293830193918301916001016157d7565b50505060ff851660808501525090505b9695505050505050565b60006001600160401b038086168352808516602084015250606060408301526140c66060830184613cf2565b8281526040602082015260006132fe6040830184613cf2565b6001600160401b03848116825283166020820152606081016132fe6040830184613f1c565b8481526158906020820185613f1c565b6080604082015260006158a66080830185613cf2565b905082606083015295945050505050565b6000602082840312156158c957600080fd5b815161390e81613ae9565b60208152600082516101008060208501526158f3610120850183613cf2565b9150602085015161590f60408601826001600160401b03169052565b5060408501516001600160a01b03811660608601525060608501516080850152608085015161594960a08601826001600160a01b03169052565b5060a0850151601f19808685030160c08701526159668483613cf2565b935060c08701519150808685030160e08701526159838483613cf2565b935060e087015191508086850301838701525061580c8382613cf2565b6000602082840312156159b257600080fd5b5051919050565b84815260006001600160401b0380861660208401528085166040840152506080606083015261580c6080830184613cf2565b86815260c060208201526000615a0460c0830188613cf2565b6001600160a01b03969096166040830152506001600160401b039384166060820152608081019290925290911660a09091015292915050565b600082825180855260208086019550808260051b84010181860160005b84811015614f9757601f19868403018952815160a08151818652615a8082870182613cf2565b9150508582015185820387870152615a988282613cf2565b91505060408083015186830382880152615ab28382613cf2565b92505050606080830151818701525060808083015192508582038187015250615adb8183613cf2565b9a86019a9450505090830190600101615a5a565b602081526000610ac76020830184615a3d565b60008282518085526020808601955060208260051b8401016020860160005b84811015614f9757601f19868403018952615b3d838351613cf2565b98840198925090830190600101615b21565b60008151808452602080850194506020840160005b8381101561404f57815163ffffffff1687529582019590820190600101615b64565b60608152600084518051606084015260208101516001600160401b0380821660808601528060408401511660a08601528060608401511660c08601528060808401511660e0860152505050602085015161014080610100850152615bee6101a0850183613cf2565b91506040870151605f198086850301610120870152615c0d8483613cf2565b935060608901519150615c2a838701836001600160a01b03169052565b608089015161016087015260a0890151925080868503016101808701525050615c538282615a3d565b9150508281036020840152615c688186615b02565b9050828103604084015261580c8185615b4f56fea164736f6c6343000818000a", + ABI: "[{\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"chainSelector\",\"type\":\"uint64\"},{\"internalType\":\"contractIRMNV2\",\"name\":\"rmn\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tokenAdminRegistry\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"nonceManager\",\"type\":\"address\"}],\"internalType\":\"structOffRamp.StaticConfig\",\"name\":\"staticConfig\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"feeQuoter\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"permissionLessExecutionThresholdSeconds\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"messageValidator\",\"type\":\"address\"}],\"internalType\":\"structOffRamp.DynamicConfig\",\"name\":\"dynamicConfig\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"contractIRouter\",\"name\":\"router\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"bool\",\"name\":\"isEnabled\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"onRamp\",\"type\":\"bytes\"}],\"internalType\":\"structOffRamp.SourceChainConfigArgs[]\",\"name\":\"sourceChainConfigs\",\"type\":\"tuple[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"CanOnlySelfCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"expected\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"actual\",\"type\":\"bytes32\"}],\"name\":\"ConfigDigestMismatch\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"}],\"name\":\"CursedByRMN\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"EmptyReport\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"messageId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"err\",\"type\":\"bytes\"}],\"name\":\"ExecutionError\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"expected\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"actual\",\"type\":\"uint256\"}],\"name\":\"ForkedChain\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"enumMultiOCR3Base.InvalidConfigErrorType\",\"name\":\"errorType\",\"type\":\"uint8\"}],\"name\":\"InvalidConfig\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"expected\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"got\",\"type\":\"uint256\"}],\"name\":\"InvalidDataLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"encodedAddress\",\"type\":\"bytes\"}],\"name\":\"InvalidEVMAddress\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"min\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"max\",\"type\":\"uint64\"}],\"name\":\"InvalidInterval\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"messageId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"newLimit\",\"type\":\"uint256\"}],\"name\":\"InvalidManualExecutionGasLimit\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"messageId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"tokenIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"oldLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"tokenGasOverride\",\"type\":\"uint256\"}],\"name\":\"InvalidManualExecutionTokenGasOverride\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"messageDestChainSelector\",\"type\":\"uint64\"}],\"name\":\"InvalidMessageDestChainSelector\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"sequenceNumber\",\"type\":\"uint64\"},{\"internalType\":\"enumInternal.MessageExecutionState\",\"name\":\"newState\",\"type\":\"uint8\"}],\"name\":\"InvalidNewState\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"reportOnRamp\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"configOnRamp\",\"type\":\"bytes\"}],\"name\":\"InvalidOnRamp\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"}],\"name\":\"InvalidOnRampUpdate\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidProof\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidRoot\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LeavesCannotBeEmpty\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"messageId\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"sequenceNumber\",\"type\":\"uint64\"}],\"name\":\"ManualExecutionGasAmountCountMismatch\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ManualExecutionGasLimitMismatch\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"}],\"name\":\"ManualExecutionNotYetEnabled\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"errorReason\",\"type\":\"bytes\"}],\"name\":\"MessageValidationError\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NonUniqueSignatures\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"notPool\",\"type\":\"address\"}],\"name\":\"NotACompatiblePool\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OracleCannotBeZeroAddress\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"err\",\"type\":\"bytes\"}],\"name\":\"ReceiverError\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amountReleased\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balancePre\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balancePost\",\"type\":\"uint256\"}],\"name\":\"ReleaseOrMintBalanceMismatch\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"merkleRoot\",\"type\":\"bytes32\"}],\"name\":\"RootAlreadyCommitted\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"}],\"name\":\"RootNotCommitted\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SignatureVerificationDisabled\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SignaturesOutOfRegistration\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"}],\"name\":\"SourceChainNotEnabled\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"reportSourceChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"messageSourceChainSelector\",\"type\":\"uint64\"}],\"name\":\"SourceChainSelectorMismatch\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"StaleCommitReport\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"ocrPluginType\",\"type\":\"uint8\"}],\"name\":\"StaticConfigCannotBeChanged\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"sequenceNumber\",\"type\":\"uint64\"}],\"name\":\"TokenDataMismatch\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"err\",\"type\":\"bytes\"}],\"name\":\"TokenHandlingError\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UnauthorizedSigner\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UnauthorizedTransmitter\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UnexpectedTokenData\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"expected\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"actual\",\"type\":\"uint256\"}],\"name\":\"WrongMessageLength\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"WrongNumberOfSignatures\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZeroAddressNotAllowed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZeroChainSelectorNotAllowed\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"sequenceNumber\",\"type\":\"uint64\"}],\"name\":\"AlreadyAttempted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"onRampAddress\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"minSeqNr\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"maxSeqNr\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"merkleRoot\",\"type\":\"bytes32\"}],\"indexed\":false,\"internalType\":\"structInternal.MerkleRoot[]\",\"name\":\"merkleRoots\",\"type\":\"tuple[]\"},{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"sourceToken\",\"type\":\"address\"},{\"internalType\":\"uint224\",\"name\":\"usdPerToken\",\"type\":\"uint224\"}],\"internalType\":\"structInternal.TokenPriceUpdate[]\",\"name\":\"tokenPriceUpdates\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"uint64\",\"name\":\"destChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"uint224\",\"name\":\"usdPerUnitGas\",\"type\":\"uint224\"}],\"internalType\":\"structInternal.GasPriceUpdate[]\",\"name\":\"gasPriceUpdates\",\"type\":\"tuple[]\"}],\"indexed\":false,\"internalType\":\"structInternal.PriceUpdates\",\"name\":\"priceUpdates\",\"type\":\"tuple\"}],\"name\":\"CommitReportAccepted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"ocrPluginType\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"configDigest\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"signers\",\"type\":\"address[]\"},{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"transmitters\",\"type\":\"address[]\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"F\",\"type\":\"uint8\"}],\"name\":\"ConfigSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"feeQuoter\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"permissionLessExecutionThresholdSeconds\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"messageValidator\",\"type\":\"address\"}],\"indexed\":false,\"internalType\":\"structOffRamp.DynamicConfig\",\"name\":\"dynamicConfig\",\"type\":\"tuple\"}],\"name\":\"DynamicConfigSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"sequenceNumber\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"messageId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"messageHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"enumInternal.MessageExecutionState\",\"name\":\"state\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"returnData\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"gasUsed\",\"type\":\"uint256\"}],\"name\":\"ExecutionStateChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"OwnershipTransferRequested\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"root\",\"type\":\"bytes32\"}],\"name\":\"RootRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"sequenceNumber\",\"type\":\"uint64\"}],\"name\":\"SkippedAlreadyExecutedMessage\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"}],\"name\":\"SkippedReportExecution\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"components\":[{\"internalType\":\"contractIRouter\",\"name\":\"router\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"isEnabled\",\"type\":\"bool\"},{\"internalType\":\"uint64\",\"name\":\"minSeqNr\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"onRamp\",\"type\":\"bytes\"}],\"indexed\":false,\"internalType\":\"structOffRamp.SourceChainConfig\",\"name\":\"sourceConfig\",\"type\":\"tuple\"}],\"name\":\"SourceChainConfigSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"}],\"name\":\"SourceChainSelectorAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"chainSelector\",\"type\":\"uint64\"},{\"internalType\":\"contractIRMNV2\",\"name\":\"rmn\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tokenAdminRegistry\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"nonceManager\",\"type\":\"address\"}],\"indexed\":false,\"internalType\":\"structOffRamp.StaticConfig\",\"name\":\"staticConfig\",\"type\":\"tuple\"}],\"name\":\"StaticConfigSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint8\",\"name\":\"ocrPluginType\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"configDigest\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"sequenceNumber\",\"type\":\"uint64\"}],\"name\":\"Transmitted\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"acceptOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"contractIRouter\",\"name\":\"router\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"bool\",\"name\":\"isEnabled\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"onRamp\",\"type\":\"bytes\"}],\"internalType\":\"structOffRamp.SourceChainConfigArgs[]\",\"name\":\"sourceChainConfigUpdates\",\"type\":\"tuple[]\"}],\"name\":\"applySourceChainConfigUpdates\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"messageId\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"sender\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"structClient.EVMTokenAmount[]\",\"name\":\"destTokenAmounts\",\"type\":\"tuple[]\"}],\"internalType\":\"structClient.Any2EVMMessage\",\"name\":\"\",\"type\":\"tuple\"}],\"name\":\"ccipReceive\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32[3]\",\"name\":\"reportContext\",\"type\":\"bytes32[3]\"},{\"internalType\":\"bytes\",\"name\":\"report\",\"type\":\"bytes\"},{\"internalType\":\"bytes32[]\",\"name\":\"rs\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes32[]\",\"name\":\"ss\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes32\",\"name\":\"rawVs\",\"type\":\"bytes32\"}],\"name\":\"commit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32[3]\",\"name\":\"reportContext\",\"type\":\"bytes32[3]\"},{\"internalType\":\"bytes\",\"name\":\"report\",\"type\":\"bytes\"}],\"name\":\"execute\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"messageId\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"destChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"sequenceNumber\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"internalType\":\"structInternal.RampMessageHeader\",\"name\":\"header\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"sender\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"gasLimit\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"bytes\",\"name\":\"sourcePoolAddress\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"destTokenAddress\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"extraData\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"destExecData\",\"type\":\"bytes\"}],\"internalType\":\"structInternal.RampTokenAmount[]\",\"name\":\"tokenAmounts\",\"type\":\"tuple[]\"}],\"internalType\":\"structInternal.Any2EVMRampMessage\",\"name\":\"message\",\"type\":\"tuple\"},{\"internalType\":\"bytes[]\",\"name\":\"offchainTokenData\",\"type\":\"bytes[]\"},{\"internalType\":\"uint32[]\",\"name\":\"tokenGasOverrides\",\"type\":\"uint32[]\"}],\"name\":\"executeSingleMessage\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getDynamicConfig\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"feeQuoter\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"permissionLessExecutionThresholdSeconds\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"messageValidator\",\"type\":\"address\"}],\"internalType\":\"structOffRamp.DynamicConfig\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"sequenceNumber\",\"type\":\"uint64\"}],\"name\":\"getExecutionState\",\"outputs\":[{\"internalType\":\"enumInternal.MessageExecutionState\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getLatestPriceSequenceNumber\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"root\",\"type\":\"bytes32\"}],\"name\":\"getMerkleRoot\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"}],\"name\":\"getSourceChainConfig\",\"outputs\":[{\"components\":[{\"internalType\":\"contractIRouter\",\"name\":\"router\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"isEnabled\",\"type\":\"bool\"},{\"internalType\":\"uint64\",\"name\":\"minSeqNr\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"onRamp\",\"type\":\"bytes\"}],\"internalType\":\"structOffRamp.SourceChainConfig\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getStaticConfig\",\"outputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"chainSelector\",\"type\":\"uint64\"},{\"internalType\":\"contractIRMNV2\",\"name\":\"rmn\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tokenAdminRegistry\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"nonceManager\",\"type\":\"address\"}],\"internalType\":\"structOffRamp.StaticConfig\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"ocrPluginType\",\"type\":\"uint8\"}],\"name\":\"latestConfigDetails\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"configDigest\",\"type\":\"bytes32\"},{\"internalType\":\"uint8\",\"name\":\"F\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"n\",\"type\":\"uint8\"},{\"internalType\":\"bool\",\"name\":\"isSignatureVerificationEnabled\",\"type\":\"bool\"}],\"internalType\":\"structMultiOCR3Base.ConfigInfo\",\"name\":\"configInfo\",\"type\":\"tuple\"},{\"internalType\":\"address[]\",\"name\":\"signers\",\"type\":\"address[]\"},{\"internalType\":\"address[]\",\"name\":\"transmitters\",\"type\":\"address[]\"}],\"internalType\":\"structMultiOCR3Base.OCRConfig\",\"name\":\"ocrConfig\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"components\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"messageId\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"destChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"sequenceNumber\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"internalType\":\"structInternal.RampMessageHeader\",\"name\":\"header\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"sender\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"gasLimit\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"bytes\",\"name\":\"sourcePoolAddress\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"destTokenAddress\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"extraData\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"destExecData\",\"type\":\"bytes\"}],\"internalType\":\"structInternal.RampTokenAmount[]\",\"name\":\"tokenAmounts\",\"type\":\"tuple[]\"}],\"internalType\":\"structInternal.Any2EVMRampMessage[]\",\"name\":\"messages\",\"type\":\"tuple[]\"},{\"internalType\":\"bytes[][]\",\"name\":\"offchainTokenData\",\"type\":\"bytes[][]\"},{\"internalType\":\"bytes32[]\",\"name\":\"proofs\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"proofFlagBits\",\"type\":\"uint256\"}],\"internalType\":\"structInternal.ExecutionReportSingleChain[]\",\"name\":\"reports\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"receiverExecutionGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint32[]\",\"name\":\"tokenGasOverrides\",\"type\":\"uint32[]\"}],\"internalType\":\"structOffRamp.GasLimitOverride[][]\",\"name\":\"gasLimitOverrides\",\"type\":\"tuple[][]\"}],\"name\":\"manuallyExecute\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"feeQuoter\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"permissionLessExecutionThresholdSeconds\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"messageValidator\",\"type\":\"address\"}],\"internalType\":\"structOffRamp.DynamicConfig\",\"name\":\"dynamicConfig\",\"type\":\"tuple\"}],\"name\":\"setDynamicConfig\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"configDigest\",\"type\":\"bytes32\"},{\"internalType\":\"uint8\",\"name\":\"ocrPluginType\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"F\",\"type\":\"uint8\"},{\"internalType\":\"bool\",\"name\":\"isSignatureVerificationEnabled\",\"type\":\"bool\"},{\"internalType\":\"address[]\",\"name\":\"signers\",\"type\":\"address[]\"},{\"internalType\":\"address[]\",\"name\":\"transmitters\",\"type\":\"address[]\"}],\"internalType\":\"structMultiOCR3Base.OCRConfigArgs[]\",\"name\":\"ocrConfigArgs\",\"type\":\"tuple[]\"}],\"name\":\"setOCR3Configs\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"typeAndVersion\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"}]", + Bin: "0x6101206040523480156200001257600080fd5b506040516200689b3803806200689b833981016040819052620000359162000806565b33806000816200008c5760405162461bcd60e51b815260206004820152601860248201527f43616e6e6f7420736574206f776e657220746f207a65726f000000000000000060448201526064015b60405180910390fd5b600080546001600160a01b0319166001600160a01b0384811691909117909155811615620000bf57620000bf81620001fa565b5050466080525060208301516001600160a01b03161580620000ec575060408301516001600160a01b0316155b8062000103575060608301516001600160a01b0316155b1562000122576040516342bcdf7f60e11b815260040160405180910390fd5b82516001600160401b03166000036200014e5760405163c656089560e01b815260040160405180910390fd5b82516001600160401b0390811660a052602080850180516001600160a01b0390811660c05260408088018051831660e0526060808a01805185166101005283518b519098168852945184169587019590955251821690850152905116908201527f683eb52ee924eb817377cfa8f41f238f4bb7a877da5267869dfffbad85f564d89060800160405180910390a1620001e682620002a5565b620001f1816200036d565b50505062000b8d565b336001600160a01b03821603620002545760405162461bcd60e51b815260206004820152601760248201527f43616e6e6f74207472616e7366657220746f2073656c66000000000000000000604482015260640162000083565b600180546001600160a01b0319166001600160a01b0383811691821790925560008054604051929316917fed8889f560326eb138920d842192f0eb3dd22b4f139c87a2c57538e05bae12789190a350565b80516001600160a01b0316620002ce576040516342bcdf7f60e11b815260040160405180910390fd5b805160048054602080850180516001600160a01b039586166001600160c01b03199094168417600160a01b63ffffffff928316021790945560408087018051600580546001600160a01b031916918916919091179055815194855291519094169183019190915251909216908201527fa1c15688cb2c24508e158f6942b9276c6f3028a85e1af8cf3fff0c3ff3d5fc8d9060600160405180910390a150565b60005b8151811015620005ba57600082828151811062000391576200039162000943565b60200260200101519050600081602001519050806001600160401b0316600003620003cf5760405163c656089560e01b815260040160405180910390fd5b81516001600160a01b0316620003f8576040516342bcdf7f60e11b815260040160405180910390fd5b6001600160401b03811660009081526006602052604090206060830151600182018054620004269062000959565b905060000362000489578154600160a81b600160e81b031916600160a81b1782556040516001600160401b03841681527ff4c1390c70e5c0f491ae1ccbc06f9117cbbadf2767b247b3bc203280f24c0fb99060200160405180910390a1620004c8565b8154600160a81b90046001600160401b0316600114620004c857604051632105803760e11b81526001600160401b038416600482015260240162000083565b80511580620004fe5750604080516000602082015201604051602081830303815290604052805190602001208180519060200120145b156200051d576040516342bcdf7f60e11b815260040160405180910390fd5b600182016200052d8282620009ea565b50604080850151835486516001600160a01b03166001600160a01b0319921515600160a01b02929092166001600160a81b031990911617178355516001600160401b038416907f49f51971edd25182e97182d6ea372a0488ce2ab639f6a3a7ab4df0d2636fe56b90620005a290859062000ab6565b60405180910390a25050505080600101905062000370565b5050565b634e487b7160e01b600052604160045260246000fd5b604051608081016001600160401b0381118282101715620005f957620005f9620005be565b60405290565b604051601f8201601f191681016001600160401b03811182821017156200062a576200062a620005be565b604052919050565b80516001600160401b03811681146200064a57600080fd5b919050565b6001600160a01b03811681146200066557600080fd5b50565b6000601f83601f8401126200067c57600080fd5b825160206001600160401b03808311156200069b576200069b620005be565b8260051b620006ac838201620005ff565b9384528681018301938381019089861115620006c757600080fd5b84890192505b85831015620007f957825184811115620006e75760008081fd5b89016080601f19828d038101821315620007015760008081fd5b6200070b620005d4565b888401516200071a816200064f565b815260406200072b85820162000632565b8a8301526060808601518015158114620007455760008081fd5b838301529385015193898511156200075d5760008081fd5b84860195508f603f8701126200077557600094508485fd5b8a8601519450898511156200078e576200078e620005be565b6200079f8b858f88011601620005ff565b93508484528f82868801011115620007b75760008081fd5b60005b85811015620007d7578681018301518582018d01528b01620007ba565b5060009484018b019490945250918201528352509184019190840190620006cd565b9998505050505050505050565b60008060008385036101008112156200081e57600080fd5b60808112156200082d57600080fd5b62000837620005d4565b620008428662000632565b8152602086015162000854816200064f565b6020820152604086015162000869816200064f565b604082015260608601516200087e816200064f565b606082810191909152909450607f19820112156200089b57600080fd5b50604051606081016001600160401b038082118383101715620008c257620008c2620005be565b8160405260808701519150620008d8826200064f565b90825260a08601519063ffffffff82168214620008f457600080fd5b81602084015260c087015191506200090c826200064f565b6040830182905260e0870151929450808311156200092957600080fd5b5050620009398682870162000668565b9150509250925092565b634e487b7160e01b600052603260045260246000fd5b600181811c908216806200096e57607f821691505b6020821081036200098f57634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620009e5576000816000526020600020601f850160051c81016020861015620009c05750805b601f850160051c820191505b81811015620009e157828155600101620009cc565b5050505b505050565b81516001600160401b0381111562000a065762000a06620005be565b62000a1e8162000a17845462000959565b8462000995565b602080601f83116001811462000a56576000841562000a3d5750858301515b600019600386901b1c1916600185901b178555620009e1565b600085815260208120601f198616915b8281101562000a875788860151825594840194600190910190840162000a66565b508582101562000aa65787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b602080825282546001600160a01b0381168383015260a081901c60ff161515604084015260a81c6001600160401b0316606083015260808083015260018084018054600093929190849062000b0b8162000959565b8060a089015260c0600183166000811462000b2f576001811462000b4c5762000b7e565b60ff19841660c08b015260c083151560051b8b0101945062000b7e565b85600052602060002060005b8481101562000b755781548c820185015290880190890162000b58565b8b0160c0019550505b50929998505050505050505050565b60805160a05160c05160e05161010051615c9862000c036000396000818161022c01526129260152600081816101fd0152612bf80152600081816101ce01528181610552015281816106ff015261236a01526000818161019f01526125a9015260008181611d920152611dc50152615c986000f3fe608060405234801561001057600080fd5b50600436106101515760003560e01c806379ba5097116100cd578063d434969111610081578063e9d68a8e11610066578063e9d68a8e146104bc578063f2fde38b146104dc578063f716f99f146104ef57600080fd5b8063d434969114610496578063e62653f5146104a957600080fd5b80638da5cb5b116100b25780638da5cb5b14610417578063c673e58414610432578063ccd37ba31461045257600080fd5b806379ba50971461040157806385572ffb1461040957600080fd5b8063311cd513116101245780635e36480c116101095780635e36480c1461033c5780636f9e320f1461035c5780637437ff9f1461036f57600080fd5b8063311cd5131461030e5780633f4b04aa1461032157600080fd5b806304666f9c1461015657806306285c691461016b578063181f5a77146102b25780632d04ab76146102fb575b600080fd5b610169610164366004613bbf565b610502565b005b61025c60408051608081018252600080825260208201819052918101829052606081019190915260405180608001604052807f00000000000000000000000000000000000000000000000000000000000000006001600160401b031681526020017f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031681526020017f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031681526020017f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316815250905090565b6040516102a9919081516001600160401b031681526020808301516001600160a01b0390811691830191909152604080840151821690830152606092830151169181019190915260800190565b60405180910390f35b6102ee6040518060400160405280601181526020017f4f666652616d7020312e362e302d64657600000000000000000000000000000081525081565b6040516102a99190613d2d565b610169610309366004613ddd565b610516565b61016961031c366004613e8f565b610a12565b6009546040516001600160401b0390911681526020016102a9565b61034f61034a366004613ee2565b610a7b565b6040516102a99190613f3f565b61016961036a366004613f6a565b610ad0565b6103cb604080516060810182526000808252602082018190529181019190915250604080516060810182526004546001600160a01b038082168352600160a01b90910463ffffffff166020830152600554169181019190915290565b6040805182516001600160a01b03908116825260208085015163ffffffff169083015292820151909216908201526060016102a9565b610169610ae1565b610169610151366004613fbe565b6000546040516001600160a01b0390911681526020016102a9565b610445610440366004614009565b610b92565b6040516102a99190614069565b6104886104603660046140de565b6001600160401b03919091166000908152600860209081526040808320938352929052205490565b6040519081526020016102a9565b6101696104a436600461437a565b610cf0565b6101696104b7366004614702565b610fd0565b6104cf6104ca366004614949565b611277565b6040516102a99190614964565b6101696104ea3660046149b1565b611383565b6101696104fd366004614a36565b611394565b61050a6113d6565b61051381611432565b50565b600061052487890189614d8b565b602081015151909150156105b6576020810151604080830151905162ccd5af60e81b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169263ccd5af009261058592600401614fb3565b60006040518083038186803b15801561059d57600080fd5b505afa1580156105b1573d6000803e3d6000fd5b505050505b805151511515806105cc57508051602001515115155b156106985760095460208a0135906001600160401b0380831691161015610670576009805467ffffffffffffffff19166001600160401b038316179055600480548351604051633937306f60e01b81526001600160a01b0390921692633937306f926106399291016150e7565b600060405180830381600087803b15801561065357600080fd5b505af1158015610667573d6000803e3d6000fd5b50505050610696565b81602001515160000361069657604051632261116760e01b815260040160405180910390fd5b505b60005b816020015151811015610953576000826020015182815181106106c0576106c0615015565b60209081029190910101518051604051632cbc26bb60e01b815267ffffffffffffffff60801b608083901b166004820152919250906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690632cbc26bb90602401602060405180830381865afa158015610746573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061076a91906150fa565b1561079857604051637edeb53960e11b81526001600160401b03821660048201526024015b60405180910390fd5b60006107a382611685565b9050806001016040516107b69190615151565b6040518091039020836020015180519060200120146107f357826020015181600101604051630426012b60e31b815260040161078f929190615244565b60408301518154600160a81b90046001600160401b039081169116141580610834575082606001516001600160401b031683604001516001600160401b0316115b1561087957825160408085015160608601519151636af0786b60e11b81526001600160401b03938416600482015290831660248201529116604482015260640161078f565b60808301518061089c5760405163504570e360e01b815260040160405180910390fd5b83516001600160401b03166000908152600860209081526040808320848452909152902054156108f45783516040516332cf0cbf60e01b81526001600160401b0390911660048201526024810182905260440161078f565b606084015161090490600161527f565b825467ffffffffffffffff60a81b1916600160a81b6001600160401b0392831602179092559251166000908152600860209081526040808320948352939052919091204290555060010161069b565b50602081015181516040517f35c02761bcd3ef995c6a601a1981f4ed3934dcbe5041e24e286c89f5531d17e49261098b9290916152a6565b60405180910390a1610a0760008a8a8a8a8a8080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020808e0282810182019093528d82529093508d92508c9182918501908490808284376000920191909152508b92506116d1915050565b505050505050505050565b610a52610a21828401846152cb565b6040805160008082526020820190925290610a4c565b6060815260200190600190039081610a375790505b506119ca565b604080516000808252602082019092529050610a756001858585858660006116d1565b50505050565b6000610a89600160046152ff565b6002610a96608085615328565b6001600160401b0316610aa9919061534e565b610ab38585611a8c565b901c166003811115610ac757610ac7613f15565b90505b92915050565b610ad86113d6565b61051381611ad1565b6001546001600160a01b03163314610b3b5760405162461bcd60e51b815260206004820152601660248201527f4d7573742062652070726f706f736564206f776e657200000000000000000000604482015260640161078f565b60008054336001600160a01b0319808316821784556001805490911690556040516001600160a01b0390921692909183917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a350565b610bd56040805160e081019091526000606082018181526080830182905260a0830182905260c08301919091528190815260200160608152602001606081525090565b60ff808316600090815260026020818152604092839020835160e081018552815460608201908152600183015480881660808401526101008104881660a0840152620100009004909616151560c082015294855291820180548451818402810184019095528085529293858301939092830182828015610c7e57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610c60575b5050505050815260200160038201805480602002602001604051908101604052809291908181526020018280548015610ce057602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610cc2575b5050505050815250509050919050565b333014610d10576040516306e34e6560e31b815260040160405180910390fd5b6040805160008082526020820190925281610d4d565b6040805180820190915260008082526020820152815260200190600190039081610d265790505b5060a08701515190915015610d8357610d808660a001518760200151886060015189600001516020015189898989611bb0565b90505b6040805160a081018252875151815287516020908101516001600160401b031681830152808901518351600094840192610dbe929101613d2d565b60408051601f19818403018152918152908252898101516020830152018390526005549091506001600160a01b03168015610e99576040516308d450a160e01b81526001600160a01b038216906308d450a190610e1f908590600401615406565b600060405180830381600087803b158015610e3957600080fd5b505af1925050508015610e4a575060015b610e99573d808015610e78576040519150601f19603f3d011682016040523d82523d6000602084013e610e7d565b606091505b50806040516309c2532560e01b815260040161078f9190613d2d565b604088015151158015610eae57506080880151155b80610ec5575060608801516001600160a01b03163b155b80610eec57506060880151610eea906001600160a01b03166385572ffb60e01b611d73565b155b15610ef957505050610fc9565b87516020908101516001600160401b03166000908152600690915260408082205460808b015160608c01519251633cf9798360e01b815284936001600160a01b0390931692633cf9798392610f579289926113889291600401615419565b6000604051808303816000875af1158015610f76573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610f9e9190810190615455565b509150915081610fc357806040516302a35ba360e21b815260040161078f9190613d2d565b50505050505b5050505050565b610fd8611d8f565b815181518114610ffb576040516320f8fd5960e21b815260040160405180910390fd5b60005b8181101561126757600084828151811061101a5761101a615015565b6020026020010151905060008160200151519050600085848151811061104257611042615015565b602002602001015190508051821461106d576040516320f8fd5960e21b815260040160405180910390fd5b60005b8281101561125857600082828151811061108c5761108c615015565b60200260200101516000015190506000856020015183815181106110b2576110b2615015565b6020026020010151905081600014611106578060800151821015611106578551815151604051633a98d46360e11b81526001600160401b03909216600483015260248201526044810183905260640161078f565b83838151811061111857611118615015565b602002602001015160200151518160a00151511461116557805180516060909101516040516370a193fd60e01b815260048101929092526001600160401b0316602482015260440161078f565b60005b8160a001515181101561124a57600085858151811061118957611189615015565b60200260200101516020015182815181106111a6576111a6615015565b602002602001015163ffffffff169050806000146112415760008360a0015183815181106111d6576111d6615015565b6020026020010151608001518060200190518101906111f591906154ea565b90508063ffffffff1682101561123f578351516040516348e617b360e01b815260048101919091526024810184905263ffffffff821660448201526064810183905260840161078f565b505b50600101611168565b505050806001019050611070565b50505050806001019050610ffe565b5061127283836119ca565b505050565b60408051608080820183526000808352602080840182905283850182905260608085018190526001600160401b03878116845260068352928690208651948501875280546001600160a01b0381168652600160a01b810460ff16151593860193909352600160a81b90920490921694830194909452600184018054939492939184019161130390615117565b80601f016020809104026020016040519081016040528092919081815260200182805461132f90615117565b8015610ce05780601f1061135157610100808354040283529160200191610ce0565b820191906000526020600020905b81548152906001019060200180831161135f57505050919092525091949350505050565b61138b6113d6565b61051381611df7565b61139c6113d6565b60005b81518110156113d2576113ca8282815181106113bd576113bd615015565b6020026020010151611ea0565b60010161139f565b5050565b6000546001600160a01b031633146114305760405162461bcd60e51b815260206004820152601660248201527f4f6e6c792063616c6c61626c65206279206f776e657200000000000000000000604482015260640161078f565b565b60005b81518110156113d257600082828151811061145257611452615015565b60200260200101519050600081602001519050806001600160401b031660000361148f5760405163c656089560e01b815260040160405180910390fd5b81516001600160a01b03166114b7576040516342bcdf7f60e11b815260040160405180910390fd5b6001600160401b038116600090815260066020526040902060608301516001820180546114e390615117565b905060000361154557815467ffffffffffffffff60a81b1916600160a81b1782556040516001600160401b03841681527ff4c1390c70e5c0f491ae1ccbc06f9117cbbadf2767b247b3bc203280f24c0fb99060200160405180910390a1611582565b8154600160a81b90046001600160401b031660011461158257604051632105803760e11b81526001600160401b038416600482015260240161078f565b805115806115b75750604080516000602082015201604051602081830303815290604052805190602001208180519060200120145b156115d5576040516342bcdf7f60e11b815260040160405180910390fd5b600182016115e38282615557565b50604080850151835486516001600160a01b03166001600160a01b0319921515600160a01b02929092167fffffffffffffffffffffff00000000000000000000000000000000000000000090911617178355516001600160401b038416907f49f51971edd25182e97182d6ea372a0488ce2ab639f6a3a7ab4df0d2636fe56b9061166e908590615616565b60405180910390a250505050806001019050611435565b6001600160401b03811660009081526006602052604081208054600160a01b900460ff16610aca5760405163ed053c5960e01b81526001600160401b038416600482015260240161078f565b60ff878116600090815260026020908152604080832081516080810183528154815260019091015480861693820193909352610100830485169181019190915262010000909104909216151560608301528735906117308760a4615664565b905082606001511561177857845161174990602061534e565b865161175690602061534e565b6117619060a0615664565b61176b9190615664565b6117759082615664565b90505b3681146117a157604051638e1192e160e01b81526004810182905236602482015260440161078f565b50815181146117d05781516040516324f7d61360e21b815260048101919091526024810182905260440161078f565b6117d8611d8f565b60ff808a166000908152600360209081526040808320338452825280832081518083019092528054808616835293949193909284019161010090910416600281111561182657611826613f15565b600281111561183757611837613f15565b905250905060028160200151600281111561185457611854613f15565b1480156118a85750600260008b60ff1660ff168152602001908152602001600020600301816000015160ff168154811061189057611890615015565b6000918252602090912001546001600160a01b031633145b6118c557604051631b41e11d60e31b815260040160405180910390fd5b508160600151156119755760208201516118e0906001615677565b60ff16855114611903576040516371253a2560e01b815260040160405180910390fd5b83518551146119255760405163a75d88af60e01b815260040160405180910390fd5b60008787604051611937929190615690565b60405190819003812061194e918b906020016156a0565b6040516020818303038152906040528051906020012090506119738a8288888861217f565b505b6040805182815260208a8101356001600160401b03169082015260ff8b16917f198d6990ef96613a9026203077e422916918b03ff47f0be6bee7b02d8e139ef0910160405180910390a2505050505050505050565b81516000036119eb5760405162bf199760e01b815260040160405180910390fd5b80516040805160008082526020820190925291159181611a2e565b604080518082019091526000815260606020820152815260200190600190039081611a065790505b50905060005b8451811015610fc957611a84858281518110611a5257611a52615015565b602002602001015184611a7e57858381518110611a7157611a71615015565b602002602001015161233c565b8361233c565b600101611a34565b6001600160401b038216600090815260076020526040812081611ab06080856156b4565b6001600160401b031681526020810191909152604001600020549392505050565b80516001600160a01b0316611af9576040516342bcdf7f60e11b815260040160405180910390fd5b805160048054602080850180516001600160a01b039586167fffffffffffffffff0000000000000000000000000000000000000000000000009094168417600160a01b63ffffffff928316021790945560408087018051600580546001600160a01b031916918916919091179055815194855291519094169183019190915251909216908201527fa1c15688cb2c24508e158f6942b9276c6f3028a85e1af8cf3fff0c3ff3d5fc8d9060600160405180910390a150565b606088516001600160401b03811115611bcb57611bcb6139df565b604051908082528060200260200182016040528015611c1057816020015b6040805180820190915260008082526020820152815260200190600190039081611be95790505b509050811560005b8a51811015611d655781611cc257848482818110611c3857611c38615015565b9050602002016020810190611c4d91906156da565b63ffffffff1615611cc257848482818110611c6a57611c6a615015565b9050602002016020810190611c7f91906156da565b6040805163ffffffff9092166020830152016040516020818303038152906040528b8281518110611cb257611cb2615015565b6020026020010151608001819052505b611d408b8281518110611cd757611cd7615015565b60200260200101518b8b8b8b8b87818110611cf457611cf4615015565b9050602002810190611d0691906156f7565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612bb092505050565b838281518110611d5257611d52615015565b6020908102919091010152600101611c18565b505098975050505050505050565b6000611d7e83612eae565b8015610ac75750610ac78383612ef9565b467f00000000000000000000000000000000000000000000000000000000000000001461143057604051630f01ce8560e01b81527f0000000000000000000000000000000000000000000000000000000000000000600482015246602482015260440161078f565b336001600160a01b03821603611e4f5760405162461bcd60e51b815260206004820152601760248201527f43616e6e6f74207472616e7366657220746f2073656c66000000000000000000604482015260640161078f565b600180546001600160a01b0319166001600160a01b0383811691821790925560008054604051929316917fed8889f560326eb138920d842192f0eb3dd22b4f139c87a2c57538e05bae12789190a350565b806040015160ff16600003611ecb576000604051631b3fab5160e11b815260040161078f919061573d565b60208082015160ff80821660009081526002909352604083206001810154929390928392169003611f1c576060840151600182018054911515620100000262ff000019909216919091179055611f58565b6060840151600182015460ff6201000090910416151590151514611f58576040516321fd80df60e21b815260ff8416600482015260240161078f565b60a084015180516101001015611f84576001604051631b3fab5160e11b815260040161078f919061573d565b611fea8484600301805480602002602001604051908101604052809291908181526020018280548015611fe057602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611fc2575b5050505050612f9b565b8460600151156120f4576120588484600201805480602002602001604051908101604052809291908181526020018280548015611fe0576020028201919060005260206000209081546001600160a01b03168152600190910190602001808311611fc2575050505050612f9b565b608085015180516101001015612084576002604051631b3fab5160e11b815260040161078f919061573d565b6040860151612094906003615757565b60ff168151116120ba576003604051631b3fab5160e11b815260040161078f919061573d565b805160018401805461ff00191661010060ff8416021790556120e59060028601906020840190613965565b506120f285826001613004565b505b61210084826002613004565b80516121159060038501906020840190613965565b5060408581015160018401805460ff191660ff8316179055865180855560a088015192517fab8b1b57514019638d7b5ce9c638fe71366fe8e2be1c40a7a80f1733d0e9f5479361216e9389939260028a01929190615773565b60405180910390a1610fc98461315f565b8251600090815b818110156123325760006001888684602081106121a5576121a5615015565b6121b291901a601b615677565b8985815181106121c4576121c4615015565b60200260200101518986815181106121de576121de615015565b60200260200101516040516000815260200160405260405161221c949392919093845260ff9290921660208401526040830152606082015260800190565b6020604051602081039080840390855afa15801561223e573d6000803e3d6000fd5b505060408051601f1981015160ff808e166000908152600360209081528582206001600160a01b0385168352815285822085870190965285548084168652939750909550929392840191610100900416600281111561229f5761229f613f15565b60028111156122b0576122b0613f15565b90525090506001816020015160028111156122cd576122cd613f15565b146122eb57604051636518c33d60e11b815260040160405180910390fd5b8051600160ff9091161b85161561231557604051633d9ef1f160e21b815260040160405180910390fd5b806000015160ff166001901b851794505050806001019050612186565b5050505050505050565b81518151604051632cbc26bb60e01b8152608083901b67ffffffffffffffff60801b166004820152901515907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690632cbc26bb90602401602060405180830381865afa1580156123b9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123dd91906150fa565b1561244e57801561240c57604051637edeb53960e11b81526001600160401b038316600482015260240161078f565b6040516001600160401b03831681527faab522ed53d887e56ed53dd37398a01aeef6a58e0fa77c2173beb9512d8949339060200160405180910390a150505050565b600061245983611685565b600101805461246790615117565b80601f016020809104026020016040519081016040528092919081815260200182805461249390615117565b80156124e05780601f106124b5576101008083540402835291602001916124e0565b820191906000526020600020905b8154815290600101906020018083116124c357829003601f168201915b5050506020880151519293505050600081900361250f5760405162bf199760e01b815260040160405180910390fd5b8560400151518114612534576040516357e0e08360e01b815260040160405180910390fd5b6000816001600160401b0381111561254e5761254e6139df565b604051908082528060200260200182016040528015612577578160200160208202803683370190505b50905060005b828110156126985760008860200151828151811061259d5761259d615015565b602002602001015190507f00000000000000000000000000000000000000000000000000000000000000006001600160401b03168160000151604001516001600160401b0316146126145780516040908101519051631c21951160e11b81526001600160401b03909116600482015260240161078f565b866001600160401b03168160000151602001516001600160401b03161461266857805160200151604051636c95f1eb60e01b81526001600160401b03808a166004830152909116602482015260440161078f565b61267281866131b6565b83838151811061268457612684615015565b60209081029190910101525060010161257d565b5060006126af86838a606001518b608001516132d8565b9050806000036126dd57604051633ee8bd3f60e11b81526001600160401b038716600482015260240161078f565b60005b83811015610a075760005a905060008a60200151838151811061270557612705615015565b6020026020010151905060006127238a836000015160600151610a7b565b9050600081600381111561273957612739613f15565b14806127565750600381600381111561275457612754613f15565b145b6127ac57815160600151604080516001600160401b03808e16825290921660208301527f3b575419319662b2a6f5e2467d84521517a3382b908eb3d557bb3fdb0c50e23c910160405180910390a1505050612ba8565b6060891561288b578b85815181106127c6576127c6615015565b6020908102919091018101510151600454909150600090600160a01b900463ffffffff166127f488426152ff565b11905080806128145750600383600381111561281257612812613f15565b145b61283c576040516354e7e43160e11b81526001600160401b038d16600482015260240161078f565b8c868151811061284e5761284e615015565b602002602001015160000151600014612885578c868151811061287357612873615015565b60209081029190910101515160808501525b506128f7565b600082600381111561289f5761289f613f15565b146128f757825160600151604080516001600160401b03808f16825290921660208301527f3ef2a99c550a751d4b0b261268f05a803dfb049ab43616a1ffb388f61fe65120910160405180910390a150505050612ba8565b8251608001516001600160401b0316156129d057600082600381111561291f5761291f613f15565b036129d0577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e0e03cae8c85600001516080015186602001516040518463ffffffff1660e01b815260040161298093929190615825565b6020604051808303816000875af115801561299f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129c391906150fa565b6129d05750505050612ba8565b60008d6040015186815181106129e8576129e8615015565b6020026020010151905080518460a001515114612a3257835160600151604051631cfe6d8b60e01b81526001600160401b03808f166004830152909116602482015260440161078f565b612a468c8560000151606001516001613315565b600080612a548684866133ba565b91509150612a6b8e87600001516060015184613315565b8c15612ac2576003826003811115612a8557612a85613f15565b03612ac2576000856003811115612a9e57612a9e613f15565b14612ac257855151604051632b11b8d960e01b815261078f91908390600401615851565b6002826003811115612ad657612ad6613f15565b14612b1b576003826003811115612aef57612aef613f15565b14612b1b578d866000015160600151836040516349362d1f60e11b815260040161078f9392919061586a565b8560000151600001518660000151606001516001600160401b03168f6001600160401b03167f05665fe9ad095383d018353f4cbcba77e84db27dd215081bbf7cdf9ae6fbe48b8d8c81518110612b7357612b73615015565b602002602001015186865a612b88908f6152ff565b604051612b98949392919061588f565b60405180910390a4505050505050505b6001016126e0565b60408051808201909152600080825260208201526000612bd3876020015161346e565b60405163bbe4f6db60e01b81526001600160a01b0380831660048301529192506000917f0000000000000000000000000000000000000000000000000000000000000000169063bbe4f6db90602401602060405180830381865afa158015612c3f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c6391906158c6565b90506001600160a01b0381161580612c925750612c906001600160a01b03821663aff2afbf60e01b611d73565b155b15612cbb5760405163ae9b4ce960e01b81526001600160a01b038216600482015260240161078f565b600080612ce688858c60800151806020019051810190612cdb91906154ea565b63ffffffff166134e2565b915091506000806000612d996040518061010001604052808e81526020018c6001600160401b031681526020018d6001600160a01b031681526020018f606001518152602001896001600160a01b031681526020018f6000015181526020018f6040015181526020018b815250604051602401612d6391906158e3565b60408051601f198184030181529190526020810180516001600160e01b0316633907753760e01b179052878661138860846135c5565b92509250925082612dbf578160405163e1cd550960e01b815260040161078f9190613d2d565b8151602014612dee578151604051631e3be00960e21b815260206004820152602481019190915260440161078f565b600082806020019051810190612e0491906159af565b9050866001600160a01b03168c6001600160a01b031614612e80576000612e358d8a612e30868a6152ff565b6134e2565b50905086811080612e4f575081612e4c88836152ff565b14155b15612e7e5760405163a966e21f60e01b815260048101839052602481018890526044810182905260640161078f565b505b604080518082019091526001600160a01b039098168852602088015250949550505050505095945050505050565b6000612ec1826301ffc9a760e01b612ef9565b8015610aca5750612ef2827fffffffff00000000000000000000000000000000000000000000000000000000612ef9565b1592915050565b6040517fffffffff0000000000000000000000000000000000000000000000000000000082166024820152600090819060440160408051601f19818403018152919052602080820180516001600160e01b03166301ffc9a760e01b178152825192935060009283928392909183918a617530fa92503d91506000519050828015612f84575060208210155b8015612f905750600081115b979650505050505050565b60005b81518110156112725760ff831660009081526003602052604081208351909190849084908110612fd057612fd0615015565b6020908102919091018101516001600160a01b03168252810191909152604001600020805461ffff19169055600101612f9e565b60005b8251811015610a7557600083828151811061302457613024615015565b602002602001015190506000600281111561304157613041613f15565b60ff80871660009081526003602090815260408083206001600160a01b0387168452909152902054610100900416600281111561308057613080613f15565b146130a1576004604051631b3fab5160e11b815260040161078f919061573d565b6001600160a01b0381166130c85760405163d6c62c9b60e01b815260040160405180910390fd5b60405180604001604052808360ff1681526020018460028111156130ee576130ee613f15565b905260ff80871660009081526003602090815260408083206001600160a01b0387168452825290912083518154931660ff198416811782559184015190929091839161ffff19161761010083600281111561314b5761314b613f15565b021790555090505050806001019050613007565b60ff81166105135760ff808216600090815260026020526040902060010154620100009004166131a257604051631e8ed32560e21b815260040160405180910390fd5b6009805467ffffffffffffffff1916905550565b8151602080820151604092830151925160009384936131fc937f2425b0b9f9054c76ff151b0a175b18f37a4a4e82013a72e9f15c9caa095ed21f939092918891016159c8565b60408051601f1981840301815290829052805160209182012086518051888401516060808b0151908401516080808d0151950151959761324597949693959294919391016159fa565b604051602081830303815290604052805190602001208560400151805190602001208660a0015160405160200161327c9190615afe565b60408051601f198184030181528282528051602091820120908301969096528101939093526060830191909152608082015260a081019190915260c0015b60405160208183030381529060405280519060200120905092915050565b6000806132e685858561369f565b6001600160401b038716600090815260086020908152604080832093835292905220549150505b949350505050565b60006002613324608085615328565b6001600160401b0316613337919061534e565b905060006133458585611a8c565b905081613354600160046152ff565b901b19168183600381111561336b5761336b613f15565b6001600160401b03871660009081526007602052604081209190921b929092179182916133996080886156b4565b6001600160401b031681526020810191909152604001600020555050505050565b60405163d434969160e01b8152600090606090309063d4349691906133e790889088908890600401615b95565b600060405180830381600087803b15801561340157600080fd5b505af1925050508015613412575060015b613451573d808015613440576040519150601f19603f3d011682016040523d82523d6000602084013e613445565b606091505b50600392509050613466565b50506040805160208101909152600081526002905b935093915050565b60008151602014613494578160405163046b337b60e51b815260040161078f9190613d2d565b6000828060200190518101906134aa91906159af565b90506001600160a01b038111806134c2575061040081105b15610aca578260405163046b337b60e51b815260040161078f9190613d2d565b60008060008060006135438860405160240161350d91906001600160a01b0391909116815260200190565b60408051601f198184030181529190526020810180516001600160e01b03166370a0823160e01b179052888861138860846135c5565b92509250925082613569578160405163e1cd550960e01b815260040161078f9190613d2d565b6020825114613598578151604051631e3be00960e21b815260206004820152602481019190915260440161078f565b818060200190518101906135ac91906159af565b6135b682886152ff565b94509450505050935093915050565b6000606060008361ffff166001600160401b038111156135e7576135e76139df565b6040519080825280601f01601f191660200182016040528015613611576020820181803683370190505b509150863b61362b5763030ed58f60e21b60005260046000fd5b5a8581101561364557632be8ca8b60e21b60005260046000fd5b8590036040810481038710613665576337c3be2960e01b60005260046000fd5b505a6000808a5160208c0160008c8cf193505a900390503d848111156136885750835b808352806000602085013e50955095509592505050565b82518251600091908183036136c757604051630469ac9960e21b815260040160405180910390fd5b61010182118015906136db57506101018111155b6136f8576040516309bde33960e01b815260040160405180910390fd5b60001982820101610100811115613722576040516309bde33960e01b815260040160405180910390fd5b8060000361374f578660008151811061373d5761373d615015565b6020026020010151935050505061391d565b6000816001600160401b03811115613769576137696139df565b604051908082528060200260200182016040528015613792578160200160208202803683370190505b50905060008080805b858110156138bc5760006001821b8b8116036137f657888510156137df578c5160018601958e9181106137d0576137d0615015565b60200260200101519050613818565b85516001850194879181106137d0576137d0615015565b8b5160018401938d91811061380d5761380d615015565b602002602001015190505b600089861015613848578d5160018701968f91811061383957613839615015565b6020026020010151905061386a565b865160018601958891811061385f5761385f615015565b602002602001015190505b8285111561388b576040516309bde33960e01b815260040160405180910390fd5b6138958282613924565b8784815181106138a7576138a7615015565b6020908102919091010152505060010161379b565b5060018503821480156138ce57508683145b80156138d957508581145b6138f6576040516309bde33960e01b815260040160405180910390fd5b83600186038151811061390b5761390b615015565b60200260200101519750505050505050505b9392505050565b600081831061393c576139378284613942565b610ac7565b610ac783835b6040805160016020820152908101839052606081018290526000906080016132ba565b8280548282559060005260206000209081019282156139ba579160200282015b828111156139ba57825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190613985565b506139c69291506139ca565b5090565b5b808211156139c657600081556001016139cb565b634e487b7160e01b600052604160045260246000fd5b604051608081016001600160401b0381118282101715613a1757613a176139df565b60405290565b604051606081016001600160401b0381118282101715613a1757613a176139df565b60405160a081016001600160401b0381118282101715613a1757613a176139df565b60405160c081016001600160401b0381118282101715613a1757613a176139df565b604080519081016001600160401b0381118282101715613a1757613a176139df565b604051601f8201601f191681016001600160401b0381118282101715613acd57613acd6139df565b604052919050565b60006001600160401b03821115613aee57613aee6139df565b5060051b60200190565b6001600160a01b038116811461051357600080fd5b80356001600160401b0381168114613b2457600080fd5b919050565b801515811461051357600080fd5b8035613b2481613b29565b60006001600160401b03821115613b5b57613b5b6139df565b50601f01601f191660200190565b600082601f830112613b7a57600080fd5b8135613b8d613b8882613b42565b613aa5565b818152846020838601011115613ba257600080fd5b816020850160208301376000918101602001919091529392505050565b60006020808385031215613bd257600080fd5b82356001600160401b0380821115613be957600080fd5b818501915085601f830112613bfd57600080fd5b8135613c0b613b8882613ad5565b81815260059190911b83018401908481019088831115613c2a57600080fd5b8585015b83811015613cd057803585811115613c465760008081fd5b86016080818c03601f1901811315613c5e5760008081fd5b613c666139f5565b89830135613c7381613af8565b81526040613c82848201613b0d565b8b830152606080850135613c9581613b29565b83830152928401359289841115613cae57600091508182fd5b613cbc8f8d86880101613b69565b908301525085525050918601918601613c2e565b5098975050505050505050565b60005b83811015613cf8578181015183820152602001613ce0565b50506000910152565b60008151808452613d19816020860160208601613cdd565b601f01601f19169290920160200192915050565b602081526000610ac76020830184613d01565b8060608101831015610aca57600080fd5b60008083601f840112613d6357600080fd5b5081356001600160401b03811115613d7a57600080fd5b602083019150836020828501011115613d9257600080fd5b9250929050565b60008083601f840112613dab57600080fd5b5081356001600160401b03811115613dc257600080fd5b6020830191508360208260051b8501011115613d9257600080fd5b60008060008060008060008060e0898b031215613df957600080fd5b613e038a8a613d40565b975060608901356001600160401b0380821115613e1f57600080fd5b613e2b8c838d01613d51565b909950975060808b0135915080821115613e4457600080fd5b613e508c838d01613d99565b909750955060a08b0135915080821115613e6957600080fd5b50613e768b828c01613d99565b999c989b50969995989497949560c00135949350505050565b600080600060808486031215613ea457600080fd5b613eae8585613d40565b925060608401356001600160401b03811115613ec957600080fd5b613ed586828701613d51565b9497909650939450505050565b60008060408385031215613ef557600080fd5b613efe83613b0d565b9150613f0c60208401613b0d565b90509250929050565b634e487b7160e01b600052602160045260246000fd5b60048110613f3b57613f3b613f15565b9052565b60208101610aca8284613f2b565b8035613b2481613af8565b63ffffffff8116811461051357600080fd5b600060608284031215613f7c57600080fd5b613f84613a1d565b8235613f8f81613af8565b81526020830135613f9f81613f58565b60208201526040830135613fb281613af8565b60408201529392505050565b600060208284031215613fd057600080fd5b81356001600160401b03811115613fe657600080fd5b820160a0818503121561391d57600080fd5b803560ff81168114613b2457600080fd5b60006020828403121561401b57600080fd5b610ac782613ff8565b60008151808452602080850194506020840160005b8381101561405e5781516001600160a01b031687529582019590820190600101614039565b509495945050505050565b60208152600082518051602084015260ff602082015116604084015260ff604082015116606084015260608101511515608084015250602083015160c060a08401526140b860e0840182614024565b90506040840151601f198483030160c08501526140d58282614024565b95945050505050565b600080604083850312156140f157600080fd5b6140fa83613b0d565b946020939093013593505050565b600060a0828403121561411a57600080fd5b614122613a3f565b90508135815261413460208301613b0d565b602082015261414560408301613b0d565b604082015261415660608301613b0d565b606082015261416760808301613b0d565b608082015292915050565b600082601f83011261418357600080fd5b81356020614193613b8883613ad5565b82815260059290921b840181019181810190868411156141b257600080fd5b8286015b848110156142ac5780356001600160401b03808211156141d65760008081fd5b9088019060a0828b03601f19018113156141f05760008081fd5b6141f8613a3f565b878401358381111561420a5760008081fd5b6142188d8a83880101613b69565b8252506040808501358481111561422f5760008081fd5b61423d8e8b83890101613b69565b8a84015250606080860135858111156142565760008081fd5b6142648f8c838a0101613b69565b8385015250608091508186013581840152508285013592508383111561428a5760008081fd5b6142988d8a85880101613b69565b9082015286525050509183019183016141b6565b509695505050505050565b600061014082840312156142ca57600080fd5b6142d2613a61565b90506142de8383614108565b815260a08201356001600160401b03808211156142fa57600080fd5b61430685838601613b69565b602084015260c084013591508082111561431f57600080fd5b61432b85838601613b69565b604084015261433c60e08501613f4d565b6060840152610100840135608084015261012084013591508082111561436157600080fd5b5061436e84828501614172565b60a08301525092915050565b60008060008060006060868803121561439257600080fd5b85356001600160401b03808211156143a957600080fd5b6143b589838a016142b7565b965060208801359150808211156143cb57600080fd5b6143d789838a01613d99565b909650945060408801359150808211156143f057600080fd5b506143fd88828901613d99565b969995985093965092949392505050565b600082601f83011261441f57600080fd5b8135602061442f613b8883613ad5565b82815260059290921b8401810191818101908684111561444e57600080fd5b8286015b848110156142ac5780356001600160401b038111156144715760008081fd5b61447f8986838b01016142b7565b845250918301918301614452565b600082601f83011261449e57600080fd5b813560206144ae613b8883613ad5565b82815260059290921b840181019181810190868411156144cd57600080fd5b8286015b848110156142ac5780356001600160401b03808211156144f057600080fd5b818901915089603f83011261450457600080fd5b85820135614514613b8882613ad5565b81815260059190911b830160400190878101908c83111561453457600080fd5b604085015b8381101561456d5780358581111561455057600080fd5b61455f8f6040838a0101613b69565b845250918901918901614539565b508752505050928401925083016144d1565b600082601f83011261459057600080fd5b813560206145a0613b8883613ad5565b8083825260208201915060208460051b8701019350868411156145c257600080fd5b602086015b848110156142ac57803583529183019183016145c7565b600082601f8301126145ef57600080fd5b813560206145ff613b8883613ad5565b82815260059290921b8401810191818101908684111561461e57600080fd5b8286015b848110156142ac5780356001600160401b03808211156146425760008081fd5b9088019060a0828b03601f190181131561465c5760008081fd5b614664613a3f565b61466f888501613b0d565b8152604080850135848111156146855760008081fd5b6146938e8b8389010161440e565b8a84015250606080860135858111156146ac5760008081fd5b6146ba8f8c838a010161448d565b83850152506080915081860135858111156146d55760008081fd5b6146e38f8c838a010161457f565b9184019190915250919093013590830152508352918301918301614622565b6000806040838503121561471557600080fd5b6001600160401b038335111561472a57600080fd5b61473784843585016145de565b91506001600160401b036020840135111561475157600080fd5b6020830135830184601f82011261476757600080fd5b614774613b888235613ad5565b81358082526020808301929160051b84010187101561479257600080fd5b602083015b6020843560051b85010181101561493b576001600160401b03813511156147bd57600080fd5b87603f8235860101126147cf57600080fd5b6147e2613b886020833587010135613ad5565b81358501602081810135808452908301929160059190911b016040018a101561480a57600080fd5b604083358701015b83358701602081013560051b0160400181101561492b576001600160401b038135111561483e57600080fd5b833587018135016040818d03603f1901121561485957600080fd5b614861613a83565b604082013581526001600160401b036060830135111561488057600080fd5b8c605f60608401358401011261489557600080fd5b60406060830135830101356148ac613b8882613ad5565b808282526020820191508f60608460051b60608801358801010111156148d157600080fd5b6060808601358601015b60608460051b60608801358801010181101561490b576148fb8135613f58565b80358352602092830192016148db565b508060208501525050508085525050602083019250602081019050614812565b5084525060209283019201614797565b508093505050509250929050565b60006020828403121561495b57600080fd5b610ac782613b0d565b602081526001600160a01b0382511660208201526020820151151560408201526001600160401b0360408301511660608201526000606083015160808084015261330d60a0840182613d01565b6000602082840312156149c357600080fd5b813561391d81613af8565b600082601f8301126149df57600080fd5b813560206149ef613b8883613ad5565b8083825260208201915060208460051b870101935086841115614a1157600080fd5b602086015b848110156142ac578035614a2981613af8565b8352918301918301614a16565b60006020808385031215614a4957600080fd5b82356001600160401b0380821115614a6057600080fd5b818501915085601f830112614a7457600080fd5b8135614a82613b8882613ad5565b81815260059190911b83018401908481019088831115614aa157600080fd5b8585015b83811015613cd057803585811115614abc57600080fd5b860160c0818c03601f19011215614ad35760008081fd5b614adb613a61565b8882013581526040614aee818401613ff8565b8a8301526060614aff818501613ff8565b8284015260809150614b12828501613b37565b9083015260a08381013589811115614b2a5760008081fd5b614b388f8d838801016149ce565b838501525060c0840135915088821115614b525760008081fd5b614b608e8c848701016149ce565b9083015250845250918601918601614aa5565b80356001600160e01b0381168114613b2457600080fd5b600082601f830112614b9b57600080fd5b81356020614bab613b8883613ad5565b82815260069290921b84018101918181019086841115614bca57600080fd5b8286015b848110156142ac5760408189031215614be75760008081fd5b614bef613a83565b614bf882613b0d565b8152614c05858301614b73565b81860152835291830191604001614bce565b600082601f830112614c2857600080fd5b81356020614c38613b8883613ad5565b82815260059290921b84018101918181019086841115614c5757600080fd5b8286015b848110156142ac5780356001600160401b0380821115614c7b5760008081fd5b9088019060a0828b03601f1901811315614c955760008081fd5b614c9d613a3f565b614ca8888501613b0d565b815260408085013584811115614cbe5760008081fd5b614ccc8e8b83890101613b69565b8a8401525060609350614ce0848601613b0d565b908201526080614cf1858201613b0d565b93820193909352920135908201528352918301918301614c5b565b600082601f830112614d1d57600080fd5b81356020614d2d613b8883613ad5565b82815260069290921b84018101918181019086841115614d4c57600080fd5b8286015b848110156142ac5760408189031215614d695760008081fd5b614d71613a83565b813581528482013585820152835291830191604001614d50565b60006020808385031215614d9e57600080fd5b82356001600160401b0380821115614db557600080fd5b9084019060608287031215614dc957600080fd5b614dd1613a1d565b823582811115614de057600080fd5b83016040818903811315614df357600080fd5b614dfb613a83565b823585811115614e0a57600080fd5b8301601f81018b13614e1b57600080fd5b8035614e29613b8882613ad5565b81815260069190911b8201890190898101908d831115614e4857600080fd5b928a01925b82841015614e985785848f031215614e655760008081fd5b614e6d613a83565b8435614e7881613af8565b8152614e85858d01614b73565b818d0152825292850192908a0190614e4d565b845250505082870135915084821115614eb057600080fd5b614ebc8a838501614b8a565b81880152835250508284013582811115614ed557600080fd5b614ee188828601614c17565b85830152506040830135935081841115614efa57600080fd5b614f0687858501614d0c565b60408201529695505050505050565b600082825180855260208086019550808260051b84010181860160005b84811015614fa657601f19868403018952815160a06001600160401b03808351168652868301518288880152614f6a83880182613d01565b60408581015184169089015260608086015190931692880192909252506080928301519290950191909152509783019790830190600101614f32565b5090979650505050505050565b60006040808352614fc76040840186614f15565b83810360208581019190915285518083528682019282019060005b8181101561500757845180518452840151848401529383019391850191600101614fe2565b509098975050505050505050565b634e487b7160e01b600052603260045260246000fd5b805160408084528151848201819052600092602091908201906060870190855b8181101561508257835180516001600160a01b031684528501516001600160e01b031685840152928401929185019160010161504b565b50508583015187820388850152805180835290840192506000918401905b808310156150db57835180516001600160401b031683528501516001600160e01b0316858301529284019260019290920191908501906150a0565b50979650505050505050565b602081526000610ac7602083018461502b565b60006020828403121561510c57600080fd5b815161391d81613b29565b600181811c9082168061512b57607f821691505b60208210810361514b57634e487b7160e01b600052602260045260246000fd5b50919050565b600080835461515f81615117565b60018281168015615177576001811461518c576151bb565b60ff19841687528215158302870194506151bb565b8760005260208060002060005b858110156151b25781548a820152908401908201615199565b50505082870194505b50929695505050505050565b600081546151d481615117565b8085526020600183811680156151f1576001811461520b57615239565b60ff1985168884015283151560051b880183019550615239565b866000528260002060005b858110156152315781548a8201860152908301908401615216565b890184019650505b505050505092915050565b6040815260006152576040830185613d01565b82810360208401526140d581856151c7565b634e487b7160e01b600052601160045260246000fd5b6001600160401b0381811683821601908082111561529f5761529f615269565b5092915050565b6040815260006152b96040830185614f15565b82810360208401526140d5818561502b565b6000602082840312156152dd57600080fd5b81356001600160401b038111156152f357600080fd5b61330d848285016145de565b81810381811115610aca57610aca615269565b634e487b7160e01b600052601260045260246000fd5b60006001600160401b038084168061534257615342615312565b92169190910692915050565b8082028115828204841417610aca57610aca615269565b80518252600060206001600160401b0381840151168185015260408084015160a0604087015261539860a0870182613d01565b9050606085015186820360608801526153b18282613d01565b608087810151898303918a01919091528051808352908601935060009250908501905b808310156150db57835180516001600160a01b03168352860151868301529285019260019290920191908401906153d4565b602081526000610ac76020830184615365565b60808152600061542c6080830187615365565b61ffff9590951660208301525060408101929092526001600160a01b0316606090910152919050565b60008060006060848603121561546a57600080fd5b835161547581613b29565b60208501519093506001600160401b0381111561549157600080fd5b8401601f810186136154a257600080fd5b80516154b0613b8882613b42565b8181528760208385010111156154c557600080fd5b6154d6826020830160208601613cdd565b809450505050604084015190509250925092565b6000602082840312156154fc57600080fd5b815161391d81613f58565b601f821115611272576000816000526020600020601f850160051c810160208610156155305750805b601f850160051c820191505b8181101561554f5782815560010161553c565b505050505050565b81516001600160401b03811115615570576155706139df565b6155848161557e8454615117565b84615507565b602080601f8311600181146155b957600084156155a15750858301515b600019600386901b1c1916600185901b17855561554f565b600085815260208120601f198616915b828110156155e8578886015182559484019460019091019084016155c9565b50858210156156065787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60208152600082546001600160a01b038116602084015260ff8160a01c16151560408401526001600160401b038160a81c16606084015250608080830152610ac760a08301600185016151c7565b80820180821115610aca57610aca615269565b60ff8181168382160190811115610aca57610aca615269565b8183823760009101908152919050565b828152606082602083013760800192915050565b60006001600160401b03808416806156ce576156ce615312565b92169190910492915050565b6000602082840312156156ec57600080fd5b813561391d81613f58565b6000808335601e1984360301811261570e57600080fd5b8301803591506001600160401b0382111561572857600080fd5b602001915036819003821315613d9257600080fd5b602081016005831061575157615751613f15565b91905290565b60ff818116838216029081169081811461529f5761529f615269565b600060a0820160ff881683526020878185015260a0604085015281875480845260c0860191508860005282600020935060005b818110156157cb5784546001600160a01b0316835260019485019492840192016157a6565b50508481036060860152865180825290820192508187019060005b8181101561580b5782516001600160a01b0316855293830193918301916001016157e6565b50505060ff851660808501525090505b9695505050505050565b60006001600160401b038086168352808516602084015250606060408301526140d56060830184613d01565b82815260406020820152600061330d6040830184613d01565b6001600160401b038481168252831660208201526060810161330d6040830184613f2b565b84815261589f6020820185613f2b565b6080604082015260006158b56080830185613d01565b905082606083015295945050505050565b6000602082840312156158d857600080fd5b815161391d81613af8565b6020815260008251610100806020850152615902610120850183613d01565b9150602085015161591e60408601826001600160401b03169052565b5060408501516001600160a01b03811660608601525060608501516080850152608085015161595860a08601826001600160a01b03169052565b5060a0850151601f19808685030160c08701526159758483613d01565b935060c08701519150808685030160e08701526159928483613d01565b935060e087015191508086850301838701525061581b8382613d01565b6000602082840312156159c157600080fd5b5051919050565b84815260006001600160401b0380861660208401528085166040840152506080606083015261581b6080830184613d01565b86815260c060208201526000615a1360c0830188613d01565b6001600160a01b03969096166040830152506001600160401b039384166060820152608081019290925290911660a09091015292915050565b600082825180855260208086019550808260051b84010181860160005b84811015614fa657601f19868403018952815160a08151818652615a8f82870182613d01565b9150508582015185820387870152615aa78282613d01565b91505060408083015186830382880152615ac18382613d01565b92505050606080830151818701525060808083015192508582038187015250615aea8183613d01565b9a86019a9450505090830190600101615a69565b602081526000610ac76020830184615a4c565b60008282518085526020808601955060208260051b8401016020860160005b84811015614fa657601f19868403018952615b4c838351613d01565b98840198925090830190600101615b30565b60008151808452602080850194506020840160005b8381101561405e57815163ffffffff1687529582019590820190600101615b73565b60608152600084518051606084015260208101516001600160401b0380821660808601528060408401511660a08601528060608401511660c08601528060808401511660e0860152505050602085015161014080610100850152615bfd6101a0850183613d01565b91506040870151605f198086850301610120870152615c1c8483613d01565b935060608901519150615c39838701836001600160a01b03169052565b608089015161016087015260a0890151925080868503016101808701525050615c628282615a4c565b9150508281036020840152615c778186615b11565b9050828103604084015261581b8185615b5e56fea164736f6c6343000818000a", } var OffRampABI = OffRampMetaData.ABI diff --git a/core/gethwrappers/ccip/generation/generated-wrapper-dependency-versions-do-not-edit.txt b/core/gethwrappers/ccip/generation/generated-wrapper-dependency-versions-do-not-edit.txt index 2b96ad4843..637299ca7d 100644 --- a/core/gethwrappers/ccip/generation/generated-wrapper-dependency-versions-do-not-edit.txt +++ b/core/gethwrappers/ccip/generation/generated-wrapper-dependency-versions-do-not-edit.txt @@ -23,7 +23,7 @@ multi_aggregate_rate_limiter: ../../../contracts/solc/v0.8.24/MultiAggregateRate multi_ocr3_helper: ../../../contracts/solc/v0.8.24/MultiOCR3Helper/MultiOCR3Helper.abi ../../../contracts/solc/v0.8.24/MultiOCR3Helper/MultiOCR3Helper.bin 6b56e0114a4d50797d30a34aecc2641ef340451d0c3fcb9d729bba4df2435122 nonce_manager: ../../../contracts/solc/v0.8.24/NonceManager/NonceManager.abi ../../../contracts/solc/v0.8.24/NonceManager/NonceManager.bin 6f64e1083b356c06ee66b9138e398b9c97a4cd3e8c9ec38cf3010cebc79af536 ocr3_config_encoder: ../../../contracts/solc/v0.8.24/IOCR3ConfigEncoder/IOCR3ConfigEncoder.abi ../../../contracts/solc/v0.8.24/IOCR3ConfigEncoder/IOCR3ConfigEncoder.bin 9254b35a86f00fde7b7193a033ca58f6521a66e87b9cf9da6ce5660082e79f5d -offramp: ../../../contracts/solc/v0.8.24/OffRamp/OffRamp.abi ../../../contracts/solc/v0.8.24/OffRamp/OffRamp.bin a444810e2636722726d4c79ed083f9dd57ca54bbbd35accc70bb59c2be675f33 +offramp: ../../../contracts/solc/v0.8.24/OffRamp/OffRamp.abi ../../../contracts/solc/v0.8.24/OffRamp/OffRamp.bin cea181da730d1f8846c50bcbbcacc58de191644511d13f03a9362bb045fd1a08 onramp: ../../../contracts/solc/v0.8.24/OnRamp/OnRamp.abi ../../../contracts/solc/v0.8.24/OnRamp/OnRamp.bin 594439983f963f4158f9c5009dee7cba4ee56be61900bb1d5b9108eaeac3d6a6 ping_pong_demo: ../../../contracts/solc/v0.8.24/PingPongDemo/PingPongDemo.abi ../../../contracts/solc/v0.8.24/PingPongDemo/PingPongDemo.bin c1c2f8a65c7ffd971899cae7fe62f2da57d09e936151e2b92163c4bebe699d6b price_registry: ../../../contracts/solc/v0.8.24/PriceRegistry/PriceRegistry.abi ../../../contracts/solc/v0.8.24/PriceRegistry/PriceRegistry.bin e7781d600c1bb7aa4620106af7f6e146a109b97f4cb6a7d06c9e15773340ecb2 From 1f19f84758a91c5f901ab6fb932c39faad6e3565 Mon Sep 17 00:00:00 2001 From: Ryan <80392855+RayXpub@users.noreply.github.com> Date: Thu, 12 Sep 2024 20:20:44 +0400 Subject: [PATCH 17/19] chore: rename event --- contracts/src/v0.8/ccip/offRamp/OffRamp.sol | 4 ++-- contracts/src/v0.8/ccip/test/offRamp/OffRamp.t.sol | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/contracts/src/v0.8/ccip/offRamp/OffRamp.sol b/contracts/src/v0.8/ccip/offRamp/OffRamp.sol index 5280a7f6e2..2bb89e3c33 100644 --- a/contracts/src/v0.8/ccip/offRamp/OffRamp.sol +++ b/contracts/src/v0.8/ccip/offRamp/OffRamp.sol @@ -63,7 +63,7 @@ contract OffRamp is ITypeAndVersion, MultiOCR3Base { error InvalidMessageDestChainSelector(uint64 messageDestChainSelector); error SourceChainSelectorMismatch(uint64 reportSourceChainSelector, uint64 messageSourceChainSelector); error SignatureVerificationDisabled(); - error InvalidOnRamp(bytes reportOnRamp, bytes configOnRamp); + error CommitOnRampMismatch(bytes reportOnRamp, bytes configOnRamp); error InvalidOnRampUpdate(uint64 sourceChainSelector); /// @dev Atlas depends on this event, if changing, please notify Atlas. @@ -659,7 +659,7 @@ contract OffRamp is ITypeAndVersion, MultiOCR3Base { SourceChainConfig storage sourceChainConfig = _getEnabledSourceChainConfig(sourceChainSelector); if (keccak256(root.onRampAddress) != keccak256(sourceChainConfig.onRamp)) { - revert InvalidOnRamp(root.onRampAddress, sourceChainConfig.onRamp); + revert CommitOnRampMismatch(root.onRampAddress, sourceChainConfig.onRamp); } if (sourceChainConfig.minSeqNr != root.minSeqNr || root.minSeqNr > root.maxSeqNr) { diff --git a/contracts/src/v0.8/ccip/test/offRamp/OffRamp.t.sol b/contracts/src/v0.8/ccip/test/offRamp/OffRamp.t.sol index 42aa6ade1a..b5fff3e9bd 100644 --- a/contracts/src/v0.8/ccip/test/offRamp/OffRamp.t.sol +++ b/contracts/src/v0.8/ccip/test/offRamp/OffRamp.t.sol @@ -3712,12 +3712,12 @@ contract OffRamp_commit is OffRampSetup { _commit(commitReport, ++s_latestSequenceNumber); } - function test_InvalidOnRamp_Revert() public { + function test_CommitOnRampMismatch_Revert() public { OffRamp.CommitReport memory commitReport = _constructCommitReport(); commitReport.merkleRoots[0].onRampAddress = ON_RAMP_ADDRESS_2; - vm.expectRevert(abi.encodeWithSelector(OffRamp.InvalidOnRamp.selector, ON_RAMP_ADDRESS_2, ON_RAMP_ADDRESS_1)); + vm.expectRevert(abi.encodeWithSelector(OffRamp.CommitOnRampMismatch.selector, ON_RAMP_ADDRESS_2, ON_RAMP_ADDRESS_1)); _commit(commitReport, s_latestSequenceNumber); } From 85ee9c7c3d6b90ed5685a015c7fe41dfb56d6cea Mon Sep 17 00:00:00 2001 From: Ryan <80392855+RayXpub@users.noreply.github.com> Date: Thu, 12 Sep 2024 20:25:32 +0400 Subject: [PATCH 18/19] chore: update gas snapshot --- contracts/gas-snapshots/ccip.gas-snapshot | 1459 +++++++++++---------- 1 file changed, 730 insertions(+), 729 deletions(-) diff --git a/contracts/gas-snapshots/ccip.gas-snapshot b/contracts/gas-snapshots/ccip.gas-snapshot index 6cb20b3a57..1590d6c3ae 100644 --- a/contracts/gas-snapshots/ccip.gas-snapshot +++ b/contracts/gas-snapshots/ccip.gas-snapshot @@ -2,259 +2,259 @@ ARMProxyStandaloneTest:test_ARMCallEmptyContractRevert() (gas: 19675) ARMProxyStandaloneTest:test_Constructor() (gas: 315049) ARMProxyStandaloneTest:test_SetARM() (gas: 16581) ARMProxyStandaloneTest:test_SetARMzero() (gas: 11267) -ARMProxyTest:test_ARMCallRevertReasonForwarded() (gas: 47868) -ARMProxyTest:test_ARMIsBlessed_Success() (gas: 36334) +ARMProxyTest:test_ARMCallRevertReasonForwarded() (gas: 47874) +ARMProxyTest:test_ARMIsBlessed_Success() (gas: 36353) ARMProxyTest:test_ARMIsCursed_Success() (gas: 49833) -AggregateTokenLimiter_constructor:test_Constructor_Success() (gas: 26992) -AggregateTokenLimiter_getTokenBucket:test_GetTokenBucket_Success() (gas: 19835) -AggregateTokenLimiter_getTokenBucket:test_Refill_Success() (gas: 41499) -AggregateTokenLimiter_getTokenBucket:test_TimeUnderflow_Revert() (gas: 15446) +AggregateTokenLimiter_constructor:test_Constructor_Success() (gas: 26998) +AggregateTokenLimiter_getTokenBucket:test_GetTokenBucket_Success() (gas: 19841) +AggregateTokenLimiter_getTokenBucket:test_Refill_Success() (gas: 41523) +AggregateTokenLimiter_getTokenBucket:test_TimeUnderflow_Revert() (gas: 15452) AggregateTokenLimiter_getTokenLimitAdmin:test_GetTokenLimitAdmin_Success() (gas: 10531) -AggregateTokenLimiter_getTokenValue:test_GetTokenValue_Success() (gas: 17465) -AggregateTokenLimiter_getTokenValue:test_NoTokenPrice_Reverts() (gas: 21360) -AggregateTokenLimiter_rateLimitValue:test_AggregateValueMaxCapacityExceeded_Revert() (gas: 16508) -AggregateTokenLimiter_rateLimitValue:test_RateLimitValueSuccess_gas() (gas: 18348) -AggregateTokenLimiter_setAdmin:test_OnlyOwnerOrAdmin_Revert() (gas: 13054) +AggregateTokenLimiter_getTokenValue:test_GetTokenValue_Success() (gas: 17471) +AggregateTokenLimiter_getTokenValue:test_NoTokenPrice_Reverts() (gas: 21366) +AggregateTokenLimiter_rateLimitValue:test_AggregateValueMaxCapacityExceeded_Revert() (gas: 16520) +AggregateTokenLimiter_rateLimitValue:test_RateLimitValueSuccess_gas() (gas: 18354) +AggregateTokenLimiter_setAdmin:test_OnlyOwnerOrAdmin_Revert() (gas: 13066) AggregateTokenLimiter_setAdmin:test_Owner_Success() (gas: 18998) -AggregateTokenLimiter_setRateLimiterConfig:test_OnlyOnlyCallableByAdminOrOwner_Revert() (gas: 17510) -AggregateTokenLimiter_setRateLimiterConfig:test_Owner_Success() (gas: 30230) -AggregateTokenLimiter_setRateLimiterConfig:test_TokenLimitAdmin_Success() (gas: 32244) -BurnFromMintTokenPool_lockOrBurn:test_ChainNotAllowed_Revert() (gas: 28779) -BurnFromMintTokenPool_lockOrBurn:test_PoolBurnRevertNotHealthy_Revert() (gas: 55124) -BurnFromMintTokenPool_lockOrBurn:test_PoolBurn_Success() (gas: 243680) +AggregateTokenLimiter_setRateLimiterConfig:test_OnlyOnlyCallableByAdminOrOwner_Revert() (gas: 17522) +AggregateTokenLimiter_setRateLimiterConfig:test_Owner_Success() (gas: 30249) +AggregateTokenLimiter_setRateLimiterConfig:test_TokenLimitAdmin_Success() (gas: 32263) +BurnFromMintTokenPool_lockOrBurn:test_ChainNotAllowed_Revert() (gas: 28791) +BurnFromMintTokenPool_lockOrBurn:test_PoolBurnRevertNotHealthy_Revert() (gas: 55142) +BurnFromMintTokenPool_lockOrBurn:test_PoolBurn_Success() (gas: 243690) BurnFromMintTokenPool_lockOrBurn:test_Setup_Success() (gas: 23947) -BurnMintTokenPool_lockOrBurn:test_ChainNotAllowed_Revert() (gas: 27546) -BurnMintTokenPool_lockOrBurn:test_PoolBurnRevertNotHealthy_Revert() (gas: 55130) -BurnMintTokenPool_lockOrBurn:test_PoolBurn_Success() (gas: 241573) +BurnMintTokenPool_lockOrBurn:test_ChainNotAllowed_Revert() (gas: 27558) +BurnMintTokenPool_lockOrBurn:test_PoolBurnRevertNotHealthy_Revert() (gas: 55142) +BurnMintTokenPool_lockOrBurn:test_PoolBurn_Success() (gas: 241578) BurnMintTokenPool_lockOrBurn:test_Setup_Success() (gas: 17677) -BurnMintTokenPool_releaseOrMint:test_ChainNotAllowed_Revert() (gas: 28775) -BurnMintTokenPool_releaseOrMint:test_PoolMintNotHealthy_Revert() (gas: 56211) -BurnMintTokenPool_releaseOrMint:test_PoolMint_Success() (gas: 112343) -BurnWithFromMintTokenPool_lockOrBurn:test_ChainNotAllowed_Revert() (gas: 28779) -BurnWithFromMintTokenPool_lockOrBurn:test_PoolBurnRevertNotHealthy_Revert() (gas: 55124) -BurnWithFromMintTokenPool_lockOrBurn:test_PoolBurn_Success() (gas: 243707) +BurnMintTokenPool_releaseOrMint:test_ChainNotAllowed_Revert() (gas: 28787) +BurnMintTokenPool_releaseOrMint:test_PoolMintNotHealthy_Revert() (gas: 56223) +BurnMintTokenPool_releaseOrMint:test_PoolMint_Success() (gas: 112349) +BurnWithFromMintTokenPool_lockOrBurn:test_ChainNotAllowed_Revert() (gas: 28791) +BurnWithFromMintTokenPool_lockOrBurn:test_PoolBurnRevertNotHealthy_Revert() (gas: 55142) +BurnWithFromMintTokenPool_lockOrBurn:test_PoolBurn_Success() (gas: 243716) BurnWithFromMintTokenPool_lockOrBurn:test_Setup_Success() (gas: 23951) -CCIPClientExample_sanity:test_ImmutableExamples_Success() (gas: 2091438) +CCIPClientExample_sanity:test_ImmutableExamples_Success() (gas: 2092239) CCIPConfigSetup:test_getCapabilityConfiguration_Success() (gas: 9539) -CCIPConfig_ConfigStateMachine:test__computeConfigDigest_Success() (gas: 66000) -CCIPConfig_ConfigStateMachine:test__computeNewConfigWithMeta_InitToRunning_Success() (gas: 358041) -CCIPConfig_ConfigStateMachine:test__computeNewConfigWithMeta_RunningToStaging_Success() (gas: 474705) -CCIPConfig_ConfigStateMachine:test__computeNewConfigWithMeta_StagingToRunning_Success() (gas: 441908) -CCIPConfig_ConfigStateMachine:test__groupByPluginType_TooManyOCR3Configs_Reverts() (gas: 33848) -CCIPConfig_ConfigStateMachine:test__groupByPluginType_threeCommitConfigs_Reverts() (gas: 56914) -CCIPConfig_ConfigStateMachine:test__groupByPluginType_threeExecutionConfigs_Reverts() (gas: 56852) +CCIPConfig_ConfigStateMachine:test__computeConfigDigest_Success() (gas: 66156) +CCIPConfig_ConfigStateMachine:test__computeNewConfigWithMeta_InitToRunning_Success() (gas: 358893) +CCIPConfig_ConfigStateMachine:test__computeNewConfigWithMeta_RunningToStaging_Success() (gas: 476337) +CCIPConfig_ConfigStateMachine:test__computeNewConfigWithMeta_StagingToRunning_Success() (gas: 443036) +CCIPConfig_ConfigStateMachine:test__groupByPluginType_TooManyOCR3Configs_Reverts() (gas: 34154) +CCIPConfig_ConfigStateMachine:test__groupByPluginType_threeCommitConfigs_Reverts() (gas: 57226) +CCIPConfig_ConfigStateMachine:test__groupByPluginType_threeExecutionConfigs_Reverts() (gas: 57164) CCIPConfig_ConfigStateMachine:test__stateFromConfigLength_Success() (gas: 11719) CCIPConfig_ConfigStateMachine:test__validateConfigStateTransition_Success() (gas: 8849) -CCIPConfig_ConfigStateMachine:test__validateConfigTransition_InitToRunning_Success() (gas: 309722) -CCIPConfig_ConfigStateMachine:test__validateConfigTransition_InitToRunning_WrongConfigCount_Reverts() (gas: 45865) -CCIPConfig_ConfigStateMachine:test__validateConfigTransition_NonExistentConfigTransition_Reverts() (gas: 29690) -CCIPConfig_ConfigStateMachine:test__validateConfigTransition_RunningToStaging_Success() (gas: 370009) -CCIPConfig_ConfigStateMachine:test__validateConfigTransition_RunningToStaging_WrongConfigCount_Reverts() (gas: 111376) -CCIPConfig_ConfigStateMachine:test__validateConfigTransition_RunningToStaging_WrongConfigDigestBlueGreen_Reverts() (gas: 145446) -CCIPConfig_ConfigStateMachine:test__validateConfigTransition_StagingToRunning_Success() (gas: 369785) -CCIPConfig_ConfigStateMachine:test__validateConfigTransition_StagingToRunning_WrongConfigDigest_Reverts() (gas: 145513) -CCIPConfig_ConfigStateMachine:test_getCapabilityConfiguration_Success() (gas: 9627) -CCIPConfig_beforeCapabilityConfigSet:test_beforeCapabilityConfigSet_CommitAndExecConfig_Success() (gas: 1790808) -CCIPConfig_beforeCapabilityConfigSet:test_beforeCapabilityConfigSet_CommitConfigOnly_Success() (gas: 1038239) -CCIPConfig_beforeCapabilityConfigSet:test_beforeCapabilityConfigSet_ExecConfigOnly_Success() (gas: 1038270) +CCIPConfig_ConfigStateMachine:test__validateConfigTransition_InitToRunning_Success() (gas: 310010) +CCIPConfig_ConfigStateMachine:test__validateConfigTransition_InitToRunning_WrongConfigCount_Reverts() (gas: 46015) +CCIPConfig_ConfigStateMachine:test__validateConfigTransition_NonExistentConfigTransition_Reverts() (gas: 29840) +CCIPConfig_ConfigStateMachine:test__validateConfigTransition_RunningToStaging_Success() (gas: 370477) +CCIPConfig_ConfigStateMachine:test__validateConfigTransition_RunningToStaging_WrongConfigCount_Reverts() (gas: 111736) +CCIPConfig_ConfigStateMachine:test__validateConfigTransition_RunningToStaging_WrongConfigDigestBlueGreen_Reverts() (gas: 145866) +CCIPConfig_ConfigStateMachine:test__validateConfigTransition_StagingToRunning_Success() (gas: 370253) +CCIPConfig_ConfigStateMachine:test__validateConfigTransition_StagingToRunning_WrongConfigDigest_Reverts() (gas: 145933) +CCIPConfig_ConfigStateMachine:test_getCapabilityConfiguration_Success() (gas: 9663) +CCIPConfig_beforeCapabilityConfigSet:test_beforeCapabilityConfigSet_CommitAndExecConfig_Success() (gas: 1790958) +CCIPConfig_beforeCapabilityConfigSet:test_beforeCapabilityConfigSet_CommitConfigOnly_Success() (gas: 1038383) +CCIPConfig_beforeCapabilityConfigSet:test_beforeCapabilityConfigSet_ExecConfigOnly_Success() (gas: 1038420) CCIPConfig_beforeCapabilityConfigSet:test_beforeCapabilityConfigSet_OnlyCapabilitiesRegistryCanCall_Reverts() (gas: 9611) -CCIPConfig_beforeCapabilityConfigSet:test_beforeCapabilityConfigSet_ZeroLengthConfig_Success() (gas: 15996) +CCIPConfig_beforeCapabilityConfigSet:test_beforeCapabilityConfigSet_ZeroLengthConfig_Success() (gas: 16008) CCIPConfig_beforeCapabilityConfigSet:test_getCapabilityConfiguration_Success() (gas: 9627) -CCIPConfig_chainConfig:test__applyChainConfigUpdates_FChainNotPositive_Reverts() (gas: 184771) +CCIPConfig_chainConfig:test__applyChainConfigUpdates_FChainNotPositive_Reverts() (gas: 184777) CCIPConfig_chainConfig:test_applyChainConfigUpdates_addChainConfigs_Success() (gas: 346687) -CCIPConfig_chainConfig:test_applyChainConfigUpdates_nodeNotInRegistry_Reverts() (gas: 20340) +CCIPConfig_chainConfig:test_applyChainConfigUpdates_nodeNotInRegistry_Reverts() (gas: 20346) CCIPConfig_chainConfig:test_applyChainConfigUpdates_removeChainConfigs_Success() (gas: 270334) -CCIPConfig_chainConfig:test_applyChainConfigUpdates_selectorNotFound_Reverts() (gas: 14819) +CCIPConfig_chainConfig:test_applyChainConfigUpdates_selectorNotFound_Reverts() (gas: 14825) CCIPConfig_chainConfig:test_getCapabilityConfiguration_Success() (gas: 9648) -CCIPConfig_chainConfig:test_getPaginatedCCIPConfigs_Success() (gas: 370293) -CCIPConfig_constructor:test_constructor_Success() (gas: 3363163) -CCIPConfig_constructor:test_constructor_ZeroAddressNotAllowed_Revert() (gas: 61471) +CCIPConfig_chainConfig:test_getPaginatedCCIPConfigs_Success() (gas: 370299) +CCIPConfig_constructor:test_constructor_Success() (gas: 3333086) +CCIPConfig_constructor:test_constructor_ZeroAddressNotAllowed_Revert() (gas: 61438) CCIPConfig_updatePluginConfig:test__updatePluginConfig_InvalidConfigLength_Reverts() (gas: 25819) -CCIPConfig_updatePluginConfig:test__updatePluginConfig_InvalidConfigStateTransition_Reverts() (gas: 21913) +CCIPConfig_updatePluginConfig:test__updatePluginConfig_InvalidConfigStateTransition_Reverts() (gas: 21919) CCIPConfig_updatePluginConfig:test_getCapabilityConfiguration_Success() (gas: 9649) -CCIPConfig_updatePluginConfig:test_updatePluginConfig_InitToRunning_Success() (gas: 1087677) -CCIPConfig_updatePluginConfig:test_updatePluginConfig_RunningToStaging_Success() (gas: 2032286) -CCIPConfig_updatePluginConfig:test_updatePluginConfig_StagingToRunning_Success() (gas: 2032320) -CCIPConfig_validateConfig:test__validateConfig_ABIEncodedAddress_OfframpAddressCannotBeZero_Reverts() (gas: 290828) -CCIPConfig_validateConfig:test__validateConfig_ChainSelectorNotFound_Reverts() (gas: 293559) -CCIPConfig_validateConfig:test__validateConfig_ChainSelectorNotSet_Reverts() (gas: 290461) -CCIPConfig_validateConfig:test__validateConfig_FMustBePositive_Reverts() (gas: 291668) -CCIPConfig_validateConfig:test__validateConfig_FTooHigh_Reverts() (gas: 291766) -CCIPConfig_validateConfig:test__validateConfig_NodeNotInRegistry_Reverts() (gas: 344947) -CCIPConfig_validateConfig:test__validateConfig_NotEnoughTransmitters_Reverts() (gas: 1208593) -CCIPConfig_validateConfig:test__validateConfig_OfframpAddressCannotBeZero_Reverts() (gas: 290544) -CCIPConfig_validateConfig:test__validateConfig_P2PIdsLengthNotMatching_Reverts() (gas: 292459) -CCIPConfig_validateConfig:test__validateConfig_Success() (gas: 299632) -CCIPConfig_validateConfig:test__validateConfig_TooManySigners_Reverts() (gas: 493084) +CCIPConfig_updatePluginConfig:test_updatePluginConfig_InitToRunning_Success() (gas: 1087725) +CCIPConfig_updatePluginConfig:test_updatePluginConfig_RunningToStaging_Success() (gas: 2032324) +CCIPConfig_updatePluginConfig:test_updatePluginConfig_StagingToRunning_Success() (gas: 2032358) +CCIPConfig_validateConfig:test__validateConfig_ABIEncodedAddress_OfframpAddressCannotBeZero_Reverts() (gas: 290870) +CCIPConfig_validateConfig:test__validateConfig_ChainSelectorNotFound_Reverts() (gas: 293601) +CCIPConfig_validateConfig:test__validateConfig_ChainSelectorNotSet_Reverts() (gas: 290497) +CCIPConfig_validateConfig:test__validateConfig_FMustBePositive_Reverts() (gas: 291704) +CCIPConfig_validateConfig:test__validateConfig_FTooHigh_Reverts() (gas: 291802) +CCIPConfig_validateConfig:test__validateConfig_NodeNotInRegistry_Reverts() (gas: 345019) +CCIPConfig_validateConfig:test__validateConfig_NotEnoughTransmitters_Reverts() (gas: 1209247) +CCIPConfig_validateConfig:test__validateConfig_OfframpAddressCannotBeZero_Reverts() (gas: 290586) +CCIPConfig_validateConfig:test__validateConfig_P2PIdsLengthNotMatching_Reverts() (gas: 292495) +CCIPConfig_validateConfig:test__validateConfig_Success() (gas: 299668) +CCIPConfig_validateConfig:test__validateConfig_TooManySigners_Reverts() (gas: 493120) CCIPConfig_validateConfig:test_getCapabilityConfiguration_Success() (gas: 9606) -CommitStore_constructor:test_Constructor_Success() (gas: 3013980) -CommitStore_isUnpausedAndRMNHealthy:test_RMN_Success() (gas: 73477) -CommitStore_report:test_InvalidIntervalMinLargerThanMax_Revert() (gas: 28676) -CommitStore_report:test_InvalidInterval_Revert() (gas: 28616) -CommitStore_report:test_InvalidRootRevert() (gas: 27849) -CommitStore_report:test_OnlyGasPriceUpdates_Success() (gas: 53290) -CommitStore_report:test_OnlyPriceUpdateStaleReport_Revert() (gas: 59092) -CommitStore_report:test_OnlyTokenPriceUpdates_Success() (gas: 53288) -CommitStore_report:test_Paused_Revert() (gas: 21262) -CommitStore_report:test_ReportAndPriceUpdate_Success() (gas: 84276) -CommitStore_report:test_ReportOnlyRootSuccess_gas() (gas: 56258) -CommitStore_report:test_RootAlreadyCommitted_Revert() (gas: 63984) -CommitStore_report:test_StaleReportWithRoot_Success() (gas: 116976) -CommitStore_report:test_Unhealthy_Revert() (gas: 44754) -CommitStore_report:test_ValidPriceUpdateThenStaleReportWithRoot_Success() (gas: 98573) -CommitStore_report:test_ZeroEpochAndRound_Revert() (gas: 27632) -CommitStore_resetUnblessedRoots:test_OnlyOwner_Revert() (gas: 11331) -CommitStore_resetUnblessedRoots:test_ResetUnblessedRoots_Success() (gas: 143814) +CommitStore_constructor:test_Constructor_Success() (gas: 2973887) +CommitStore_isUnpausedAndRMNHealthy:test_RMN_Success() (gas: 73567) +CommitStore_report:test_InvalidIntervalMinLargerThanMax_Revert() (gas: 28688) +CommitStore_report:test_InvalidInterval_Revert() (gas: 28628) +CommitStore_report:test_InvalidRootRevert() (gas: 27861) +CommitStore_report:test_OnlyGasPriceUpdates_Success() (gas: 53302) +CommitStore_report:test_OnlyPriceUpdateStaleReport_Revert() (gas: 59122) +CommitStore_report:test_OnlyTokenPriceUpdates_Success() (gas: 53300) +CommitStore_report:test_Paused_Revert() (gas: 21280) +CommitStore_report:test_ReportAndPriceUpdate_Success() (gas: 84288) +CommitStore_report:test_ReportOnlyRootSuccess_gas() (gas: 56270) +CommitStore_report:test_RootAlreadyCommitted_Revert() (gas: 64008) +CommitStore_report:test_StaleReportWithRoot_Success() (gas: 117012) +CommitStore_report:test_Unhealthy_Revert() (gas: 44766) +CommitStore_report:test_ValidPriceUpdateThenStaleReportWithRoot_Success() (gas: 98603) +CommitStore_report:test_ZeroEpochAndRound_Revert() (gas: 27650) +CommitStore_resetUnblessedRoots:test_OnlyOwner_Revert() (gas: 11337) +CommitStore_resetUnblessedRoots:test_ResetUnblessedRoots_Success() (gas: 143871) CommitStore_setDynamicConfig:test_InvalidCommitStoreConfig_Revert() (gas: 37263) CommitStore_setDynamicConfig:test_OnlyOwner_Revert() (gas: 37405) CommitStore_setDynamicConfig:test_PriceEpochCleared_Success() (gas: 129131) -CommitStore_setLatestPriceEpochAndRound:test_OnlyOwner_Revert() (gas: 11054) -CommitStore_setLatestPriceEpochAndRound:test_SetLatestPriceEpochAndRound_Success() (gas: 20645) -CommitStore_setMinSeqNr:test_OnlyOwner_Revert() (gas: 11053) -CommitStore_verify:test_Blessed_Success() (gas: 96452) -CommitStore_verify:test_NotBlessed_Success() (gas: 61398) -CommitStore_verify:test_Paused_Revert() (gas: 18505) -CommitStore_verify:test_TooManyLeaves_Revert() (gas: 36797) -DefensiveExampleTest:test_HappyPath_Success() (gas: 200047) -DefensiveExampleTest:test_Recovery() (gas: 424294) -E2E:test_E2E_3MessagesSuccess_gas() (gas: 1095501) -EVM2EVMOffRamp__releaseOrMintToken:test__releaseOrMintToken_NotACompatiblePool_Revert() (gas: 37818) -EVM2EVMOffRamp__releaseOrMintToken:test__releaseOrMintToken_Success() (gas: 103820) -EVM2EVMOffRamp__releaseOrMintToken:test__releaseOrMintToken_TokenHandlingError_transfer_Revert() (gas: 85333) -EVM2EVMOffRamp__releaseOrMintToken:test_releaseOrMintToken_InvalidDataLength_Revert() (gas: 36843) -EVM2EVMOffRamp__releaseOrMintToken:test_releaseOrMintToken_ReleaseOrMintBalanceMismatch_Revert() (gas: 94389) -EVM2EVMOffRamp__releaseOrMintToken:test_releaseOrMintToken_TokenHandlingError_BalanceOf_Revert() (gas: 39813) -EVM2EVMOffRamp__releaseOrMintToken:test_releaseOrMintToken_skip_ReleaseOrMintBalanceMismatch_if_pool_Revert() (gas: 86631) -EVM2EVMOffRamp__releaseOrMintTokens:test_OverValueWithARLOff_Success() (gas: 379129) -EVM2EVMOffRamp__releaseOrMintTokens:test_PriceNotFoundForToken_Reverts() (gas: 139810) -EVM2EVMOffRamp__releaseOrMintTokens:test_RateLimitErrors_Reverts() (gas: 793106) -EVM2EVMOffRamp__releaseOrMintTokens:test_TokenHandlingError_Reverts() (gas: 177251) -EVM2EVMOffRamp__releaseOrMintTokens:test__releaseOrMintTokens_NotACompatiblePool_Reverts() (gas: 29243) -EVM2EVMOffRamp__releaseOrMintTokens:test_releaseOrMintTokens_InvalidDataLengthReturnData_Revert() (gas: 66504) -EVM2EVMOffRamp__releaseOrMintTokens:test_releaseOrMintTokens_InvalidEVMAddress_Revert() (gas: 43320) -EVM2EVMOffRamp__releaseOrMintTokens:test_releaseOrMintTokens_Success() (gas: 206862) -EVM2EVMOffRamp__releaseOrMintTokens:test_releaseOrMintTokens_destDenominatedDecimals_Success() (gas: 218114) -EVM2EVMOffRamp__report:test_Report_Success() (gas: 126703) -EVM2EVMOffRamp__trialExecute:test_RateLimitError_Success() (gas: 235795) -EVM2EVMOffRamp__trialExecute:test_TokenHandlingErrorIsCaught_Success() (gas: 244395) -EVM2EVMOffRamp__trialExecute:test_TokenPoolIsNotAContract_Success() (gas: 325770) -EVM2EVMOffRamp__trialExecute:test_trialExecute_Success() (gas: 308201) +CommitStore_setLatestPriceEpochAndRound:test_OnlyOwner_Revert() (gas: 11060) +CommitStore_setLatestPriceEpochAndRound:test_SetLatestPriceEpochAndRound_Success() (gas: 20651) +CommitStore_setMinSeqNr:test_OnlyOwner_Revert() (gas: 11059) +CommitStore_verify:test_Blessed_Success() (gas: 96485) +CommitStore_verify:test_NotBlessed_Success() (gas: 61422) +CommitStore_verify:test_Paused_Revert() (gas: 18529) +CommitStore_verify:test_TooManyLeaves_Revert() (gas: 36809) +DefensiveExampleTest:test_HappyPath_Success() (gas: 200052) +DefensiveExampleTest:test_Recovery() (gas: 424299) +E2E:test_E2E_3MessagesSuccess_gas() (gas: 1097175) +EVM2EVMOffRamp__releaseOrMintToken:test__releaseOrMintToken_NotACompatiblePool_Revert() (gas: 37854) +EVM2EVMOffRamp__releaseOrMintToken:test__releaseOrMintToken_Success() (gas: 104060) +EVM2EVMOffRamp__releaseOrMintToken:test__releaseOrMintToken_TokenHandlingError_transfer_Revert() (gas: 85597) +EVM2EVMOffRamp__releaseOrMintToken:test_releaseOrMintToken_InvalidDataLength_Revert() (gas: 37068) +EVM2EVMOffRamp__releaseOrMintToken:test_releaseOrMintToken_ReleaseOrMintBalanceMismatch_Revert() (gas: 94629) +EVM2EVMOffRamp__releaseOrMintToken:test_releaseOrMintToken_TokenHandlingError_BalanceOf_Revert() (gas: 40050) +EVM2EVMOffRamp__releaseOrMintToken:test_releaseOrMintToken_skip_ReleaseOrMintBalanceMismatch_if_pool_Revert() (gas: 86871) +EVM2EVMOffRamp__releaseOrMintTokens:test_OverValueWithARLOff_Success() (gas: 379687) +EVM2EVMOffRamp__releaseOrMintTokens:test_PriceNotFoundForToken_Reverts() (gas: 140056) +EVM2EVMOffRamp__releaseOrMintTokens:test_RateLimitErrors_Reverts() (gas: 794492) +EVM2EVMOffRamp__releaseOrMintTokens:test_TokenHandlingError_Reverts() (gas: 177527) +EVM2EVMOffRamp__releaseOrMintTokens:test__releaseOrMintTokens_NotACompatiblePool_Reverts() (gas: 29249) +EVM2EVMOffRamp__releaseOrMintTokens:test_releaseOrMintTokens_InvalidDataLengthReturnData_Revert() (gas: 66741) +EVM2EVMOffRamp__releaseOrMintTokens:test_releaseOrMintTokens_InvalidEVMAddress_Revert() (gas: 43332) +EVM2EVMOffRamp__releaseOrMintTokens:test_releaseOrMintTokens_Success() (gas: 207138) +EVM2EVMOffRamp__releaseOrMintTokens:test_releaseOrMintTokens_destDenominatedDecimals_Success() (gas: 218390) +EVM2EVMOffRamp__report:test_Report_Success() (gas: 126727) +EVM2EVMOffRamp__trialExecute:test_RateLimitError_Success() (gas: 236077) +EVM2EVMOffRamp__trialExecute:test_TokenHandlingErrorIsCaught_Success() (gas: 244677) +EVM2EVMOffRamp__trialExecute:test_TokenPoolIsNotAContract_Success() (gas: 326076) +EVM2EVMOffRamp__trialExecute:test_trialExecute_Success() (gas: 308501) EVM2EVMOffRamp_ccipReceive:test_Reverts() (gas: 17033) -EVM2EVMOffRamp_constructor:test_CommitStoreAlreadyInUse_Revert() (gas: 153548) -EVM2EVMOffRamp_constructor:test_Constructor_Success() (gas: 5549627) -EVM2EVMOffRamp_constructor:test_ZeroOnRampAddress_Revert() (gas: 144282) -EVM2EVMOffRamp_execute:test_EmptyReport_Revert() (gas: 21321) -EVM2EVMOffRamp_execute:test_InvalidMessageId_Revert() (gas: 36558) -EVM2EVMOffRamp_execute:test_InvalidSourceChain_Revert() (gas: 51775) -EVM2EVMOffRamp_execute:test_InvalidSourcePoolAddress_Success() (gas: 469607) -EVM2EVMOffRamp_execute:test_ManualExecutionNotYetEnabled_Revert() (gas: 47830) +EVM2EVMOffRamp_constructor:test_CommitStoreAlreadyInUse_Revert() (gas: 153451) +EVM2EVMOffRamp_constructor:test_Constructor_Success() (gas: 5479225) +EVM2EVMOffRamp_constructor:test_ZeroOnRampAddress_Revert() (gas: 144185) +EVM2EVMOffRamp_execute:test_EmptyReport_Revert() (gas: 21354) +EVM2EVMOffRamp_execute:test_InvalidMessageId_Revert() (gas: 36591) +EVM2EVMOffRamp_execute:test_InvalidSourceChain_Revert() (gas: 51808) +EVM2EVMOffRamp_execute:test_InvalidSourcePoolAddress_Success() (gas: 470171) +EVM2EVMOffRamp_execute:test_ManualExecutionNotYetEnabled_Revert() (gas: 47902) EVM2EVMOffRamp_execute:test_MessageTooLarge_Revert() (gas: 152518) -EVM2EVMOffRamp_execute:test_Paused_Revert() (gas: 103046) -EVM2EVMOffRamp_execute:test_ReceiverError_Success() (gas: 164107) -EVM2EVMOffRamp_execute:test_RetryFailedMessageWithoutManualExecution_Success() (gas: 178568) -EVM2EVMOffRamp_execute:test_RootNotCommitted_Revert() (gas: 42701) -EVM2EVMOffRamp_execute:test_SingleMessageNoTokensUnordered_Success() (gas: 157899) -EVM2EVMOffRamp_execute:test_SingleMessageNoTokens_Success() (gas: 173184) -EVM2EVMOffRamp_execute:test_SingleMessageToNonCCIPReceiver_Success() (gas: 247246) -EVM2EVMOffRamp_execute:test_SingleMessagesNoTokensSuccess_gas() (gas: 113971) -EVM2EVMOffRamp_execute:test_SkippedIncorrectNonceStillExecutes_Success() (gas: 403729) +EVM2EVMOffRamp_execute:test_Paused_Revert() (gas: 103079) +EVM2EVMOffRamp_execute:test_ReceiverError_Success() (gas: 164230) +EVM2EVMOffRamp_execute:test_RetryFailedMessageWithoutManualExecution_Success() (gas: 178625) +EVM2EVMOffRamp_execute:test_RootNotCommitted_Revert() (gas: 42773) +EVM2EVMOffRamp_execute:test_SingleMessageNoTokensUnordered_Success() (gas: 158079) +EVM2EVMOffRamp_execute:test_SingleMessageNoTokens_Success() (gas: 173331) +EVM2EVMOffRamp_execute:test_SingleMessageToNonCCIPReceiver_Success() (gas: 237073) +EVM2EVMOffRamp_execute:test_SingleMessagesNoTokensSuccess_gas() (gas: 113995) +EVM2EVMOffRamp_execute:test_SkippedIncorrectNonceStillExecutes_Success() (gas: 404062) EVM2EVMOffRamp_execute:test_SkippedIncorrectNonce_Success() (gas: 54294) -EVM2EVMOffRamp_execute:test_StrictUntouchedToSuccess_Success() (gas: 131317) +EVM2EVMOffRamp_execute:test_StrictUntouchedToSuccess_Success() (gas: 131440) EVM2EVMOffRamp_execute:test_TokenDataMismatch_Revert() (gas: 52249) -EVM2EVMOffRamp_execute:test_TwoMessagesWithTokensAndGE_Success() (gas: 559653) -EVM2EVMOffRamp_execute:test_TwoMessagesWithTokensSuccess_gas() (gas: 490168) -EVM2EVMOffRamp_execute:test_UnexpectedTokenData_Revert() (gas: 35497) -EVM2EVMOffRamp_execute:test_Unhealthy_Revert() (gas: 540918) +EVM2EVMOffRamp_execute:test_TwoMessagesWithTokensAndGE_Success() (gas: 560385) +EVM2EVMOffRamp_execute:test_TwoMessagesWithTokensSuccess_gas() (gas: 490768) +EVM2EVMOffRamp_execute:test_UnexpectedTokenData_Revert() (gas: 35530) +EVM2EVMOffRamp_execute:test_Unhealthy_Revert() (gas: 541563) EVM2EVMOffRamp_execute:test_UnsupportedNumberOfTokens_Revert() (gas: 64497) -EVM2EVMOffRamp_execute:test__execute_SkippedAlreadyExecutedMessageUnordered_Success() (gas: 122676) -EVM2EVMOffRamp_execute:test__execute_SkippedAlreadyExecutedMessage_Success() (gas: 142850) -EVM2EVMOffRamp_execute:test_execute_RouterYULCall_Success() (gas: 427538) +EVM2EVMOffRamp_execute:test__execute_SkippedAlreadyExecutedMessageUnordered_Success() (gas: 122733) +EVM2EVMOffRamp_execute:test__execute_SkippedAlreadyExecutedMessage_Success() (gas: 142907) +EVM2EVMOffRamp_execute:test_execute_RouterYULCall_Success() (gas: 427595) EVM2EVMOffRamp_executeSingleMessage:test_MessageSender_Revert() (gas: 18502) -EVM2EVMOffRamp_executeSingleMessage:test_NonContractWithTokens_Success() (gas: 273988) +EVM2EVMOffRamp_executeSingleMessage:test_NonContractWithTokens_Success() (gas: 274264) EVM2EVMOffRamp_executeSingleMessage:test_NonContract_Success() (gas: 18668) -EVM2EVMOffRamp_executeSingleMessage:test_TokenHandlingError_Revert() (gas: 221922) -EVM2EVMOffRamp_executeSingleMessage:test_ZeroGasDONExecution_Revert() (gas: 47926) -EVM2EVMOffRamp_executeSingleMessage:test_executeSingleMessage_NoTokens_Success() (gas: 47403) -EVM2EVMOffRamp_executeSingleMessage:test_executeSingleMessage_WithTokens_Success() (gas: 309850) -EVM2EVMOffRamp_executeSingleMessage:test_executeSingleMessage_ZeroGasZeroData_Success() (gas: 70065) -EVM2EVMOffRamp_execute_upgrade:test_V2NonceNewSenderStartsAtZero_Success() (gas: 229454) -EVM2EVMOffRamp_execute_upgrade:test_V2NonceStartsAtV1Nonce_Success() (gas: 276982) -EVM2EVMOffRamp_execute_upgrade:test_V2OffRampNonceSkipsIfMsgInFlight_Success() (gas: 258834) -EVM2EVMOffRamp_execute_upgrade:test_V2SenderNoncesReadsPreviousRamp_Success() (gas: 226442) -EVM2EVMOffRamp_execute_upgrade:test_V2_Success() (gas: 130811) +EVM2EVMOffRamp_executeSingleMessage:test_TokenHandlingError_Revert() (gas: 222198) +EVM2EVMOffRamp_executeSingleMessage:test_ZeroGasDONExecution_Revert() (gas: 47950) +EVM2EVMOffRamp_executeSingleMessage:test_executeSingleMessage_NoTokens_Success() (gas: 47427) +EVM2EVMOffRamp_executeSingleMessage:test_executeSingleMessage_WithTokens_Success() (gas: 310150) +EVM2EVMOffRamp_executeSingleMessage:test_executeSingleMessage_ZeroGasZeroData_Success() (gas: 70101) +EVM2EVMOffRamp_execute_upgrade:test_V2NonceNewSenderStartsAtZero_Success() (gas: 229526) +EVM2EVMOffRamp_execute_upgrade:test_V2NonceStartsAtV1Nonce_Success() (gas: 277072) +EVM2EVMOffRamp_execute_upgrade:test_V2OffRampNonceSkipsIfMsgInFlight_Success() (gas: 258912) +EVM2EVMOffRamp_execute_upgrade:test_V2SenderNoncesReadsPreviousRamp_Success() (gas: 226538) +EVM2EVMOffRamp_execute_upgrade:test_V2_Success() (gas: 130841) EVM2EVMOffRamp_getAllRateLimitTokens:test_GetAllRateLimitTokens_Success() (gas: 38446) EVM2EVMOffRamp_getExecutionState:test_FillExecutionState_Success() (gas: 3251974) EVM2EVMOffRamp_getExecutionState:test_GetExecutionState_Success() (gas: 83387) -EVM2EVMOffRamp_manuallyExecute:test_ManualExecFailedTx_Revert() (gas: 185967) +EVM2EVMOffRamp_manuallyExecute:test_ManualExecFailedTx_Revert() (gas: 186015) EVM2EVMOffRamp_manuallyExecute:test_ManualExecForkedChain_Revert() (gas: 27052) EVM2EVMOffRamp_manuallyExecute:test_ManualExecGasLimitMismatch_Revert() (gas: 45200) EVM2EVMOffRamp_manuallyExecute:test_ManualExecInvalidGasLimit_Revert() (gas: 27471) -EVM2EVMOffRamp_manuallyExecute:test_ManualExecWithMultipleMessagesAndSourceTokens_Success() (gas: 526041) -EVM2EVMOffRamp_manuallyExecute:test_ManualExecWithSourceTokens_Success() (gas: 341709) -EVM2EVMOffRamp_manuallyExecute:test_ManualExec_Success() (gas: 187459) -EVM2EVMOffRamp_manuallyExecute:test_ReentrancyManualExecuteFails_Success() (gas: 2256179) -EVM2EVMOffRamp_manuallyExecute:test_manuallyExecute_DestinationGasAmountCountMismatch_Revert() (gas: 358922) -EVM2EVMOffRamp_manuallyExecute:test_manuallyExecute_DoesNotRevertIfUntouched_Success() (gas: 143972) -EVM2EVMOffRamp_manuallyExecute:test_manuallyExecute_InvalidTokenGasOverride_Revert() (gas: 362061) -EVM2EVMOffRamp_manuallyExecute:test_manuallyExecute_LowGasLimitManualExec_Success() (gas: 482796) -EVM2EVMOffRamp_manuallyExecute:test_manuallyExecute_WithGasOverride_Success() (gas: 189862) -EVM2EVMOffRamp_manuallyExecute:test_manuallyExecute_WithInvalidReceiverExecutionGasOverride_Revert() (gas: 153716) +EVM2EVMOffRamp_manuallyExecute:test_ManualExecWithMultipleMessagesAndSourceTokens_Success() (gas: 526641) +EVM2EVMOffRamp_manuallyExecute:test_ManualExecWithSourceTokens_Success() (gas: 342009) +EVM2EVMOffRamp_manuallyExecute:test_ManualExec_Success() (gas: 187507) +EVM2EVMOffRamp_manuallyExecute:test_ReentrancyManualExecuteFails_Success() (gas: 2256449) +EVM2EVMOffRamp_manuallyExecute:test_manuallyExecute_DestinationGasAmountCountMismatch_Revert() (gas: 359222) +EVM2EVMOffRamp_manuallyExecute:test_manuallyExecute_DoesNotRevertIfUntouched_Success() (gas: 143996) +EVM2EVMOffRamp_manuallyExecute:test_manuallyExecute_InvalidTokenGasOverride_Revert() (gas: 362361) +EVM2EVMOffRamp_manuallyExecute:test_manuallyExecute_LowGasLimitManualExec_Success() (gas: 482844) +EVM2EVMOffRamp_manuallyExecute:test_manuallyExecute_WithGasOverride_Success() (gas: 189910) +EVM2EVMOffRamp_manuallyExecute:test_manuallyExecute_WithInvalidReceiverExecutionGasOverride_Revert() (gas: 153740) EVM2EVMOffRamp_manuallyExecute:test_manuallyExecute_WithInvalidSourceTokenDataCount_Revert() (gas: 59897) EVM2EVMOffRamp_metadataHash:test_MetadataHash_Success() (gas: 8865) -EVM2EVMOffRamp_setDynamicConfig:test_NonOwner_Revert() (gas: 40162) +EVM2EVMOffRamp_setDynamicConfig:test_NonOwner_Revert() (gas: 40168) EVM2EVMOffRamp_setDynamicConfig:test_RouterZeroAddress_Revert() (gas: 38239) EVM2EVMOffRamp_setDynamicConfig:test_SetDynamicConfig_Success() (gas: 141938) -EVM2EVMOffRamp_updateRateLimitTokens:test_updateRateLimitTokens_AddsAndRemoves_Success() (gas: 162528) -EVM2EVMOffRamp_updateRateLimitTokens:test_updateRateLimitTokens_NonOwner_Revert() (gas: 16699) +EVM2EVMOffRamp_updateRateLimitTokens:test_updateRateLimitTokens_AddsAndRemoves_Success() (gas: 162532) +EVM2EVMOffRamp_updateRateLimitTokens:test_updateRateLimitTokens_NonOwner_Revert() (gas: 16711) EVM2EVMOffRamp_updateRateLimitTokens:test_updateRateLimitTokens_Success() (gas: 197728) -EVM2EVMOnRamp_constructor:test_Constructor_Success() (gas: 5431520) -EVM2EVMOnRamp_forwardFromRouter:test_CannotSendZeroTokens_Revert() (gas: 35835) -EVM2EVMOnRamp_forwardFromRouter:test_EnforceOutOfOrder_Revert() (gas: 98584) -EVM2EVMOnRamp_forwardFromRouter:test_ForwardFromRouterExtraArgsV2AllowOutOfOrderTrue_Success() (gas: 114231) -EVM2EVMOnRamp_forwardFromRouter:test_ForwardFromRouterExtraArgsV2_Success() (gas: 114273) -EVM2EVMOnRamp_forwardFromRouter:test_ForwardFromRouterSuccessCustomExtraArgs() (gas: 130246) -EVM2EVMOnRamp_forwardFromRouter:test_ForwardFromRouterSuccessLegacyExtraArgs() (gas: 138686) -EVM2EVMOnRamp_forwardFromRouter:test_ForwardFromRouter_Success() (gas: 129865) -EVM2EVMOnRamp_forwardFromRouter:test_InvalidAddressEncodePacked_Revert() (gas: 38314) -EVM2EVMOnRamp_forwardFromRouter:test_InvalidAddress_Revert() (gas: 38497) -EVM2EVMOnRamp_forwardFromRouter:test_InvalidChainSelector_Revert() (gas: 25534) -EVM2EVMOnRamp_forwardFromRouter:test_InvalidExtraArgsTag_Revert() (gas: 25320) -EVM2EVMOnRamp_forwardFromRouter:test_MaxCapacityExceeded_Revert() (gas: 83951) -EVM2EVMOnRamp_forwardFromRouter:test_MaxFeeBalanceReached_Revert() (gas: 36514) -EVM2EVMOnRamp_forwardFromRouter:test_MessageGasLimitTooHigh_Revert() (gas: 29078) -EVM2EVMOnRamp_forwardFromRouter:test_MessageTooLarge_Revert() (gas: 107622) +EVM2EVMOnRamp_constructor:test_Constructor_Success() (gas: 5322415) +EVM2EVMOnRamp_forwardFromRouter:test_CannotSendZeroTokens_Revert() (gas: 35880) +EVM2EVMOnRamp_forwardFromRouter:test_EnforceOutOfOrder_Revert() (gas: 98614) +EVM2EVMOnRamp_forwardFromRouter:test_ForwardFromRouterExtraArgsV2AllowOutOfOrderTrue_Success() (gas: 114321) +EVM2EVMOnRamp_forwardFromRouter:test_ForwardFromRouterExtraArgsV2_Success() (gas: 114363) +EVM2EVMOnRamp_forwardFromRouter:test_ForwardFromRouterSuccessCustomExtraArgs() (gas: 130351) +EVM2EVMOnRamp_forwardFromRouter:test_ForwardFromRouterSuccessLegacyExtraArgs() (gas: 138791) +EVM2EVMOnRamp_forwardFromRouter:test_ForwardFromRouter_Success() (gas: 129970) +EVM2EVMOnRamp_forwardFromRouter:test_InvalidAddressEncodePacked_Revert() (gas: 38431) +EVM2EVMOnRamp_forwardFromRouter:test_InvalidAddress_Revert() (gas: 38614) +EVM2EVMOnRamp_forwardFromRouter:test_InvalidChainSelector_Revert() (gas: 25540) +EVM2EVMOnRamp_forwardFromRouter:test_InvalidExtraArgsTag_Revert() (gas: 25365) +EVM2EVMOnRamp_forwardFromRouter:test_MaxCapacityExceeded_Revert() (gas: 84002) +EVM2EVMOnRamp_forwardFromRouter:test_MaxFeeBalanceReached_Revert() (gas: 36619) +EVM2EVMOnRamp_forwardFromRouter:test_MessageGasLimitTooHigh_Revert() (gas: 29123) +EVM2EVMOnRamp_forwardFromRouter:test_MessageTooLarge_Revert() (gas: 107667) EVM2EVMOnRamp_forwardFromRouter:test_OriginalSender_Revert() (gas: 22724) -EVM2EVMOnRamp_forwardFromRouter:test_OverValueWithARLOff_Success() (gas: 225252) -EVM2EVMOnRamp_forwardFromRouter:test_Paused_Revert() (gas: 53150) -EVM2EVMOnRamp_forwardFromRouter:test_Permissions_Revert() (gas: 25559) -EVM2EVMOnRamp_forwardFromRouter:test_PriceNotFoundForToken_Revert() (gas: 57291) -EVM2EVMOnRamp_forwardFromRouter:test_ShouldIncrementNonceOnlyOnOrdered_Success() (gas: 179442) -EVM2EVMOnRamp_forwardFromRouter:test_ShouldIncrementSeqNumAndNonce_Success() (gas: 177724) -EVM2EVMOnRamp_forwardFromRouter:test_ShouldStoreNonLinkFees() (gas: 132585) -EVM2EVMOnRamp_forwardFromRouter:test_SourceTokenDataTooLarge_Revert() (gas: 3772676) -EVM2EVMOnRamp_forwardFromRouter:test_TooManyTokens_Revert() (gas: 30244) +EVM2EVMOnRamp_forwardFromRouter:test_OverValueWithARLOff_Success() (gas: 225474) +EVM2EVMOnRamp_forwardFromRouter:test_Paused_Revert() (gas: 53180) +EVM2EVMOnRamp_forwardFromRouter:test_Permissions_Revert() (gas: 25565) +EVM2EVMOnRamp_forwardFromRouter:test_PriceNotFoundForToken_Revert() (gas: 57336) +EVM2EVMOnRamp_forwardFromRouter:test_ShouldIncrementNonceOnlyOnOrdered_Success() (gas: 179712) +EVM2EVMOnRamp_forwardFromRouter:test_ShouldIncrementSeqNumAndNonce_Success() (gas: 178039) +EVM2EVMOnRamp_forwardFromRouter:test_ShouldStoreNonLinkFees() (gas: 132717) +EVM2EVMOnRamp_forwardFromRouter:test_SourceTokenDataTooLarge_Revert() (gas: 3713189) +EVM2EVMOnRamp_forwardFromRouter:test_TooManyTokens_Revert() (gas: 30289) EVM2EVMOnRamp_forwardFromRouter:test_Unhealthy_Revert() (gas: 43342) -EVM2EVMOnRamp_forwardFromRouter:test_UnsupportedToken_Revert() (gas: 109440) -EVM2EVMOnRamp_forwardFromRouter:test_ZeroAddressReceiver_Revert() (gas: 313095) -EVM2EVMOnRamp_forwardFromRouter:test_forwardFromRouter_ShouldStoreLinkFees_Success() (gas: 112430) -EVM2EVMOnRamp_forwardFromRouter:test_forwardFromRouter_UnsupportedToken_Revert() (gas: 72269) -EVM2EVMOnRamp_forwardFromRouter:test_forwardFromRouter_correctSourceTokenData_Success() (gas: 711472) -EVM2EVMOnRamp_forwardFromRouter_upgrade:test_V2NonceNewSenderStartsAtZero_Success() (gas: 147709) -EVM2EVMOnRamp_forwardFromRouter_upgrade:test_V2NonceStartsAtV1Nonce_Success() (gas: 190616) -EVM2EVMOnRamp_forwardFromRouter_upgrade:test_V2SenderNoncesReadsPreviousRamp_Success() (gas: 121404) -EVM2EVMOnRamp_forwardFromRouter_upgrade:test_V2_Success() (gas: 95376) +EVM2EVMOnRamp_forwardFromRouter:test_UnsupportedToken_Revert() (gas: 109557) +EVM2EVMOnRamp_forwardFromRouter:test_ZeroAddressReceiver_Revert() (gas: 314265) +EVM2EVMOnRamp_forwardFromRouter:test_forwardFromRouter_ShouldStoreLinkFees_Success() (gas: 112547) +EVM2EVMOnRamp_forwardFromRouter:test_forwardFromRouter_UnsupportedToken_Revert() (gas: 72386) +EVM2EVMOnRamp_forwardFromRouter:test_forwardFromRouter_correctSourceTokenData_Success() (gas: 711856) +EVM2EVMOnRamp_forwardFromRouter_upgrade:test_V2NonceNewSenderStartsAtZero_Success() (gas: 147925) +EVM2EVMOnRamp_forwardFromRouter_upgrade:test_V2NonceStartsAtV1Nonce_Success() (gas: 190949) +EVM2EVMOnRamp_forwardFromRouter_upgrade:test_V2SenderNoncesReadsPreviousRamp_Success() (gas: 121743) +EVM2EVMOnRamp_forwardFromRouter_upgrade:test_V2_Success() (gas: 95487) EVM2EVMOnRamp_getDataAvailabilityCost:test_EmptyMessageCalculatesDataAvailabilityCost_Success() (gas: 20568) EVM2EVMOnRamp_getDataAvailabilityCost:test_SimpleMessageCalculatesDataAvailabilityCost_Success() (gas: 20936) -EVM2EVMOnRamp_getFee:test_EmptyMessage_Success() (gas: 74027) -EVM2EVMOnRamp_getFee:test_GetFeeOfZeroForTokenMessage_Success() (gas: 79523) -EVM2EVMOnRamp_getFee:test_HighGasMessage_Success() (gas: 229875) -EVM2EVMOnRamp_getFee:test_MessageGasLimitTooHigh_Revert() (gas: 16733) -EVM2EVMOnRamp_getFee:test_MessageTooLarge_Revert() (gas: 95283) -EVM2EVMOnRamp_getFee:test_MessageWithDataAndTokenTransfer_Success() (gas: 152627) -EVM2EVMOnRamp_getFee:test_NotAFeeToken_Revert() (gas: 24113) -EVM2EVMOnRamp_getFee:test_SingleTokenMessage_Success() (gas: 113597) -EVM2EVMOnRamp_getFee:test_TooManyTokens_Revert() (gas: 19914) -EVM2EVMOnRamp_getFee:test_ZeroDataAvailabilityMultiplier_Success() (gas: 62539) +EVM2EVMOnRamp_getFee:test_EmptyMessage_Success() (gas: 74147) +EVM2EVMOnRamp_getFee:test_GetFeeOfZeroForTokenMessage_Success() (gas: 79673) +EVM2EVMOnRamp_getFee:test_HighGasMessage_Success() (gas: 229995) +EVM2EVMOnRamp_getFee:test_MessageGasLimitTooHigh_Revert() (gas: 16778) +EVM2EVMOnRamp_getFee:test_MessageTooLarge_Revert() (gas: 95328) +EVM2EVMOnRamp_getFee:test_MessageWithDataAndTokenTransfer_Success() (gas: 152747) +EVM2EVMOnRamp_getFee:test_NotAFeeToken_Revert() (gas: 24158) +EVM2EVMOnRamp_getFee:test_SingleTokenMessage_Success() (gas: 113717) +EVM2EVMOnRamp_getFee:test_TooManyTokens_Revert() (gas: 19959) +EVM2EVMOnRamp_getFee:test_ZeroDataAvailabilityMultiplier_Success() (gas: 62629) EVM2EVMOnRamp_getSupportedTokens:test_GetSupportedTokens_Revert() (gas: 10460) EVM2EVMOnRamp_getTokenPool:test_GetTokenPool_Success() (gas: 35195) EVM2EVMOnRamp_getTokenTransferCost:test_CustomTokenBpsFee_Success() (gas: 43011) @@ -263,135 +263,135 @@ EVM2EVMOnRamp_getTokenTransferCost:test_LargeTokenTransferChargesMaxFeeAndGas_Su EVM2EVMOnRamp_getTokenTransferCost:test_MixedTokenTransferFee_Success() (gas: 121817) EVM2EVMOnRamp_getTokenTransferCost:test_NoTokenTransferChargesZeroFee_Success() (gas: 15250) EVM2EVMOnRamp_getTokenTransferCost:test_SmallTokenTransferChargesMinFeeAndGas_Success() (gas: 28164) -EVM2EVMOnRamp_getTokenTransferCost:test_UnsupportedToken_Revert() (gas: 21260) +EVM2EVMOnRamp_getTokenTransferCost:test_UnsupportedToken_Revert() (gas: 21266) EVM2EVMOnRamp_getTokenTransferCost:test_ZeroAmountTokenTransferChargesMinFeeAndGas_Success() (gas: 28187) EVM2EVMOnRamp_getTokenTransferCost:test_ZeroFeeConfigChargesMinFee_Success() (gas: 38638) EVM2EVMOnRamp_getTokenTransferCost:test__getTokenTransferCost_selfServeUsesDefaults_Success() (gas: 29440) -EVM2EVMOnRamp_linkAvailableForPayment:test_InsufficientLinkBalance_Success() (gas: 32621) -EVM2EVMOnRamp_linkAvailableForPayment:test_LinkAvailableForPayment_Success() (gas: 134884) -EVM2EVMOnRamp_payNops:test_AdminPayNops_Success() (gas: 143210) -EVM2EVMOnRamp_payNops:test_InsufficientBalance_Revert() (gas: 29055) -EVM2EVMOnRamp_payNops:test_NoFeesToPay_Revert() (gas: 127424) -EVM2EVMOnRamp_payNops:test_NoNopsToPay_Revert() (gas: 133318) -EVM2EVMOnRamp_payNops:test_NopPayNops_Success() (gas: 146497) -EVM2EVMOnRamp_payNops:test_OwnerPayNops_Success() (gas: 141072) -EVM2EVMOnRamp_payNops:test_PayNopsSuccessAfterSetNops() (gas: 297651) +EVM2EVMOnRamp_linkAvailableForPayment:test_InsufficientLinkBalance_Success() (gas: 32651) +EVM2EVMOnRamp_linkAvailableForPayment:test_LinkAvailableForPayment_Success() (gas: 135118) +EVM2EVMOnRamp_payNops:test_AdminPayNops_Success() (gas: 143408) +EVM2EVMOnRamp_payNops:test_InsufficientBalance_Revert() (gas: 29085) +EVM2EVMOnRamp_payNops:test_NoFeesToPay_Revert() (gas: 127622) +EVM2EVMOnRamp_payNops:test_NoNopsToPay_Revert() (gas: 133481) +EVM2EVMOnRamp_payNops:test_NopPayNops_Success() (gas: 146695) +EVM2EVMOnRamp_payNops:test_OwnerPayNops_Success() (gas: 141270) +EVM2EVMOnRamp_payNops:test_PayNopsSuccessAfterSetNops() (gas: 298116) EVM2EVMOnRamp_payNops:test_WrongPermissions_Revert() (gas: 15300) -EVM2EVMOnRamp_setDynamicConfig:test_SetConfigInvalidConfig_Revert() (gas: 42377) -EVM2EVMOnRamp_setDynamicConfig:test_SetConfigOnlyOwner_Revert() (gas: 21258) -EVM2EVMOnRamp_setDynamicConfig:test_SetDynamicConfig_Success() (gas: 53782) -EVM2EVMOnRamp_setFeeTokenConfig:test_OnlyCallableByOwnerOrAdmin_Revert() (gas: 13470) -EVM2EVMOnRamp_setFeeTokenConfig:test_SetFeeTokenConfigByAdmin_Success() (gas: 16455) -EVM2EVMOnRamp_setFeeTokenConfig:test_SetFeeTokenConfig_Success() (gas: 13994) -EVM2EVMOnRamp_setNops:test_AdminCanSetNops_Success() (gas: 61785) -EVM2EVMOnRamp_setNops:test_IncludesPayment_Success() (gas: 469353) -EVM2EVMOnRamp_setNops:test_LinkTokenCannotBeNop_Revert() (gas: 57276) +EVM2EVMOnRamp_setDynamicConfig:test_SetConfigInvalidConfig_Revert() (gas: 42401) +EVM2EVMOnRamp_setDynamicConfig:test_SetConfigOnlyOwner_Revert() (gas: 21270) +EVM2EVMOnRamp_setDynamicConfig:test_SetDynamicConfig_Success() (gas: 53830) +EVM2EVMOnRamp_setFeeTokenConfig:test_OnlyCallableByOwnerOrAdmin_Revert() (gas: 13476) +EVM2EVMOnRamp_setFeeTokenConfig:test_SetFeeTokenConfigByAdmin_Success() (gas: 16461) +EVM2EVMOnRamp_setFeeTokenConfig:test_SetFeeTokenConfig_Success() (gas: 14000) +EVM2EVMOnRamp_setNops:test_AdminCanSetNops_Success() (gas: 61795) +EVM2EVMOnRamp_setNops:test_IncludesPayment_Success() (gas: 469668) +EVM2EVMOnRamp_setNops:test_LinkTokenCannotBeNop_Revert() (gas: 57291) EVM2EVMOnRamp_setNops:test_NonOwnerOrAdmin_Revert() (gas: 14677) -EVM2EVMOnRamp_setNops:test_NotEnoughFundsForPayout_Revert() (gas: 84528) -EVM2EVMOnRamp_setNops:test_SetNopsRemovesOldNopsCompletely_Success() (gas: 60673) -EVM2EVMOnRamp_setNops:test_SetNops_Success() (gas: 173821) +EVM2EVMOnRamp_setNops:test_NotEnoughFundsForPayout_Revert() (gas: 84675) +EVM2EVMOnRamp_setNops:test_SetNopsRemovesOldNopsCompletely_Success() (gas: 60683) +EVM2EVMOnRamp_setNops:test_SetNops_Success() (gas: 173833) EVM2EVMOnRamp_setNops:test_TooManyNops_Revert() (gas: 190350) -EVM2EVMOnRamp_setNops:test_ZeroAddressCannotBeNop_Revert() (gas: 53617) +EVM2EVMOnRamp_setNops:test_ZeroAddressCannotBeNop_Revert() (gas: 53632) EVM2EVMOnRamp_setTokenTransferFeeConfig:test__setTokenTransferFeeConfig_InvalidDestBytesOverhead_Revert() (gas: 14499) EVM2EVMOnRamp_setTokenTransferFeeConfig:test__setTokenTransferFeeConfig_OnlyCallableByOwnerOrAdmin_Revert() (gas: 14283) EVM2EVMOnRamp_setTokenTransferFeeConfig:test__setTokenTransferFeeConfig_Success() (gas: 84107) EVM2EVMOnRamp_setTokenTransferFeeConfig:test__setTokenTransferFeeConfig_byAdmin_Success() (gas: 17375) -EVM2EVMOnRamp_withdrawNonLinkFees:test_LinkBalanceNotSettled_Revert() (gas: 83035) +EVM2EVMOnRamp_withdrawNonLinkFees:test_LinkBalanceNotSettled_Revert() (gas: 83158) EVM2EVMOnRamp_withdrawNonLinkFees:test_NonOwnerOrAdmin_Revert() (gas: 15275) -EVM2EVMOnRamp_withdrawNonLinkFees:test_SettlingBalance_Success() (gas: 272083) -EVM2EVMOnRamp_withdrawNonLinkFees:test_WithdrawNonLinkFees_Success() (gas: 53458) +EVM2EVMOnRamp_withdrawNonLinkFees:test_SettlingBalance_Success() (gas: 272200) +EVM2EVMOnRamp_withdrawNonLinkFees:test_WithdrawNonLinkFees_Success() (gas: 53482) EVM2EVMOnRamp_withdrawNonLinkFees:test_WithdrawToZeroAddress_Revert() (gas: 12830) EtherSenderReceiverTest_ccipReceive:test_ccipReceive_fallbackToWethTransfer() (gas: 96892) EtherSenderReceiverTest_ccipReceive:test_ccipReceive_happyPath() (gas: 49770) EtherSenderReceiverTest_ccipReceive:test_ccipReceive_wrongToken() (gas: 17423) -EtherSenderReceiverTest_ccipReceive:test_ccipReceive_wrongTokenAmount() (gas: 15716) -EtherSenderReceiverTest_ccipSend:test_ccipSend_reverts_insufficientFee_feeToken() (gas: 99831) -EtherSenderReceiverTest_ccipSend:test_ccipSend_reverts_insufficientFee_native() (gas: 76099) -EtherSenderReceiverTest_ccipSend:test_ccipSend_reverts_insufficientFee_weth() (gas: 99853) -EtherSenderReceiverTest_ccipSend:test_ccipSend_success_feeToken() (gas: 144833) -EtherSenderReceiverTest_ccipSend:test_ccipSend_success_native() (gas: 80262) -EtherSenderReceiverTest_ccipSend:test_ccipSend_success_nativeExcess() (gas: 80449) -EtherSenderReceiverTest_ccipSend:test_ccipSend_success_weth() (gas: 95902) +EtherSenderReceiverTest_ccipReceive:test_ccipReceive_wrongTokenAmount() (gas: 15722) +EtherSenderReceiverTest_ccipSend:test_ccipSend_reverts_insufficientFee_feeToken() (gas: 99837) +EtherSenderReceiverTest_ccipSend:test_ccipSend_reverts_insufficientFee_native() (gas: 76105) +EtherSenderReceiverTest_ccipSend:test_ccipSend_reverts_insufficientFee_weth() (gas: 99859) +EtherSenderReceiverTest_ccipSend:test_ccipSend_success_feeToken() (gas: 144845) +EtherSenderReceiverTest_ccipSend:test_ccipSend_success_native() (gas: 80268) +EtherSenderReceiverTest_ccipSend:test_ccipSend_success_nativeExcess() (gas: 80455) +EtherSenderReceiverTest_ccipSend:test_ccipSend_success_weth() (gas: 95914) EtherSenderReceiverTest_constructor:test_constructor() (gas: 17535) -EtherSenderReceiverTest_getFee:test_getFee() (gas: 27316) +EtherSenderReceiverTest_getFee:test_getFee() (gas: 27328) EtherSenderReceiverTest_validateFeeToken:test_validateFeeToken_reverts_feeToken_tokenAmountNotEqualToMsgValue() (gas: 20363) EtherSenderReceiverTest_validateFeeToken:test_validateFeeToken_valid_feeToken() (gas: 16718) EtherSenderReceiverTest_validateFeeToken:test_validateFeeToken_valid_native() (gas: 16657) EtherSenderReceiverTest_validatedMessage:test_validatedMessage_dataOverwrittenToMsgSender() (gas: 25415) EtherSenderReceiverTest_validatedMessage:test_validatedMessage_emptyDataOverwrittenToMsgSender() (gas: 25265) -EtherSenderReceiverTest_validatedMessage:test_validatedMessage_invalidTokenAmounts() (gas: 17907) +EtherSenderReceiverTest_validatedMessage:test_validatedMessage_invalidTokenAmounts() (gas: 17913) EtherSenderReceiverTest_validatedMessage:test_validatedMessage_tokenOverwrittenToWeth() (gas: 25287) -EtherSenderReceiverTest_validatedMessage:test_validatedMessage_validMessage_extraArgs() (gas: 26316) -FeeQuoter_applyDestChainConfigUpdates:test_InvalidChainFamilySelector_Revert() (gas: 16509) -FeeQuoter_applyDestChainConfigUpdates:test_InvalidDestChainConfigDestChainSelectorEqZero_Revert() (gas: 16423) -FeeQuoter_applyDestChainConfigUpdates:test_applyDestChainConfigUpdatesDefaultTxGasLimitEqZero_Revert() (gas: 16465) -FeeQuoter_applyDestChainConfigUpdates:test_applyDestChainConfigUpdatesDefaultTxGasLimitGtMaxPerMessageGasLimit_Revert() (gas: 39969) +EtherSenderReceiverTest_validatedMessage:test_validatedMessage_validMessage_extraArgs() (gas: 26328) +FeeQuoter_applyDestChainConfigUpdates:test_InvalidChainFamilySelector_Revert() (gas: 16515) +FeeQuoter_applyDestChainConfigUpdates:test_InvalidDestChainConfigDestChainSelectorEqZero_Revert() (gas: 16429) +FeeQuoter_applyDestChainConfigUpdates:test_applyDestChainConfigUpdatesDefaultTxGasLimitEqZero_Revert() (gas: 16471) +FeeQuoter_applyDestChainConfigUpdates:test_applyDestChainConfigUpdatesDefaultTxGasLimitGtMaxPerMessageGasLimit_Revert() (gas: 39975) FeeQuoter_applyDestChainConfigUpdates:test_applyDestChainConfigUpdatesZeroIntput_Success() (gas: 12342) -FeeQuoter_applyDestChainConfigUpdates:test_applyDestChainConfigUpdates_Success() (gas: 135942) -FeeQuoter_applyFeeTokensUpdates:test_ApplyFeeTokensUpdates_Success() (gas: 80117) -FeeQuoter_applyFeeTokensUpdates:test_OnlyCallableByOwner_Revert() (gas: 12615) -FeeQuoter_applyPremiumMultiplierWeiPerEthUpdates:test_OnlyCallableByOwnerOrAdmin_Revert() (gas: 11456) -FeeQuoter_applyPremiumMultiplierWeiPerEthUpdates:test_applyPremiumMultiplierWeiPerEthUpdatesMultipleTokens_Success() (gas: 54236) -FeeQuoter_applyPremiumMultiplierWeiPerEthUpdates:test_applyPremiumMultiplierWeiPerEthUpdatesSingleToken_Success() (gas: 44880) +FeeQuoter_applyDestChainConfigUpdates:test_applyDestChainConfigUpdates_Success() (gas: 135960) +FeeQuoter_applyFeeTokensUpdates:test_ApplyFeeTokensUpdates_Success() (gas: 80127) +FeeQuoter_applyFeeTokensUpdates:test_OnlyCallableByOwner_Revert() (gas: 12621) +FeeQuoter_applyPremiumMultiplierWeiPerEthUpdates:test_OnlyCallableByOwnerOrAdmin_Revert() (gas: 11462) +FeeQuoter_applyPremiumMultiplierWeiPerEthUpdates:test_applyPremiumMultiplierWeiPerEthUpdatesMultipleTokens_Success() (gas: 54242) +FeeQuoter_applyPremiumMultiplierWeiPerEthUpdates:test_applyPremiumMultiplierWeiPerEthUpdatesSingleToken_Success() (gas: 44886) FeeQuoter_applyPremiumMultiplierWeiPerEthUpdates:test_applyPremiumMultiplierWeiPerEthUpdatesZeroInput() (gas: 12280) -FeeQuoter_applyTokenTransferFeeConfigUpdates:test_ApplyTokenTransferFeeConfig_Success() (gas: 86968) +FeeQuoter_applyTokenTransferFeeConfigUpdates:test_ApplyTokenTransferFeeConfig_Success() (gas: 87004) FeeQuoter_applyTokenTransferFeeConfigUpdates:test_ApplyTokenTransferFeeZeroInput() (gas: 13089) FeeQuoter_applyTokenTransferFeeConfigUpdates:test_InvalidDestBytesOverhead_Revert() (gas: 17071) -FeeQuoter_applyTokenTransferFeeConfigUpdates:test_OnlyCallableByOwnerOrAdmin_Revert() (gas: 12246) -FeeQuoter_constructor:test_InvalidLinkTokenEqZeroAddress_Revert() (gas: 106850) -FeeQuoter_constructor:test_InvalidMaxFeeJuelsPerMsg_Revert() (gas: 111200) -FeeQuoter_constructor:test_InvalidStalenessThreshold_Revert() (gas: 111253) -FeeQuoter_constructor:test_Setup_Success() (gas: 5219649) +FeeQuoter_applyTokenTransferFeeConfigUpdates:test_OnlyCallableByOwnerOrAdmin_Revert() (gas: 12252) +FeeQuoter_constructor:test_InvalidLinkTokenEqZeroAddress_Revert() (gas: 106781) +FeeQuoter_constructor:test_InvalidMaxFeeJuelsPerMsg_Revert() (gas: 111131) +FeeQuoter_constructor:test_InvalidStalenessThreshold_Revert() (gas: 111184) +FeeQuoter_constructor:test_Setup_Success() (gas: 5178579) FeeQuoter_convertTokenAmount:test_ConvertTokenAmount_Success() (gas: 68377) -FeeQuoter_convertTokenAmount:test_LinkTokenNotSupported_Revert() (gas: 29040) -FeeQuoter_getDataAvailabilityCost:test_EmptyMessageCalculatesDataAvailabilityCost_Success() (gas: 94441) +FeeQuoter_convertTokenAmount:test_LinkTokenNotSupported_Revert() (gas: 29076) +FeeQuoter_getDataAvailabilityCost:test_EmptyMessageCalculatesDataAvailabilityCost_Success() (gas: 94447) FeeQuoter_getDataAvailabilityCost:test_SimpleMessageCalculatesDataAvailabilityCostUnsupportedDestChainSelector_Success() (gas: 14650) FeeQuoter_getDataAvailabilityCost:test_SimpleMessageCalculatesDataAvailabilityCost_Success() (gas: 20482) FeeQuoter_getTokenAndGasPrices:test_GetFeeTokenAndGasPrices_Success() (gas: 68277) FeeQuoter_getTokenAndGasPrices:test_StaleGasPrice_Revert() (gas: 16838) FeeQuoter_getTokenAndGasPrices:test_UnsupportedChain_Revert() (gas: 16140) -FeeQuoter_getTokenAndGasPrices:test_ZeroGasPrice_Success() (gas: 43584) +FeeQuoter_getTokenAndGasPrices:test_ZeroGasPrice_Success() (gas: 43590) FeeQuoter_getTokenPrice:test_GetTokenPriceFromFeed_Success() (gas: 66117) FeeQuoter_getTokenPrices:test_GetTokenPrices_Success() (gas: 78256) -FeeQuoter_getTokenTransferCost:test_CustomTokenBpsFee_Success() (gas: 39094) -FeeQuoter_getTokenTransferCost:test_FeeTokenBpsFee_Success() (gas: 34730) -FeeQuoter_getTokenTransferCost:test_LargeTokenTransferChargesMaxFeeAndGas_Success() (gas: 27804) -FeeQuoter_getTokenTransferCost:test_MixedTokenTransferFee_Success() (gas: 96739) +FeeQuoter_getTokenTransferCost:test_CustomTokenBpsFee_Success() (gas: 39106) +FeeQuoter_getTokenTransferCost:test_FeeTokenBpsFee_Success() (gas: 34742) +FeeQuoter_getTokenTransferCost:test_LargeTokenTransferChargesMaxFeeAndGas_Success() (gas: 27816) +FeeQuoter_getTokenTransferCost:test_MixedTokenTransferFee_Success() (gas: 96829) FeeQuoter_getTokenTransferCost:test_NoTokenTransferChargesZeroFee_Success() (gas: 20390) -FeeQuoter_getTokenTransferCost:test_SmallTokenTransferChargesMinFeeAndGas_Success() (gas: 27679) -FeeQuoter_getTokenTransferCost:test_ZeroAmountTokenTransferChargesMinFeeAndGas_Success() (gas: 27635) -FeeQuoter_getTokenTransferCost:test_ZeroFeeConfigChargesMinFee_Success() (gas: 40064) -FeeQuoter_getTokenTransferCost:test_getTokenTransferCost_selfServeUsesDefaults_Success() (gas: 29347) +FeeQuoter_getTokenTransferCost:test_SmallTokenTransferChargesMinFeeAndGas_Success() (gas: 27691) +FeeQuoter_getTokenTransferCost:test_ZeroAmountTokenTransferChargesMinFeeAndGas_Success() (gas: 27647) +FeeQuoter_getTokenTransferCost:test_ZeroFeeConfigChargesMinFee_Success() (gas: 40076) +FeeQuoter_getTokenTransferCost:test_getTokenTransferCost_selfServeUsesDefaults_Success() (gas: 29359) FeeQuoter_getValidatedFee:test_DestinationChainNotEnabled_Revert() (gas: 18210) FeeQuoter_getValidatedFee:test_EmptyMessage_Success() (gas: 81749) -FeeQuoter_getValidatedFee:test_EnforceOutOfOrder_Revert() (gas: 52218) +FeeQuoter_getValidatedFee:test_EnforceOutOfOrder_Revert() (gas: 52224) FeeQuoter_getValidatedFee:test_HighGasMessage_Success() (gas: 238167) -FeeQuoter_getValidatedFee:test_InvalidEVMAddress_Revert() (gas: 22420) -FeeQuoter_getValidatedFee:test_MessageGasLimitTooHigh_Revert() (gas: 29646) +FeeQuoter_getValidatedFee:test_InvalidEVMAddress_Revert() (gas: 22426) +FeeQuoter_getValidatedFee:test_MessageGasLimitTooHigh_Revert() (gas: 29652) FeeQuoter_getValidatedFee:test_MessageTooLarge_Revert() (gas: 100163) -FeeQuoter_getValidatedFee:test_MessageWithDataAndTokenTransfer_Success() (gas: 140577) -FeeQuoter_getValidatedFee:test_NotAFeeToken_Revert() (gas: 21073) -FeeQuoter_getValidatedFee:test_SingleTokenMessage_Success() (gas: 112282) +FeeQuoter_getValidatedFee:test_MessageWithDataAndTokenTransfer_Success() (gas: 140673) +FeeQuoter_getValidatedFee:test_NotAFeeToken_Revert() (gas: 21079) +FeeQuoter_getValidatedFee:test_SingleTokenMessage_Success() (gas: 112330) FeeQuoter_getValidatedFee:test_TooManyTokens_Revert() (gas: 22562) FeeQuoter_getValidatedFee:test_ZeroDataAvailabilityMultiplier_Success() (gas: 62255) -FeeQuoter_getValidatedTokenPrice:test_GetValidatedTokenPriceFromFeedErc20Above18Decimals_Success() (gas: 2078733) -FeeQuoter_getValidatedTokenPrice:test_GetValidatedTokenPriceFromFeedErc20Below18Decimals_Success() (gas: 2078691) -FeeQuoter_getValidatedTokenPrice:test_GetValidatedTokenPriceFromFeedFeedAt0Decimals_Success() (gas: 2058810) -FeeQuoter_getValidatedTokenPrice:test_GetValidatedTokenPriceFromFeedFeedAt18Decimals_Success() (gas: 2078465) -FeeQuoter_getValidatedTokenPrice:test_GetValidatedTokenPriceFromFeedFlippedDecimals_Success() (gas: 2078669) -FeeQuoter_getValidatedTokenPrice:test_GetValidatedTokenPriceFromFeedMaxInt224Value_Success() (gas: 2078481) +FeeQuoter_getValidatedTokenPrice:test_GetValidatedTokenPriceFromFeedErc20Above18Decimals_Success() (gas: 2068728) +FeeQuoter_getValidatedTokenPrice:test_GetValidatedTokenPriceFromFeedErc20Below18Decimals_Success() (gas: 2068686) +FeeQuoter_getValidatedTokenPrice:test_GetValidatedTokenPriceFromFeedFeedAt0Decimals_Success() (gas: 2048805) +FeeQuoter_getValidatedTokenPrice:test_GetValidatedTokenPriceFromFeedFeedAt18Decimals_Success() (gas: 2068460) +FeeQuoter_getValidatedTokenPrice:test_GetValidatedTokenPriceFromFeedFlippedDecimals_Success() (gas: 2068664) +FeeQuoter_getValidatedTokenPrice:test_GetValidatedTokenPriceFromFeedMaxInt224Value_Success() (gas: 2068476) FeeQuoter_getValidatedTokenPrice:test_GetValidatedTokenPriceFromFeedOverStalenessPeriod_Success() (gas: 64412) FeeQuoter_getValidatedTokenPrice:test_GetValidatedTokenPriceFromFeed_Success() (gas: 64292) FeeQuoter_getValidatedTokenPrice:test_GetValidatedTokenPrice_Success() (gas: 58855) -FeeQuoter_getValidatedTokenPrice:test_OverflowFeedPrice_Revert() (gas: 2078166) +FeeQuoter_getValidatedTokenPrice:test_OverflowFeedPrice_Revert() (gas: 2068167) FeeQuoter_getValidatedTokenPrice:test_StaleFeeToken_Success() (gas: 61692) -FeeQuoter_getValidatedTokenPrice:test_TokenNotSupportedFeed_Revert() (gas: 116268) -FeeQuoter_getValidatedTokenPrice:test_TokenNotSupported_Revert() (gas: 13986) -FeeQuoter_getValidatedTokenPrice:test_UnderflowFeedPrice_Revert() (gas: 2076843) -FeeQuoter_onReport:test_OnReport_StaleUpdate_Revert() (gas: 43336) -FeeQuoter_onReport:test_onReport_InvalidForwarder_Reverts() (gas: 23306) -FeeQuoter_onReport:test_onReport_Success() (gas: 79834) -FeeQuoter_onReport:test_onReport_UnsupportedToken_Reverts() (gas: 26692) +FeeQuoter_getValidatedTokenPrice:test_TokenNotSupportedFeed_Revert() (gas: 116292) +FeeQuoter_getValidatedTokenPrice:test_TokenNotSupported_Revert() (gas: 14004) +FeeQuoter_getValidatedTokenPrice:test_UnderflowFeedPrice_Revert() (gas: 2066844) +FeeQuoter_onReport:test_OnReport_StaleUpdate_Revert() (gas: 43342) +FeeQuoter_onReport:test_onReport_InvalidForwarder_Reverts() (gas: 23312) +FeeQuoter_onReport:test_onReport_Success() (gas: 79840) +FeeQuoter_onReport:test_onReport_UnsupportedToken_Reverts() (gas: 26704) FeeQuoter_parseEVMExtraArgsFromBytes:test_EVMExtraArgsDefault_Success() (gas: 17191) FeeQuoter_parseEVMExtraArgsFromBytes:test_EVMExtraArgsEnforceOutOfOrder_Revert() (gas: 21302) FeeQuoter_parseEVMExtraArgsFromBytes:test_EVMExtraArgsGasLimitTooHigh_Revert() (gas: 18399) @@ -399,550 +399,551 @@ FeeQuoter_parseEVMExtraArgsFromBytes:test_EVMExtraArgsInvalidExtraArgsTag_Revert FeeQuoter_parseEVMExtraArgsFromBytes:test_EVMExtraArgsV1_Success() (gas: 18291) FeeQuoter_parseEVMExtraArgsFromBytes:test_EVMExtraArgsV2_Success() (gas: 18407) FeeQuoter_processMessageArgs:test_InvalidExtraArgs_Revert() (gas: 18339) -FeeQuoter_processMessageArgs:test_MalformedEVMExtraArgs_Revert() (gas: 18885) +FeeQuoter_processMessageArgs:test_MalformedEVMExtraArgs_Revert() (gas: 18891) FeeQuoter_processMessageArgs:test_MessageFeeTooHigh_Revert() (gas: 16404) -FeeQuoter_processMessageArgs:test_WitEVMExtraArgsV2_Success() (gas: 26277) +FeeQuoter_processMessageArgs:test_WitEVMExtraArgsV2_Success() (gas: 26295) FeeQuoter_processMessageArgs:test_WithConvertedTokenAmount_Success() (gas: 27695) -FeeQuoter_processMessageArgs:test_WithEVMExtraArgsV1_Success() (gas: 25889) -FeeQuoter_processMessageArgs:test_WithEmptyEVMExtraArgs_Success() (gas: 23704) +FeeQuoter_processMessageArgs:test_WithEVMExtraArgsV1_Success() (gas: 25901) +FeeQuoter_processMessageArgs:test_WithEmptyEVMExtraArgs_Success() (gas: 23716) FeeQuoter_processMessageArgs:test_WithLinkTokenAmount_Success() (gas: 17353) FeeQuoter_updatePrices:test_OnlyCallableByUpdater_Revert() (gas: 12114) FeeQuoter_updatePrices:test_OnlyGasPrice_Success() (gas: 23599) FeeQuoter_updatePrices:test_OnlyTokenPrice_Success() (gas: 28428) -FeeQuoter_updatePrices:test_UpdatableByAuthorizedCaller_Success() (gas: 74260) +FeeQuoter_updatePrices:test_UpdatableByAuthorizedCaller_Success() (gas: 74269) FeeQuoter_updatePrices:test_UpdateMultiplePrices_Success() (gas: 144784) FeeQuoter_updateTokenPriceFeeds:test_FeedNotUpdated() (gas: 50523) FeeQuoter_updateTokenPriceFeeds:test_FeedUnset_Success() (gas: 63200) -FeeQuoter_updateTokenPriceFeeds:test_FeedUpdatedByNonOwner_Revert() (gas: 19938) +FeeQuoter_updateTokenPriceFeeds:test_FeedUpdatedByNonOwner_Revert() (gas: 19944) FeeQuoter_updateTokenPriceFeeds:test_MultipleFeedUpdate_Success() (gas: 88920) FeeQuoter_updateTokenPriceFeeds:test_SingleFeedUpdate_Success() (gas: 50795) FeeQuoter_updateTokenPriceFeeds:test_ZeroFeeds_Success() (gas: 12296) -FeeQuoter_validateDestFamilyAddress:test_InvalidEVMAddressEncodePacked_Revert() (gas: 10622) -FeeQuoter_validateDestFamilyAddress:test_InvalidEVMAddressPrecompiles_Revert() (gas: 3967790) -FeeQuoter_validateDestFamilyAddress:test_InvalidEVMAddress_Revert() (gas: 10806) +FeeQuoter_validateDestFamilyAddress:test_InvalidEVMAddressEncodePacked_Revert() (gas: 10634) +FeeQuoter_validateDestFamilyAddress:test_InvalidEVMAddressPrecompiles_Revert() (gas: 3980078) +FeeQuoter_validateDestFamilyAddress:test_InvalidEVMAddress_Revert() (gas: 10818) FeeQuoter_validateDestFamilyAddress:test_ValidEVMAddress_Success() (gas: 6710) FeeQuoter_validateDestFamilyAddress:test_ValidNonEVMAddress_Success() (gas: 6484) -FeeQuoter_validatePoolReturnData:test_InvalidEVMAddressDestToken_Revert() (gas: 42769) -FeeQuoter_validatePoolReturnData:test_ProcessPoolReturnData_Success() (gas: 73306) -FeeQuoter_validatePoolReturnData:test_SourceTokenDataTooLarge_Revert() (gas: 107855) -FeeQuoter_validatePoolReturnData:test_TokenAmountArraysMismatching_Revert() (gas: 40106) -HybridUSDCTokenPoolMigrationTests:test_LockOrBurn_LockReleaseMechanism_then_switchToPrimary_Success() (gas: 208472) -HybridUSDCTokenPoolMigrationTests:test_LockOrBurn_PrimaryMechanism_Success() (gas: 135538) -HybridUSDCTokenPoolMigrationTests:test_LockOrBurn_WhileMigrationPause_Revert() (gas: 106706) -HybridUSDCTokenPoolMigrationTests:test_LockOrBurn_onLockReleaseMechanism_Success() (gas: 144163) -HybridUSDCTokenPoolMigrationTests:test_MintOrRelease_OnLockReleaseMechanism_Success() (gas: 214070) -HybridUSDCTokenPoolMigrationTests:test_MintOrRelease_OnLockReleaseMechanism_then_switchToPrimary_Success() (gas: 422174) -HybridUSDCTokenPoolMigrationTests:test_MintOrRelease_incomingMessageWithPrimaryMechanism() (gas: 268474) -HybridUSDCTokenPoolMigrationTests:test_ReleaseOrMint_WhileMigrationPause_Revert() (gas: 110983) -HybridUSDCTokenPoolMigrationTests:test_burnLockedUSDC_invalidPermissions_Revert() (gas: 39110) -HybridUSDCTokenPoolMigrationTests:test_cancelExistingCCTPMigrationProposal() (gas: 32949) -HybridUSDCTokenPoolMigrationTests:test_cannotCancelANonExistentMigrationProposal() (gas: 12606) -HybridUSDCTokenPoolMigrationTests:test_cannotModifyLiquidityWithoutPermissions_Revert() (gas: 13161) -HybridUSDCTokenPoolMigrationTests:test_cannotTransferLiquidityDuringPendingMigration_Revert() (gas: 160603) -HybridUSDCTokenPoolMigrationTests:test_lockOrBurn_then_BurnInCCTPMigration_Success() (gas: 254780) -HybridUSDCTokenPoolMigrationTests:test_transferLiquidity_Success() (gas: 165451) -HybridUSDCTokenPoolMigrationTests:test_unstickManualTxAfterMigration_destChain_Success() (gas: 153525) -HybridUSDCTokenPoolMigrationTests:test_unstickManualTxAfterMigration_homeChain_Success() (gas: 462264) -HybridUSDCTokenPoolTests:test_LockOrBurn_LockReleaseMechanism_then_switchToPrimary_Success() (gas: 208270) -HybridUSDCTokenPoolTests:test_LockOrBurn_PrimaryMechanism_Success() (gas: 135460) -HybridUSDCTokenPoolTests:test_LockOrBurn_WhileMigrationPause_Revert() (gas: 106751) -HybridUSDCTokenPoolTests:test_LockOrBurn_onLockReleaseMechanism_Success() (gas: 144151) -HybridUSDCTokenPoolTests:test_MintOrRelease_OnLockReleaseMechanism_Success() (gas: 214003) -HybridUSDCTokenPoolTests:test_MintOrRelease_OnLockReleaseMechanism_then_switchToPrimary_Success() (gas: 421969) -HybridUSDCTokenPoolTests:test_MintOrRelease_incomingMessageWithPrimaryMechanism() (gas: 268399) -HybridUSDCTokenPoolTests:test_ReleaseOrMint_WhileMigrationPause_Revert() (gas: 110982) -HybridUSDCTokenPoolTests:test_cannotTransferLiquidityDuringPendingMigration_Revert() (gas: 160548) -HybridUSDCTokenPoolTests:test_transferLiquidity_Success() (gas: 165371) -LockReleaseTokenPoolAndProxy_setRebalancer:test_SetRebalancer_Revert() (gas: 10977) -LockReleaseTokenPoolAndProxy_setRebalancer:test_SetRebalancer_Success() (gas: 17998) -LockReleaseTokenPoolPoolAndProxy_canAcceptLiquidity:test_CanAcceptLiquidity_Success() (gas: 3315195) -LockReleaseTokenPoolPoolAndProxy_provideLiquidity:test_LiquidityNotAccepted_Revert() (gas: 3311601) -LockReleaseTokenPoolPoolAndProxy_provideLiquidity:test_Unauthorized_Revert() (gas: 11405) -LockReleaseTokenPoolPoolAndProxy_supportsInterface:test_SupportsInterface_Success() (gas: 9977) -LockReleaseTokenPoolPoolAndProxy_withdrawalLiquidity:test_InsufficientLiquidity_Revert() (gas: 60060) +FeeQuoter_validatePoolReturnData:test_InvalidEVMAddressDestToken_Revert() (gas: 42781) +FeeQuoter_validatePoolReturnData:test_ProcessPoolReturnData_Success() (gas: 73330) +FeeQuoter_validatePoolReturnData:test_SourceTokenDataTooLarge_Revert() (gas: 107927) +FeeQuoter_validatePoolReturnData:test_TokenAmountArraysMismatching_Revert() (gas: 40112) +HybridUSDCTokenPoolMigrationTests:test_LockOrBurn_LockReleaseMechanism_then_switchToPrimary_Success() (gas: 209099) +HybridUSDCTokenPoolMigrationTests:test_LockOrBurn_PrimaryMechanism_Success() (gas: 135804) +HybridUSDCTokenPoolMigrationTests:test_LockOrBurn_WhileMigrationPause_Revert() (gas: 107078) +HybridUSDCTokenPoolMigrationTests:test_LockOrBurn_onLockReleaseMechanism_Success() (gas: 144568) +HybridUSDCTokenPoolMigrationTests:test_MintOrRelease_OnLockReleaseMechanism_Success() (gas: 214763) +HybridUSDCTokenPoolMigrationTests:test_MintOrRelease_OnLockReleaseMechanism_then_switchToPrimary_Success() (gas: 423554) +HybridUSDCTokenPoolMigrationTests:test_MintOrRelease_incomingMessageWithPrimaryMechanism() (gas: 268901) +HybridUSDCTokenPoolMigrationTests:test_ReleaseOrMint_WhileMigrationPause_Revert() (gas: 111457) +HybridUSDCTokenPoolMigrationTests:test_burnLockedUSDC_invalidPermissions_Revert() (gas: 39338) +HybridUSDCTokenPoolMigrationTests:test_cancelExistingCCTPMigrationProposal() (gas: 33151) +HybridUSDCTokenPoolMigrationTests:test_cannotCancelANonExistentMigrationProposal() (gas: 12651) +HybridUSDCTokenPoolMigrationTests:test_cannotModifyLiquidityWithoutPermissions_Revert() (gas: 13323) +HybridUSDCTokenPoolMigrationTests:test_cannotTransferLiquidityDuringPendingMigration_Revert() (gas: 160885) +HybridUSDCTokenPoolMigrationTests:test_lockOrBurn_then_BurnInCCTPMigration_Success() (gas: 255833) +HybridUSDCTokenPoolMigrationTests:test_transferLiquidity_Success() (gas: 165878) +HybridUSDCTokenPoolMigrationTests:test_unstickManualTxAfterMigration_destChain_Success() (gas: 154182) +HybridUSDCTokenPoolMigrationTests:test_unstickManualTxAfterMigration_homeChain_Success() (gas: 463620) +HybridUSDCTokenPoolTests:test_LockOrBurn_LockReleaseMechanism_then_switchToPrimary_Success() (gas: 208712) +HybridUSDCTokenPoolTests:test_LockOrBurn_PrimaryMechanism_Success() (gas: 135647) +HybridUSDCTokenPoolTests:test_LockOrBurn_WhileMigrationPause_Revert() (gas: 106991) +HybridUSDCTokenPoolTests:test_LockOrBurn_onLockReleaseMechanism_Success() (gas: 144457) +HybridUSDCTokenPoolTests:test_MintOrRelease_OnLockReleaseMechanism_Success() (gas: 214471) +HybridUSDCTokenPoolTests:test_MintOrRelease_OnLockReleaseMechanism_then_switchToPrimary_Success() (gas: 422833) +HybridUSDCTokenPoolTests:test_MintOrRelease_incomingMessageWithPrimaryMechanism() (gas: 268620) +HybridUSDCTokenPoolTests:test_ReleaseOrMint_WhileMigrationPause_Revert() (gas: 111336) +HybridUSDCTokenPoolTests:test_cannotTransferLiquidityDuringPendingMigration_Revert() (gas: 160764) +HybridUSDCTokenPoolTests:test_transferLiquidity_Success() (gas: 165649) +LockReleaseTokenPoolAndProxy_setRebalancer:test_SetRebalancer_Revert() (gas: 10983) +LockReleaseTokenPoolAndProxy_setRebalancer:test_SetRebalancer_Success() (gas: 18010) +LockReleaseTokenPoolPoolAndProxy_canAcceptLiquidity:test_CanAcceptLiquidity_Success() (gas: 3195288) +LockReleaseTokenPoolPoolAndProxy_provideLiquidity:test_LiquidityNotAccepted_Revert() (gas: 3191694) +LockReleaseTokenPoolPoolAndProxy_provideLiquidity:test_Unauthorized_Revert() (gas: 11417) +LockReleaseTokenPoolPoolAndProxy_supportsInterface:test_SupportsInterface_Success() (gas: 10124) +LockReleaseTokenPoolPoolAndProxy_withdrawalLiquidity:test_InsufficientLiquidity_Revert() (gas: 60081) LockReleaseTokenPoolPoolAndProxy_withdrawalLiquidity:test_Unauthorized_Revert() (gas: 11386) -LockReleaseTokenPool_canAcceptLiquidity:test_CanAcceptLiquidity_Success() (gas: 3071906) -LockReleaseTokenPool_lockOrBurn:test_LockOrBurnWithAllowList_Revert() (gas: 29960) -LockReleaseTokenPool_lockOrBurn:test_LockOrBurnWithAllowList_Success() (gas: 79868) -LockReleaseTokenPool_lockOrBurn:test_PoolBurnRevertNotHealthy_Revert() (gas: 59479) -LockReleaseTokenPool_provideLiquidity:test_LiquidityNotAccepted_Revert() (gas: 3068356) -LockReleaseTokenPool_provideLiquidity:test_Unauthorized_Revert() (gas: 11405) -LockReleaseTokenPool_releaseOrMint:test_ChainNotAllowed_Revert() (gas: 72666) -LockReleaseTokenPool_releaseOrMint:test_PoolMintNotHealthy_Revert() (gas: 56211) -LockReleaseTokenPool_releaseOrMint:test_ReleaseOrMint_Success() (gas: 225296) -LockReleaseTokenPool_setRebalancer:test_SetRebalancer_Revert() (gas: 10999) +LockReleaseTokenPool_canAcceptLiquidity:test_CanAcceptLiquidity_Success() (gas: 2982884) +LockReleaseTokenPool_lockOrBurn:test_LockOrBurnWithAllowList_Revert() (gas: 29972) +LockReleaseTokenPool_lockOrBurn:test_LockOrBurnWithAllowList_Success() (gas: 79880) +LockReleaseTokenPool_lockOrBurn:test_PoolBurnRevertNotHealthy_Revert() (gas: 59491) +LockReleaseTokenPool_provideLiquidity:test_LiquidityNotAccepted_Revert() (gas: 2979334) +LockReleaseTokenPool_provideLiquidity:test_Unauthorized_Revert() (gas: 11417) +LockReleaseTokenPool_releaseOrMint:test_ChainNotAllowed_Revert() (gas: 72680) +LockReleaseTokenPool_releaseOrMint:test_PoolMintNotHealthy_Revert() (gas: 56223) +LockReleaseTokenPool_releaseOrMint:test_ReleaseOrMint_Success() (gas: 225332) +LockReleaseTokenPool_setRebalancer:test_SetRebalancer_Revert() (gas: 11005) LockReleaseTokenPool_setRebalancer:test_SetRebalancer_Success() (gas: 18064) -LockReleaseTokenPool_supportsInterface:test_SupportsInterface_Success() (gas: 9977) -LockReleaseTokenPool_transferLiquidity:test_transferLiquidity_Success() (gas: 83177) +LockReleaseTokenPool_supportsInterface:test_SupportsInterface_Success() (gas: 10124) +LockReleaseTokenPool_transferLiquidity:test_transferLiquidity_Success() (gas: 83192) LockReleaseTokenPool_transferLiquidity:test_transferLiquidity_transferTooMuch_Revert() (gas: 55899) -LockReleaseTokenPool_withdrawalLiquidity:test_InsufficientLiquidity_Revert() (gas: 60060) +LockReleaseTokenPool_withdrawalLiquidity:test_InsufficientLiquidity_Revert() (gas: 60081) LockReleaseTokenPool_withdrawalLiquidity:test_Unauthorized_Revert() (gas: 11386) -LockRelease_setRateLimitAdmin:test_SetRateLimitAdmin_Revert() (gas: 11036) -LockRelease_setRateLimitAdmin:test_SetRateLimitAdmin_Success() (gas: 35030) -MerkleMultiProofTest:test_CVE_2023_34459() (gas: 5454) -MerkleMultiProofTest:test_EmptyLeaf_Revert() (gas: 3555) +LockRelease_setRateLimitAdmin:test_SetRateLimitAdmin_Revert() (gas: 11048) +LockRelease_setRateLimitAdmin:test_SetRateLimitAdmin_Success() (gas: 35036) +MerkleMultiProofTest:test_CVE_2023_34459() (gas: 5460) +MerkleMultiProofTest:test_EmptyLeaf_Revert() (gas: 3573) MerkleMultiProofTest:test_MerkleRoot256() (gas: 394879) MerkleMultiProofTest:test_MerkleRootSingleLeaf_Success() (gas: 3649) MerkleMultiProofTest:test_SpecSync_gas() (gas: 34123) -MockRouterTest:test_ccipSendWithInsufficientNativeTokens_Revert() (gas: 34019) -MockRouterTest:test_ccipSendWithInvalidMsgValue_Revert() (gas: 60812) -MockRouterTest:test_ccipSendWithLinkFeeTokenAndValidMsgValue_Success() (gas: 126540) -MockRouterTest:test_ccipSendWithLinkFeeTokenbutInsufficientAllowance_Revert() (gas: 63419) +MockRouterTest:test_ccipSendWithInsufficientNativeTokens_Revert() (gas: 34025) +MockRouterTest:test_ccipSendWithInvalidMsgValue_Revert() (gas: 60830) +MockRouterTest:test_ccipSendWithLinkFeeTokenAndValidMsgValue_Success() (gas: 126552) +MockRouterTest:test_ccipSendWithLinkFeeTokenbutInsufficientAllowance_Revert() (gas: 63431) MockRouterTest:test_ccipSendWithSufficientNativeFeeTokens_Success() (gas: 44012) MultiAggregateRateLimiter_applyRateLimiterConfigUpdates:test_MultipleConfigsBothLanes_Success() (gas: 132457) MultiAggregateRateLimiter_applyRateLimiterConfigUpdates:test_MultipleConfigs_Success() (gas: 313023) -MultiAggregateRateLimiter_applyRateLimiterConfigUpdates:test_OnlyCallableByOwner_Revert() (gas: 17750) +MultiAggregateRateLimiter_applyRateLimiterConfigUpdates:test_OnlyCallableByOwner_Revert() (gas: 17756) MultiAggregateRateLimiter_applyRateLimiterConfigUpdates:test_SingleConfigOutbound_Success() (gas: 76030) MultiAggregateRateLimiter_applyRateLimiterConfigUpdates:test_SingleConfig_Success() (gas: 75946) MultiAggregateRateLimiter_applyRateLimiterConfigUpdates:test_UpdateExistingConfigWithNoDifference_Success() (gas: 38436) MultiAggregateRateLimiter_applyRateLimiterConfigUpdates:test_UpdateExistingConfig_Success() (gas: 53473) MultiAggregateRateLimiter_applyRateLimiterConfigUpdates:test_ZeroChainSelector_Revert() (gas: 17046) MultiAggregateRateLimiter_applyRateLimiterConfigUpdates:test_ZeroConfigs_Success() (gas: 12361) -MultiAggregateRateLimiter_constructor:test_ConstructorNoAuthorizedCallers_Success() (gas: 2050112) -MultiAggregateRateLimiter_constructor:test_Constructor_Success() (gas: 2166413) +MultiAggregateRateLimiter_constructor:test_ConstructorNoAuthorizedCallers_Success() (gas: 2050118) +MultiAggregateRateLimiter_constructor:test_Constructor_Success() (gas: 2166419) MultiAggregateRateLimiter_getTokenBucket:test_GetTokenBucket_Success() (gas: 30404) -MultiAggregateRateLimiter_getTokenBucket:test_Refill_Success() (gas: 47673) +MultiAggregateRateLimiter_getTokenBucket:test_Refill_Success() (gas: 47679) MultiAggregateRateLimiter_getTokenBucket:test_TimeUnderflow_Revert() (gas: 15863) -MultiAggregateRateLimiter_getTokenValue:test_GetTokenValue_Success() (gas: 17459) -MultiAggregateRateLimiter_getTokenValue:test_NoTokenPrice_Reverts() (gas: 21354) -MultiAggregateRateLimiter_onInboundMessage:test_ValidateMessageFromUnauthorizedCaller_Revert() (gas: 14533) -MultiAggregateRateLimiter_onInboundMessage:test_ValidateMessageWithDifferentTokensOnDifferentChains_Success() (gas: 209639) -MultiAggregateRateLimiter_onInboundMessage:test_ValidateMessageWithDisabledRateLimitToken_Success() (gas: 58270) -MultiAggregateRateLimiter_onInboundMessage:test_ValidateMessageWithNoTokens_Success() (gas: 17599) -MultiAggregateRateLimiter_onInboundMessage:test_ValidateMessageWithRateLimitDisabled_Success() (gas: 45006) -MultiAggregateRateLimiter_onInboundMessage:test_ValidateMessageWithRateLimitExceeded_Revert() (gas: 46166) -MultiAggregateRateLimiter_onInboundMessage:test_ValidateMessageWithRateLimitReset_Success() (gas: 76036) -MultiAggregateRateLimiter_onInboundMessage:test_ValidateMessageWithTokensOnDifferentChains_Success() (gas: 307711) -MultiAggregateRateLimiter_onInboundMessage:test_ValidateMessageWithTokens_Success() (gas: 50358) +MultiAggregateRateLimiter_getTokenValue:test_GetTokenValue_Success() (gas: 17465) +MultiAggregateRateLimiter_getTokenValue:test_NoTokenPrice_Reverts() (gas: 21360) +MultiAggregateRateLimiter_onInboundMessage:test_ValidateMessageFromUnauthorizedCaller_Revert() (gas: 14539) +MultiAggregateRateLimiter_onInboundMessage:test_ValidateMessageWithDifferentTokensOnDifferentChains_Success() (gas: 209717) +MultiAggregateRateLimiter_onInboundMessage:test_ValidateMessageWithDisabledRateLimitToken_Success() (gas: 58293) +MultiAggregateRateLimiter_onInboundMessage:test_ValidateMessageWithNoTokens_Success() (gas: 17605) +MultiAggregateRateLimiter_onInboundMessage:test_ValidateMessageWithRateLimitDisabled_Success() (gas: 45057) +MultiAggregateRateLimiter_onInboundMessage:test_ValidateMessageWithRateLimitExceeded_Revert() (gas: 46184) +MultiAggregateRateLimiter_onInboundMessage:test_ValidateMessageWithRateLimitReset_Success() (gas: 76162) +MultiAggregateRateLimiter_onInboundMessage:test_ValidateMessageWithTokensOnDifferentChains_Success() (gas: 307789) +MultiAggregateRateLimiter_onInboundMessage:test_ValidateMessageWithTokens_Success() (gas: 50381) MultiAggregateRateLimiter_onOutboundMessage:test_RateLimitValueDifferentLanes_Success() (gas: 1073669836) MultiAggregateRateLimiter_onOutboundMessage:test_ValidateMessageWithNoTokens_Success() (gas: 19158) MultiAggregateRateLimiter_onOutboundMessage:test_onOutboundMessage_ValidateMessageFromUnauthorizedCaller_Revert() (gas: 15829) MultiAggregateRateLimiter_onOutboundMessage:test_onOutboundMessage_ValidateMessageWithDifferentTokensOnDifferentChains_Success() (gas: 209483) MultiAggregateRateLimiter_onOutboundMessage:test_onOutboundMessage_ValidateMessageWithDisabledRateLimitToken_Success() (gas: 60053) -MultiAggregateRateLimiter_onOutboundMessage:test_onOutboundMessage_ValidateMessageWithRateLimitDisabled_Success() (gas: 46818) +MultiAggregateRateLimiter_onOutboundMessage:test_onOutboundMessage_ValidateMessageWithRateLimitDisabled_Success() (gas: 46824) MultiAggregateRateLimiter_onOutboundMessage:test_onOutboundMessage_ValidateMessageWithRateLimitExceeded_Revert() (gas: 47987) -MultiAggregateRateLimiter_onOutboundMessage:test_onOutboundMessage_ValidateMessageWithRateLimitReset_Success() (gas: 77293) +MultiAggregateRateLimiter_onOutboundMessage:test_onOutboundMessage_ValidateMessageWithRateLimitReset_Success() (gas: 77305) MultiAggregateRateLimiter_onOutboundMessage:test_onOutboundMessage_ValidateMessageWithTokensOnDifferentChains_Success() (gas: 307781) MultiAggregateRateLimiter_onOutboundMessage:test_onOutboundMessage_ValidateMessageWithTokens_Success() (gas: 52163) -MultiAggregateRateLimiter_setFeeQuoter:test_OnlyOwner_Revert() (gas: 11325) +MultiAggregateRateLimiter_setFeeQuoter:test_OnlyOwner_Revert() (gas: 11331) MultiAggregateRateLimiter_setFeeQuoter:test_Owner_Success() (gas: 19072) MultiAggregateRateLimiter_setFeeQuoter:test_ZeroAddress_Revert() (gas: 10597) -MultiAggregateRateLimiter_updateRateLimitTokens:test_NonOwner_Revert() (gas: 18800) +MultiAggregateRateLimiter_updateRateLimitTokens:test_NonOwner_Revert() (gas: 18806) MultiAggregateRateLimiter_updateRateLimitTokens:test_UpdateRateLimitTokensMultipleChains_Success() (gas: 279944) MultiAggregateRateLimiter_updateRateLimitTokens:test_UpdateRateLimitTokensSingleChain_Success() (gas: 254495) -MultiAggregateRateLimiter_updateRateLimitTokens:test_UpdateRateLimitTokens_AddsAndRemoves_Success() (gas: 204465) -MultiAggregateRateLimiter_updateRateLimitTokens:test_UpdateRateLimitTokens_RemoveNonExistentToken_Success() (gas: 28703) +MultiAggregateRateLimiter_updateRateLimitTokens:test_UpdateRateLimitTokens_AddsAndRemoves_Success() (gas: 204470) +MultiAggregateRateLimiter_updateRateLimitTokens:test_UpdateRateLimitTokens_RemoveNonExistentToken_Success() (gas: 28709) MultiAggregateRateLimiter_updateRateLimitTokens:test_ZeroDestToken_Revert() (gas: 18279) MultiAggregateRateLimiter_updateRateLimitTokens:test_ZeroSourceToken_Revert() (gas: 18208) MultiOCR3Base_setOCR3Configs:test_FMustBePositive_Revert() (gas: 59255) -MultiOCR3Base_setOCR3Configs:test_FTooHigh_Revert() (gas: 43629) -MultiOCR3Base_setOCR3Configs:test_RepeatSignerAddress_Revert() (gas: 283636) -MultiOCR3Base_setOCR3Configs:test_RepeatTransmitterAddress_Revert() (gas: 422261) -MultiOCR3Base_setOCR3Configs:test_SetConfigIgnoreSigners_Success() (gas: 511281) -MultiOCR3Base_setOCR3Configs:test_SetConfigWithSigners_Success() (gas: 828440) -MultiOCR3Base_setOCR3Configs:test_SetConfigWithoutSigners_Success() (gas: 456886) +MultiOCR3Base_setOCR3Configs:test_FTooHigh_Revert() (gas: 43632) +MultiOCR3Base_setOCR3Configs:test_RepeatSignerAddress_Revert() (gas: 283639) +MultiOCR3Base_setOCR3Configs:test_RepeatTransmitterAddress_Revert() (gas: 422264) +MultiOCR3Base_setOCR3Configs:test_SetConfigIgnoreSigners_Success() (gas: 511308) +MultiOCR3Base_setOCR3Configs:test_SetConfigWithSigners_Success() (gas: 828467) +MultiOCR3Base_setOCR3Configs:test_SetConfigWithoutSigners_Success() (gas: 456913) MultiOCR3Base_setOCR3Configs:test_SetConfigsZeroInput_Success() (gas: 12382) -MultiOCR3Base_setOCR3Configs:test_SetMultipleConfigs_Success() (gas: 2140159) -MultiOCR3Base_setOCR3Configs:test_SignerCannotBeZeroAddress_Revert() (gas: 141717) -MultiOCR3Base_setOCR3Configs:test_StaticConfigChange_Revert() (gas: 807340) -MultiOCR3Base_setOCR3Configs:test_TooManySigners_Revert() (gas: 158799) -MultiOCR3Base_setOCR3Configs:test_TooManyTransmitters_Revert() (gas: 112293) -MultiOCR3Base_setOCR3Configs:test_TransmitterCannotBeZeroAddress_Revert() (gas: 254083) -MultiOCR3Base_setOCR3Configs:test_UpdateConfigSigners_Success() (gas: 860224) -MultiOCR3Base_setOCR3Configs:test_UpdateConfigTransmittersWithoutSigners_Success() (gas: 475193) +MultiOCR3Base_setOCR3Configs:test_SetMultipleConfigs_Success() (gas: 2140246) +MultiOCR3Base_setOCR3Configs:test_SignerCannotBeZeroAddress_Revert() (gas: 141720) +MultiOCR3Base_setOCR3Configs:test_StaticConfigChange_Revert() (gas: 807349) +MultiOCR3Base_setOCR3Configs:test_TooManySigners_Revert() (gas: 158802) +MultiOCR3Base_setOCR3Configs:test_TooManyTransmitters_Revert() (gas: 112296) +MultiOCR3Base_setOCR3Configs:test_TransmitterCannotBeZeroAddress_Revert() (gas: 254086) +MultiOCR3Base_setOCR3Configs:test_UpdateConfigSigners_Success() (gas: 860245) +MultiOCR3Base_setOCR3Configs:test_UpdateConfigTransmittersWithoutSigners_Success() (gas: 475215) MultiOCR3Base_transmit:test_ConfigDigestMismatch_Revert() (gas: 42845) MultiOCR3Base_transmit:test_ForkedChain_Revert() (gas: 48450) -MultiOCR3Base_transmit:test_InsufficientSignatures_Revert() (gas: 76928) +MultiOCR3Base_transmit:test_InsufficientSignatures_Revert() (gas: 76934) MultiOCR3Base_transmit:test_NonUniqueSignature_Revert() (gas: 65768) MultiOCR3Base_transmit:test_SignatureOutOfRegistration_Revert() (gas: 33417) -MultiOCR3Base_transmit:test_TooManySignatures_Revert() (gas: 79519) +MultiOCR3Base_transmit:test_TooManySignatures_Revert() (gas: 79525) MultiOCR3Base_transmit:test_TransmitSigners_gas_Success() (gas: 33631) -MultiOCR3Base_transmit:test_TransmitWithExtraCalldataArgs_Revert() (gas: 47122) -MultiOCR3Base_transmit:test_TransmitWithLessCalldataArgs_Revert() (gas: 25690) +MultiOCR3Base_transmit:test_TransmitWithExtraCalldataArgs_Revert() (gas: 47128) +MultiOCR3Base_transmit:test_TransmitWithLessCalldataArgs_Revert() (gas: 25696) MultiOCR3Base_transmit:test_TransmitWithoutSignatureVerification_gas_Success() (gas: 18712) -MultiOCR3Base_transmit:test_UnAuthorizedTransmitter_Revert() (gas: 24189) +MultiOCR3Base_transmit:test_UnAuthorizedTransmitter_Revert() (gas: 24195) MultiOCR3Base_transmit:test_UnauthorizedSigner_Revert() (gas: 61131) -MultiOCR3Base_transmit:test_UnconfiguredPlugin_Revert() (gas: 39888) -MultiOCR3Base_transmit:test_ZeroSignatures_Revert() (gas: 32971) -MultiOnRampTokenPoolReentrancy:test_OnRampTokenPoolReentrancy_Success() (gas: 409147) -MultiRampsE2E:test_E2E_3MessagesMMultiOffRampSuccess_gas() (gas: 1526265) -NonceManager_NonceIncrementation:test_getIncrementedOutboundNonce_Success() (gas: 37916) +MultiOCR3Base_transmit:test_UnconfiguredPlugin_Revert() (gas: 39894) +MultiOCR3Base_transmit:test_ZeroSignatures_Revert() (gas: 32977) +MultiOnRampTokenPoolReentrancy:test_OnRampTokenPoolReentrancy_Success() (gas: 409189) +MultiRampsE2E:test_E2E_3MessagesMMultiOffRampSuccess_gas() (gas: 1537029) +NonceManager_NonceIncrementation:test_getIncrementedOutboundNonce_Success() (gas: 37922) NonceManager_NonceIncrementation:test_incrementInboundNonce_Skip() (gas: 23709) NonceManager_NonceIncrementation:test_incrementInboundNonce_Success() (gas: 38799) -NonceManager_NonceIncrementation:test_incrementNoncesInboundAndOutbound_Success() (gas: 71898) -NonceManager_OffRampUpgrade:test_NoPrevOffRampForChain_Success() (gas: 260404) -NonceManager_OffRampUpgrade:test_UpgradedNonceNewSenderStartsAtZero_Success() (gas: 264546) -NonceManager_OffRampUpgrade:test_UpgradedNonceStartsAtV1Nonce_Success() (gas: 327828) -NonceManager_OffRampUpgrade:test_UpgradedOffRampNonceSkipsIfMsgInFlight_Success() (gas: 299527) -NonceManager_OffRampUpgrade:test_UpgradedSenderNoncesReadsPreviousRampTransitive_Success() (gas: 244871) -NonceManager_OffRampUpgrade:test_UpgradedSenderNoncesReadsPreviousRamp_Success() (gas: 232964) -NonceManager_OffRampUpgrade:test_Upgraded_Success() (gas: 153309) -NonceManager_OnRampUpgrade:test_UpgradeNonceNewSenderStartsAtZero_Success() (gas: 168358) -NonceManager_OnRampUpgrade:test_UpgradeNonceStartsAtV1Nonce_Success() (gas: 220193) -NonceManager_OnRampUpgrade:test_UpgradeSenderNoncesReadsPreviousRamp_Success() (gas: 125157) +NonceManager_NonceIncrementation:test_incrementNoncesInboundAndOutbound_Success() (gas: 71904) +NonceManager_OffRampUpgrade:test_NoPrevOffRampForChain_Success() (gas: 262138) +NonceManager_OffRampUpgrade:test_UpgradedNonceNewSenderStartsAtZero_Success() (gas: 266256) +NonceManager_OffRampUpgrade:test_UpgradedNonceStartsAtV1Nonce_Success() (gas: 331224) +NonceManager_OffRampUpgrade:test_UpgradedOffRampNonceSkipsIfMsgInFlight_Success() (gas: 302071) +NonceManager_OffRampUpgrade:test_UpgradedSenderNoncesReadsPreviousRampTransitive_Success() (gas: 245579) +NonceManager_OffRampUpgrade:test_UpgradedSenderNoncesReadsPreviousRamp_Success() (gas: 233648) +NonceManager_OffRampUpgrade:test_Upgraded_Success() (gas: 154815) +NonceManager_OnRampUpgrade:test_UpgradeNonceNewSenderStartsAtZero_Success() (gas: 168463) +NonceManager_OnRampUpgrade:test_UpgradeNonceStartsAtV1Nonce_Success() (gas: 220298) +NonceManager_OnRampUpgrade:test_UpgradeSenderNoncesReadsPreviousRamp_Success() (gas: 125472) NonceManager_OnRampUpgrade:test_Upgrade_Success() (gas: 107566) -NonceManager_applyPreviousRampsUpdates:test_MultipleRampsUpdates() (gas: 122955) -NonceManager_applyPreviousRampsUpdates:test_PreviousRampAlreadySetOffRamp_Revert() (gas: 42965) -NonceManager_applyPreviousRampsUpdates:test_PreviousRampAlreadySetOnRampAndOffRamp_Revert() (gas: 64288) -NonceManager_applyPreviousRampsUpdates:test_PreviousRampAlreadySetOnRamp_Revert() (gas: 42829) -NonceManager_applyPreviousRampsUpdates:test_SingleRampUpdate() (gas: 66576) +NonceManager_applyPreviousRampsUpdates:test_MultipleRampsUpdates() (gas: 122961) +NonceManager_applyPreviousRampsUpdates:test_PreviousRampAlreadySetOffRamp_Revert() (gas: 42983) +NonceManager_applyPreviousRampsUpdates:test_PreviousRampAlreadySetOnRampAndOffRamp_Revert() (gas: 64312) +NonceManager_applyPreviousRampsUpdates:test_PreviousRampAlreadySetOnRamp_Revert() (gas: 42847) +NonceManager_applyPreviousRampsUpdates:test_SingleRampUpdate() (gas: 66594) NonceManager_applyPreviousRampsUpdates:test_ZeroInput() (gas: 12025) NonceManager_typeAndVersion:test_typeAndVersion() (gas: 9699) -OCR2BaseNoChecks_setOCR2Config:test_FMustBePositive_Revert() (gas: 12183) -OCR2BaseNoChecks_setOCR2Config:test_RepeatAddress_Revert() (gas: 42404) -OCR2BaseNoChecks_setOCR2Config:test_SetConfigSuccess_gas() (gas: 84585) -OCR2BaseNoChecks_setOCR2Config:test_TooManyTransmitter_Revert() (gas: 38150) +OCR2BaseNoChecks_setOCR2Config:test_FMustBePositive_Revert() (gas: 12195) +OCR2BaseNoChecks_setOCR2Config:test_RepeatAddress_Revert() (gas: 42416) +OCR2BaseNoChecks_setOCR2Config:test_SetConfigSuccess_gas() (gas: 84590) +OCR2BaseNoChecks_setOCR2Config:test_TooManyTransmitter_Revert() (gas: 38162) OCR2BaseNoChecks_setOCR2Config:test_TransmitterCannotBeZeroAddress_Revert() (gas: 24290) -OCR2BaseNoChecks_transmit:test_ConfigDigestMismatch_Revert() (gas: 17469) -OCR2BaseNoChecks_transmit:test_ForkedChain_Revert() (gas: 26762) +OCR2BaseNoChecks_transmit:test_ConfigDigestMismatch_Revert() (gas: 17475) +OCR2BaseNoChecks_transmit:test_ForkedChain_Revert() (gas: 26768) OCR2BaseNoChecks_transmit:test_TransmitSuccess_gas() (gas: 27499) OCR2BaseNoChecks_transmit:test_UnAuthorizedTransmitter_Revert() (gas: 21317) OCR2Base_setOCR2Config:test_FMustBePositive_Revert() (gas: 12201) OCR2Base_setOCR2Config:test_FTooHigh_Revert() (gas: 12357) OCR2Base_setOCR2Config:test_OracleOutOfRegister_Revert() (gas: 14904) OCR2Base_setOCR2Config:test_RepeatAddress_Revert() (gas: 45454) -OCR2Base_setOCR2Config:test_SetConfigSuccess_gas() (gas: 155211) -OCR2Base_setOCR2Config:test_SingerCannotBeZeroAddress_Revert() (gas: 24407) +OCR2Base_setOCR2Config:test_SetConfigSuccess_gas() (gas: 155216) +OCR2Base_setOCR2Config:test_SingerCannotBeZeroAddress_Revert() (gas: 24413) OCR2Base_setOCR2Config:test_TooManySigners_Revert() (gas: 20520) -OCR2Base_setOCR2Config:test_TransmitterCannotBeZeroAddress_Revert() (gas: 47298) -OCR2Base_transmit:test_ConfigDigestMismatch_Revert() (gas: 19638) -OCR2Base_transmit:test_ForkedChain_Revert() (gas: 37713) +OCR2Base_setOCR2Config:test_TransmitterCannotBeZeroAddress_Revert() (gas: 47304) +OCR2Base_transmit:test_ConfigDigestMismatch_Revert() (gas: 19644) +OCR2Base_transmit:test_ForkedChain_Revert() (gas: 37719) OCR2Base_transmit:test_NonUniqueSignature_Revert() (gas: 55324) OCR2Base_transmit:test_SignatureOutOfRegistration_Revert() (gas: 20977) OCR2Base_transmit:test_Transmit2SignersSuccess_gas() (gas: 51689) OCR2Base_transmit:test_UnAuthorizedTransmitter_Revert() (gas: 23499) OCR2Base_transmit:test_UnauthorizedSigner_Revert() (gas: 39695) OCR2Base_transmit:test_WrongNumberOfSignatures_Revert() (gas: 20572) -OffRamp_afterOC3ConfigSet:test_afterOCR3ConfigSet_SignatureVerificationDisabled_Revert() (gas: 6056933) -OffRamp_applySourceChainConfigUpdates:test_AddMultipleChains_Success() (gas: 468074) -OffRamp_applySourceChainConfigUpdates:test_AddNewChain_Success() (gas: 99238) -OffRamp_applySourceChainConfigUpdates:test_ApplyZeroUpdates_Success() (gas: 12414) -OffRamp_applySourceChainConfigUpdates:test_ReplaceExistingChainOnRamp_Revert() (gas: 93240) -OffRamp_applySourceChainConfigUpdates:test_ReplaceExistingChain_Success() (gas: 109971) -OffRamp_applySourceChainConfigUpdates:test_RouterAddress_Revert() (gas: 13288) -OffRamp_applySourceChainConfigUpdates:test_ZeroOnRampAddress_Revert() (gas: 18022) -OffRamp_applySourceChainConfigUpdates:test_ZeroSourceChainSelector_Revert() (gas: 15371) -OffRamp_batchExecute:test_MultipleReportsDifferentChainsSkipCursedChain_Success() (gas: 177419) -OffRamp_batchExecute:test_MultipleReportsDifferentChains_Success() (gas: 334109) -OffRamp_batchExecute:test_MultipleReportsSameChain_Success() (gas: 277477) -OffRamp_batchExecute:test_MultipleReportsSkipDuplicate_Success() (gas: 168556) -OffRamp_batchExecute:test_OutOfBoundsGasLimitsAccess_Revert() (gas: 188490) -OffRamp_batchExecute:test_SingleReport_Success() (gas: 156460) -OffRamp_batchExecute:test_Unhealthy_Success() (gas: 572587) -OffRamp_batchExecute:test_ZeroReports_Revert() (gas: 10486) -OffRamp_ccipReceive:test_Reverts() (gas: 15770) -OffRamp_commit:test_FailedRMNVerification_Reverts() (gas: 64420) -OffRamp_commit:test_InvalidIntervalMinLargerThanMax_Revert() (gas: 67632) -OffRamp_commit:test_InvalidInterval_Revert() (gas: 59886) -OffRamp_commit:test_InvalidRootRevert() (gas: 58921) -OffRamp_commit:test_NoConfigWithOtherConfigPresent_Revert() (gas: 6661100) -OffRamp_commit:test_NoConfig_Revert() (gas: 6244915) -OffRamp_commit:test_OnlyGasPriceUpdates_Success() (gas: 112473) -OffRamp_commit:test_OnlyPriceUpdateStaleReport_Revert() (gas: 120501) -OffRamp_commit:test_OnlyTokenPriceUpdates_Success() (gas: 112494) -OffRamp_commit:test_PriceSequenceNumberCleared_Success() (gas: 353540) -OffRamp_commit:test_ReportAndPriceUpdate_Success() (gas: 164945) -OffRamp_commit:test_ReportOnlyRootSuccess_gas() (gas: 139934) -OffRamp_commit:test_RootAlreadyCommitted_Revert() (gas: 141925) -OffRamp_commit:test_SourceChainNotEnabled_Revert() (gas: 59208) -OffRamp_commit:test_StaleReportWithRoot_Success() (gas: 232957) -OffRamp_commit:test_UnauthorizedTransmitter_Revert() (gas: 121451) -OffRamp_commit:test_Unhealthy_Revert() (gas: 57938) -OffRamp_commit:test_ValidPriceUpdateThenStaleReportWithRoot_Success() (gas: 206779) -OffRamp_commit:test_ZeroEpochAndRound_Revert() (gas: 51273) -OffRamp_constructor:test_Constructor_Success() (gas: 6244332) -OffRamp_constructor:test_SourceChainSelector_Revert() (gas: 136075) -OffRamp_constructor:test_ZeroChainSelector_Revert() (gas: 103518) -OffRamp_constructor:test_ZeroNonceManager_Revert() (gas: 101418) -OffRamp_constructor:test_ZeroOnRampAddress_Revert() (gas: 138723) -OffRamp_constructor:test_ZeroRMNRemote_Revert() (gas: 101338) -OffRamp_constructor:test_ZeroTokenAdminRegistry_Revert() (gas: 101376) -OffRamp_execute:test_IncorrectArrayType_Revert() (gas: 17505) -OffRamp_execute:test_LargeBatch_Success() (gas: 3391111) -OffRamp_execute:test_MultipleReportsWithPartialValidationFailures_Success() (gas: 372353) -OffRamp_execute:test_MultipleReports_Success() (gas: 299779) -OffRamp_execute:test_NoConfigWithOtherConfigPresent_Revert() (gas: 7069102) -OffRamp_execute:test_NoConfig_Revert() (gas: 6293902) -OffRamp_execute:test_NonArray_Revert() (gas: 27787) -OffRamp_execute:test_SingleReport_Success() (gas: 175730) -OffRamp_execute:test_UnauthorizedTransmitter_Revert() (gas: 147970) -OffRamp_execute:test_WrongConfigWithSigners_Revert() (gas: 7071845) -OffRamp_execute:test_ZeroReports_Revert() (gas: 17227) -OffRamp_executeSingleMessage:test_MessageSender_Revert() (gas: 18682) -OffRamp_executeSingleMessage:test_NonContractWithTokens_Success() (gas: 247849) -OffRamp_executeSingleMessage:test_NonContract_Success() (gas: 21002) -OffRamp_executeSingleMessage:test_TokenHandlingError_Revert() (gas: 208927) -OffRamp_executeSingleMessage:test_ZeroGasDONExecution_Revert() (gas: 49237) -OffRamp_executeSingleMessage:test_executeSingleMessage_NoTokens_Success() (gas: 48725) -OffRamp_executeSingleMessage:test_executeSingleMessage_WithFailingValidationNoRouterCall_Revert() (gas: 228696) -OffRamp_executeSingleMessage:test_executeSingleMessage_WithFailingValidation_Revert() (gas: 85260) -OffRamp_executeSingleMessage:test_executeSingleMessage_WithTokens_Success() (gas: 279681) -OffRamp_executeSingleMessage:test_executeSingleMessage_WithValidation_Success() (gas: 91512) -OffRamp_executeSingleReport:test_DisabledSourceChain_Revert() (gas: 28226) -OffRamp_executeSingleReport:test_EmptyReport_Revert() (gas: 21832) -OffRamp_executeSingleReport:test_InvalidSourcePoolAddress_Success() (gas: 499180) -OffRamp_executeSingleReport:test_ManualExecutionNotYetEnabled_Revert() (gas: 48620) -OffRamp_executeSingleReport:test_MismatchingDestChainSelector_Revert() (gas: 33892) -OffRamp_executeSingleReport:test_MismatchingOnRampRoot_Revert() (gas: 154020) -OffRamp_executeSingleReport:test_NonExistingSourceChain_Revert() (gas: 28449) -OffRamp_executeSingleReport:test_ReceiverError_Success() (gas: 188116) -OffRamp_executeSingleReport:test_RetryFailedMessageWithoutManualExecution_Revert() (gas: 198571) -OffRamp_executeSingleReport:test_RootNotCommitted_Revert() (gas: 41037) -OffRamp_executeSingleReport:test_RouterYULCall_Revert() (gas: 447967) -OffRamp_executeSingleReport:test_SingleMessageNoTokensOtherChain_Success() (gas: 248847) -OffRamp_executeSingleReport:test_SingleMessageNoTokensUnordered_Success() (gas: 193195) -OffRamp_executeSingleReport:test_SingleMessageNoTokens_Success() (gas: 212816) -OffRamp_executeSingleReport:test_SingleMessageToNonCCIPReceiver_Success() (gas: 260215) -OffRamp_executeSingleReport:test_SingleMessagesNoTokensSuccess_gas() (gas: 141403) -OffRamp_executeSingleReport:test_SkippedIncorrectNonceStillExecutes_Success() (gas: 423165) -OffRamp_executeSingleReport:test_SkippedIncorrectNonce_Success() (gas: 59057) -OffRamp_executeSingleReport:test_TokenDataMismatch_Revert() (gas: 74155) -OffRamp_executeSingleReport:test_TwoMessagesWithTokensAndGE_Success() (gas: 599623) -OffRamp_executeSingleReport:test_TwoMessagesWithTokensSuccess_gas() (gas: 543529) -OffRamp_executeSingleReport:test_UnexpectedTokenData_Revert() (gas: 33663) -OffRamp_executeSingleReport:test_UnhealthySingleChainCurse_Revert() (gas: 568482) -OffRamp_executeSingleReport:test_Unhealthy_Success() (gas: 568496) -OffRamp_executeSingleReport:test_WithCurseOnAnotherSourceChain_Success() (gas: 473801) -OffRamp_executeSingleReport:test__execute_SkippedAlreadyExecutedMessageUnordered_Success() (gas: 135923) -OffRamp_executeSingleReport:test__execute_SkippedAlreadyExecutedMessage_Success() (gas: 165161) -OffRamp_getExecutionState:test_FillExecutionState_Success() (gas: 3737630) -OffRamp_getExecutionState:test_GetDifferentChainExecutionState_Success() (gas: 119064) -OffRamp_getExecutionState:test_GetExecutionState_Success() (gas: 88148) -OffRamp_manuallyExecute:test_ManualExecGasLimitMismatchSingleReport_Revert() (gas: 79036) -OffRamp_manuallyExecute:test_manuallyExecute_DestinationGasAmountCountMismatch_Revert() (gas: 78924) -OffRamp_manuallyExecute:test_manuallyExecute_DoesNotRevertIfUntouched_Success() (gas: 172960) -OffRamp_manuallyExecute:test_manuallyExecute_FailedTx_Revert() (gas: 213287) -OffRamp_manuallyExecute:test_manuallyExecute_ForkedChain_Revert() (gas: 26909) -OffRamp_manuallyExecute:test_manuallyExecute_GasLimitMismatchMultipleReports_Revert() (gas: 159537) -OffRamp_manuallyExecute:test_manuallyExecute_InvalidReceiverExecutionGasLimit_Revert() (gas: 27468) -OffRamp_manuallyExecute:test_manuallyExecute_InvalidTokenGasOverride_Revert() (gas: 58874) -OffRamp_manuallyExecute:test_manuallyExecute_LowGasLimit_Success() (gas: 532013) -OffRamp_manuallyExecute:test_manuallyExecute_MultipleReportsWithSingleCursedLane_Revert() (gas: 317521) -OffRamp_manuallyExecute:test_manuallyExecute_ReentrancyFails_Success() (gas: 2390649) -OffRamp_manuallyExecute:test_manuallyExecute_SourceChainSelectorMismatch_Revert() (gas: 164912) -OffRamp_manuallyExecute:test_manuallyExecute_Success() (gas: 226245) -OffRamp_manuallyExecute:test_manuallyExecute_WithGasOverride_Success() (gas: 226785) -OffRamp_manuallyExecute:test_manuallyExecute_WithMultiReportGasOverride_Success() (gas: 778479) -OffRamp_manuallyExecute:test_manuallyExecute_WithPartialMessages_Success() (gas: 346205) -OffRamp_releaseOrMintSingleToken:test__releaseOrMintSingleToken_NotACompatiblePool_Revert() (gas: 40239) -OffRamp_releaseOrMintSingleToken:test__releaseOrMintSingleToken_Success() (gas: 105265) -OffRamp_releaseOrMintSingleToken:test__releaseOrMintSingleToken_TokenHandlingError_transfer_Revert() (gas: 86476) -OffRamp_releaseOrMintSingleToken:test_releaseOrMintToken_InvalidDataLength_Revert() (gas: 37975) -OffRamp_releaseOrMintSingleToken:test_releaseOrMintToken_ReleaseOrMintBalanceMismatch_Revert() (gas: 95515) -OffRamp_releaseOrMintSingleToken:test_releaseOrMintToken_TokenHandlingError_BalanceOf_Revert() (gas: 40961) -OffRamp_releaseOrMintSingleToken:test_releaseOrMintToken_skip_ReleaseOrMintBalanceMismatch_if_pool_Revert() (gas: 87721) -OffRamp_releaseOrMintTokens:test_TokenHandlingError_Reverts() (gas: 164647) -OffRamp_releaseOrMintTokens:test__releaseOrMintTokens_PoolIsNotAPool_Reverts() (gas: 25146) -OffRamp_releaseOrMintTokens:test_releaseOrMintTokens_InvalidDataLengthReturnData_Revert() (gas: 64911) -OffRamp_releaseOrMintTokens:test_releaseOrMintTokens_InvalidEVMAddress_Revert() (gas: 41883) -OffRamp_releaseOrMintTokens:test_releaseOrMintTokens_PoolDoesNotSupportDest_Reverts() (gas: 81999) -OffRamp_releaseOrMintTokens:test_releaseOrMintTokens_Success() (gas: 176661) -OffRamp_releaseOrMintTokens:test_releaseOrMintTokens_WithGasOverride_Success() (gas: 178641) -OffRamp_releaseOrMintTokens:test_releaseOrMintTokens_destDenominatedDecimals_Success() (gas: 189850) -OffRamp_setDynamicConfig:test_FeeQuoterZeroAddress_Revert() (gas: 11189) -OffRamp_setDynamicConfig:test_NonOwner_Revert() (gas: 13793) -OffRamp_setDynamicConfig:test_SetDynamicConfigWithValidator_Success() (gas: 46198) -OffRamp_setDynamicConfig:test_SetDynamicConfig_Success() (gas: 24173) -OffRamp_trialExecute:test_RateLimitError_Success() (gas: 225140) -OffRamp_trialExecute:test_TokenHandlingErrorIsCaught_Success() (gas: 233762) -OffRamp_trialExecute:test_TokenPoolIsNotAContract_Success() (gas: 310735) -OffRamp_trialExecute:test_trialExecute_Success() (gas: 283386) -OnRampTokenPoolReentrancy:test_OnRampTokenPoolReentrancy_Success() (gas: 387975) -OnRamp_applyAllowListUpdates:test_applyAllowListUpdates_InvalidAllowListRequestDisabledAllowListWithAdds() (gas: 17746) -OnRamp_applyAllowListUpdates:test_applyAllowListUpdates_Revert() (gas: 66535) -OnRamp_applyAllowListUpdates:test_applyAllowListUpdates_Success() (gas: 323600) +OffRamp_afterOC3ConfigSet:test_afterOCR3ConfigSet_SignatureVerificationDisabled_Revert() (gas: 5983389) +OffRamp_applySourceChainConfigUpdates:test_AddMultipleChains_Success() (gas: 468168) +OffRamp_applySourceChainConfigUpdates:test_AddNewChain_Success() (gas: 99296) +OffRamp_applySourceChainConfigUpdates:test_ApplyZeroUpdates_Success() (gas: 12472) +OffRamp_applySourceChainConfigUpdates:test_InvalidOnRampUpdate_Revert() (gas: 204676) +OffRamp_applySourceChainConfigUpdates:test_ReplaceExistingChainOnRamp_Success() (gas: 101379) +OffRamp_applySourceChainConfigUpdates:test_ReplaceExistingChain_Success() (gas: 110796) +OffRamp_applySourceChainConfigUpdates:test_RouterAddress_Revert() (gas: 13418) +OffRamp_applySourceChainConfigUpdates:test_ZeroOnRampAddress_Revert() (gas: 72638) +OffRamp_applySourceChainConfigUpdates:test_ZeroSourceChainSelector_Revert() (gas: 15462) +OffRamp_batchExecute:test_MultipleReportsDifferentChainsSkipCursedChain_Success() (gas: 179216) +OffRamp_batchExecute:test_MultipleReportsDifferentChains_Success() (gas: 337235) +OffRamp_batchExecute:test_MultipleReportsSameChain_Success() (gas: 280603) +OffRamp_batchExecute:test_MultipleReportsSkipDuplicate_Success() (gas: 170311) +OffRamp_batchExecute:test_OutOfBoundsGasLimitsAccess_Revert() (gas: 190845) +OffRamp_batchExecute:test_SingleReport_Success() (gas: 157648) +OffRamp_batchExecute:test_Unhealthy_Success() (gas: 578050) +OffRamp_batchExecute:test_ZeroReports_Revert() (gas: 10576) +OffRamp_ccipReceive:test_Reverts() (gas: 15782) +OffRamp_commit:test_CommitOnRampMismatch_Revert() (gas: 92492) +OffRamp_commit:test_FailedRMNVerification_Reverts() (gas: 63748) +OffRamp_commit:test_InvalidIntervalMinLargerThanMax_Revert() (gas: 67769) +OffRamp_commit:test_InvalidInterval_Revert() (gas: 63936) +OffRamp_commit:test_InvalidRootRevert() (gas: 63009) +OffRamp_commit:test_NoConfigWithOtherConfigPresent_Revert() (gas: 6587105) +OffRamp_commit:test_NoConfig_Revert() (gas: 6170887) +OffRamp_commit:test_OnlyGasPriceUpdates_Success() (gas: 112719) +OffRamp_commit:test_OnlyPriceUpdateStaleReport_Revert() (gas: 120939) +OffRamp_commit:test_OnlyTokenPriceUpdates_Success() (gas: 112740) +OffRamp_commit:test_PriceSequenceNumberCleared_Success() (gas: 354230) +OffRamp_commit:test_ReportAndPriceUpdate_Success() (gas: 163890) +OffRamp_commit:test_ReportOnlyRootSuccess_gas() (gas: 138880) +OffRamp_commit:test_RootAlreadyCommitted_Revert() (gas: 145911) +OffRamp_commit:test_SourceChainNotEnabled_Revert() (gas: 59492) +OffRamp_commit:test_StaleReportWithRoot_Success() (gas: 231183) +OffRamp_commit:test_UnauthorizedTransmitter_Revert() (gas: 124994) +OffRamp_commit:test_Unhealthy_Revert() (gas: 58244) +OffRamp_commit:test_ValidPriceUpdateThenStaleReportWithRoot_Success() (gas: 205947) +OffRamp_commit:test_ZeroEpochAndRound_Revert() (gas: 51483) +OffRamp_constructor:test_Constructor_Success() (gas: 6170587) +OffRamp_constructor:test_SourceChainSelector_Revert() (gas: 135943) +OffRamp_constructor:test_ZeroChainSelector_Revert() (gas: 103386) +OffRamp_constructor:test_ZeroNonceManager_Revert() (gas: 101280) +OffRamp_constructor:test_ZeroOnRampAddress_Revert() (gas: 161468) +OffRamp_constructor:test_ZeroRMNRemote_Revert() (gas: 101200) +OffRamp_constructor:test_ZeroTokenAdminRegistry_Revert() (gas: 101238) +OffRamp_execute:test_IncorrectArrayType_Revert() (gas: 17610) +OffRamp_execute:test_LargeBatch_Success() (gas: 3419182) +OffRamp_execute:test_MultipleReportsWithPartialValidationFailures_Success() (gas: 375374) +OffRamp_execute:test_MultipleReports_Success() (gas: 302902) +OffRamp_execute:test_NoConfigWithOtherConfigPresent_Revert() (gas: 6996650) +OffRamp_execute:test_NoConfig_Revert() (gas: 6221351) +OffRamp_execute:test_NonArray_Revert() (gas: 27961) +OffRamp_execute:test_SingleReport_Success() (gas: 176939) +OffRamp_execute:test_UnauthorizedTransmitter_Revert() (gas: 149068) +OffRamp_execute:test_WrongConfigWithSigners_Revert() (gas: 6999426) +OffRamp_execute:test_ZeroReports_Revert() (gas: 17293) +OffRamp_executeSingleMessage:test_MessageSender_Revert() (gas: 18874) +OffRamp_executeSingleMessage:test_NonContractWithTokens_Success() (gas: 248743) +OffRamp_executeSingleMessage:test_NonContract_Success() (gas: 21206) +OffRamp_executeSingleMessage:test_TokenHandlingError_Revert() (gas: 209803) +OffRamp_executeSingleMessage:test_ZeroGasDONExecution_Revert() (gas: 49525) +OffRamp_executeSingleMessage:test_executeSingleMessage_NoTokens_Success() (gas: 49013) +OffRamp_executeSingleMessage:test_executeSingleMessage_WithFailingValidationNoRouterCall_Revert() (gas: 218730) +OffRamp_executeSingleMessage:test_executeSingleMessage_WithFailingValidation_Revert() (gas: 85512) +OffRamp_executeSingleMessage:test_executeSingleMessage_WithTokens_Success() (gas: 280659) +OffRamp_executeSingleMessage:test_executeSingleMessage_WithValidation_Success() (gas: 91830) +OffRamp_executeSingleReport:test_DisabledSourceChain_Revert() (gas: 28730) +OffRamp_executeSingleReport:test_EmptyReport_Revert() (gas: 22018) +OffRamp_executeSingleReport:test_InvalidSourcePoolAddress_Success() (gas: 503897) +OffRamp_executeSingleReport:test_ManualExecutionNotYetEnabled_Revert() (gas: 49358) +OffRamp_executeSingleReport:test_MismatchingDestChainSelector_Revert() (gas: 34462) +OffRamp_executeSingleReport:test_NonExistingSourceChain_Revert() (gas: 28977) +OffRamp_executeSingleReport:test_ReceiverError_Success() (gas: 189608) +OffRamp_executeSingleReport:test_RetryFailedMessageWithoutManualExecution_Revert() (gas: 200597) +OffRamp_executeSingleReport:test_RootNotCommitted_Revert() (gas: 41727) +OffRamp_executeSingleReport:test_RouterYULCall_Revert() (gas: 449309) +OffRamp_executeSingleReport:test_SingleMessageNoTokensOtherChain_Success() (gas: 251345) +OffRamp_executeSingleReport:test_SingleMessageNoTokensUnordered_Success() (gas: 196311) +OffRamp_executeSingleReport:test_SingleMessageNoTokens_Success() (gas: 215860) +OffRamp_executeSingleReport:test_SingleMessageToNonCCIPReceiver_Success() (gas: 251303) +OffRamp_executeSingleReport:test_SingleMessagesNoTokensSuccess_gas() (gas: 142769) +OffRamp_executeSingleReport:test_SkippedIncorrectNonceStillExecutes_Success() (gas: 426988) +OffRamp_executeSingleReport:test_SkippedIncorrectNonce_Success() (gas: 59801) +OffRamp_executeSingleReport:test_TokenDataMismatch_Revert() (gas: 74893) +OffRamp_executeSingleReport:test_TwoMessagesWithTokensAndGE_Success() (gas: 605297) +OffRamp_executeSingleReport:test_TwoMessagesWithTokensSuccess_gas() (gas: 548785) +OffRamp_executeSingleReport:test_UnexpectedTokenData_Revert() (gas: 34181) +OffRamp_executeSingleReport:test_UnhealthySingleChainCurse_Revert() (gas: 575250) +OffRamp_executeSingleReport:test_Unhealthy_Success() (gas: 575264) +OffRamp_executeSingleReport:test_WithCurseOnAnotherSourceChain_Success() (gas: 478001) +OffRamp_executeSingleReport:test__execute_SkippedAlreadyExecutedMessageUnordered_Success() (gas: 138039) +OffRamp_executeSingleReport:test__execute_SkippedAlreadyExecutedMessage_Success() (gas: 167264) +OffRamp_getExecutionState:test_FillExecutionState_Success() (gas: 3894518) +OffRamp_getExecutionState:test_GetDifferentChainExecutionState_Success() (gas: 120480) +OffRamp_getExecutionState:test_GetExecutionState_Success() (gas: 89540) +OffRamp_manuallyExecute:test_ManualExecGasLimitMismatchSingleReport_Revert() (gas: 81676) +OffRamp_manuallyExecute:test_manuallyExecute_DestinationGasAmountCountMismatch_Revert() (gas: 80532) +OffRamp_manuallyExecute:test_manuallyExecute_DoesNotRevertIfUntouched_Success() (gas: 174130) +OffRamp_manuallyExecute:test_manuallyExecute_FailedTx_Revert() (gas: 215543) +OffRamp_manuallyExecute:test_manuallyExecute_ForkedChain_Revert() (gas: 27365) +OffRamp_manuallyExecute:test_manuallyExecute_GasLimitMismatchMultipleReports_Revert() (gas: 165597) +OffRamp_manuallyExecute:test_manuallyExecute_InvalidReceiverExecutionGasLimit_Revert() (gas: 27936) +OffRamp_manuallyExecute:test_manuallyExecute_InvalidTokenGasOverride_Revert() (gas: 59666) +OffRamp_manuallyExecute:test_manuallyExecute_LowGasLimit_Success() (gas: 534293) +OffRamp_manuallyExecute:test_manuallyExecute_MultipleReportsWithSingleCursedLane_Revert() (gas: 321217) +OffRamp_manuallyExecute:test_manuallyExecute_ReentrancyFails_Success() (gas: 2393253) +OffRamp_manuallyExecute:test_manuallyExecute_SourceChainSelectorMismatch_Revert() (gas: 166568) +OffRamp_manuallyExecute:test_manuallyExecute_Success() (gas: 228525) +OffRamp_manuallyExecute:test_manuallyExecute_WithGasOverride_Success() (gas: 229065) +OffRamp_manuallyExecute:test_manuallyExecute_WithMultiReportGasOverride_Success() (gas: 788283) +OffRamp_manuallyExecute:test_manuallyExecute_WithPartialMessages_Success() (gas: 350237) +OffRamp_releaseOrMintSingleToken:test__releaseOrMintSingleToken_NotACompatiblePool_Revert() (gas: 40611) +OffRamp_releaseOrMintSingleToken:test__releaseOrMintSingleToken_Success() (gas: 105733) +OffRamp_releaseOrMintSingleToken:test__releaseOrMintSingleToken_TokenHandlingError_transfer_Revert() (gas: 86956) +OffRamp_releaseOrMintSingleToken:test_releaseOrMintToken_InvalidDataLength_Revert() (gas: 38380) +OffRamp_releaseOrMintSingleToken:test_releaseOrMintToken_ReleaseOrMintBalanceMismatch_Revert() (gas: 95983) +OffRamp_releaseOrMintSingleToken:test_releaseOrMintToken_TokenHandlingError_BalanceOf_Revert() (gas: 41378) +OffRamp_releaseOrMintSingleToken:test_releaseOrMintToken_skip_ReleaseOrMintBalanceMismatch_if_pool_Revert() (gas: 88177) +OffRamp_releaseOrMintTokens:test_TokenHandlingError_Reverts() (gas: 165433) +OffRamp_releaseOrMintTokens:test__releaseOrMintTokens_PoolIsNotAPool_Reverts() (gas: 25404) +OffRamp_releaseOrMintTokens:test_releaseOrMintTokens_InvalidDataLengthReturnData_Revert() (gas: 65574) +OffRamp_releaseOrMintTokens:test_releaseOrMintTokens_InvalidEVMAddress_Revert() (gas: 42279) +OffRamp_releaseOrMintTokens:test_releaseOrMintTokens_PoolDoesNotSupportDest_Reverts() (gas: 82668) +OffRamp_releaseOrMintTokens:test_releaseOrMintTokens_Success() (gas: 177447) +OffRamp_releaseOrMintTokens:test_releaseOrMintTokens_WithGasOverride_Success() (gas: 179427) +OffRamp_releaseOrMintTokens:test_releaseOrMintTokens_destDenominatedDecimals_Success() (gas: 190636) +OffRamp_setDynamicConfig:test_FeeQuoterZeroAddress_Revert() (gas: 11201) +OffRamp_setDynamicConfig:test_NonOwner_Revert() (gas: 13811) +OffRamp_setDynamicConfig:test_SetDynamicConfigWithValidator_Success() (gas: 46216) +OffRamp_setDynamicConfig:test_SetDynamicConfig_Success() (gas: 24191) +OffRamp_trialExecute:test_RateLimitError_Success() (gas: 226586) +OffRamp_trialExecute:test_TokenHandlingErrorIsCaught_Success() (gas: 235208) +OffRamp_trialExecute:test_TokenPoolIsNotAContract_Success() (gas: 314371) +OffRamp_trialExecute:test_trialExecute_Success() (gas: 284928) +OnRampTokenPoolReentrancy:test_OnRampTokenPoolReentrancy_Success() (gas: 388215) +OnRamp_applyAllowListUpdates:test_applyAllowListUpdates_InvalidAllowListRequestDisabledAllowListWithAdds() (gas: 17758) +OnRamp_applyAllowListUpdates:test_applyAllowListUpdates_Revert() (gas: 66553) +OnRamp_applyAllowListUpdates:test_applyAllowListUpdates_Success() (gas: 323605) OnRamp_applyDestChainConfigUpdates:test_ApplyDestChainConfigUpdates_Success() (gas: 64546) OnRamp_applyDestChainConfigUpdates:test_ApplyDestChainConfigUpdates_WithInvalidChainSelector_Revert() (gas: 13254) -OnRamp_constructor:test_Constructor_InvalidConfigChainSelectorEqZero_Revert() (gas: 94831) -OnRamp_constructor:test_Constructor_InvalidConfigNonceManagerEqAddressZero_Revert() (gas: 92765) -OnRamp_constructor:test_Constructor_InvalidConfigRMNProxyEqAddressZero_Revert() (gas: 97791) -OnRamp_constructor:test_Constructor_InvalidConfigTokenAdminRegistryEqAddressZero_Revert() (gas: 92823) -OnRamp_constructor:test_Constructor_Success() (gas: 2827622) +OnRamp_constructor:test_Constructor_InvalidConfigChainSelectorEqZero_Revert() (gas: 94823) +OnRamp_constructor:test_Constructor_InvalidConfigNonceManagerEqAddressZero_Revert() (gas: 92757) +OnRamp_constructor:test_Constructor_InvalidConfigRMNProxyEqAddressZero_Revert() (gas: 97783) +OnRamp_constructor:test_Constructor_InvalidConfigTokenAdminRegistryEqAddressZero_Revert() (gas: 92815) +OnRamp_constructor:test_Constructor_Success() (gas: 2817599) OnRamp_forwardFromRouter:test_ForwardFromRouterExtraArgsV2AllowOutOfOrderTrue_Success() (gas: 114939) OnRamp_forwardFromRouter:test_ForwardFromRouterExtraArgsV2_Success() (gas: 145710) OnRamp_forwardFromRouter:test_ForwardFromRouterSuccessCustomExtraArgs() (gas: 145313) OnRamp_forwardFromRouter:test_ForwardFromRouterSuccessEmptyExtraArgs() (gas: 143538) OnRamp_forwardFromRouter:test_ForwardFromRouterSuccessLegacyExtraArgs() (gas: 145538) OnRamp_forwardFromRouter:test_ForwardFromRouter_Success() (gas: 144917) -OnRamp_forwardFromRouter:test_ForwardFromRouter_Success_ConfigurableSourceRouter() (gas: 140243) +OnRamp_forwardFromRouter:test_ForwardFromRouter_Success_ConfigurableSourceRouter() (gas: 140249) OnRamp_forwardFromRouter:test_InvalidExtraArgsTag_Revert() (gas: 28824) -OnRamp_forwardFromRouter:test_MessageValidationError_Revert() (gas: 138926) +OnRamp_forwardFromRouter:test_MessageValidationError_Revert() (gas: 138938) OnRamp_forwardFromRouter:test_MesssageFeeTooHigh_Revert() (gas: 26924) OnRamp_forwardFromRouter:test_MultiCannotSendZeroTokens_Revert() (gas: 74139) OnRamp_forwardFromRouter:test_OriginalSender_Revert() (gas: 12951) -OnRamp_forwardFromRouter:test_Paused_Revert() (gas: 37326) -OnRamp_forwardFromRouter:test_Permissions_Revert() (gas: 18278) +OnRamp_forwardFromRouter:test_Paused_Revert() (gas: 37338) +OnRamp_forwardFromRouter:test_Permissions_Revert() (gas: 18284) OnRamp_forwardFromRouter:test_ShouldIncrementNonceOnlyOnOrdered_Success() (gas: 184562) OnRamp_forwardFromRouter:test_ShouldIncrementSeqNumAndNonce_Success() (gas: 210880) OnRamp_forwardFromRouter:test_ShouldStoreLinkFees() (gas: 124838) OnRamp_forwardFromRouter:test_ShouldStoreNonLinkFees() (gas: 141462) -OnRamp_forwardFromRouter:test_SourceTokenDataTooLarge_Revert() (gas: 3829289) +OnRamp_forwardFromRouter:test_SourceTokenDataTooLarge_Revert() (gas: 3769244) OnRamp_forwardFromRouter:test_UnAllowedOriginalSender_Revert() (gas: 18714) -OnRamp_forwardFromRouter:test_UnsupportedToken_Revert() (gas: 110907) -OnRamp_forwardFromRouter:test_forwardFromRouter_UnsupportedToken_Revert() (gas: 76229) -OnRamp_forwardFromRouter:test_forwardFromRouter_WithValidation_Success() (gas: 281171) -OnRamp_getFee:test_EmptyMessage_Success() (gas: 97722) -OnRamp_getFee:test_EnforceOutOfOrder_Revert() (gas: 64203) -OnRamp_getFee:test_GetFeeOfZeroForTokenMessage_Success() (gas: 85422) -OnRamp_getFee:test_NotAFeeTokenButPricedToken_Revert() (gas: 34972) -OnRamp_getFee:test_SingleTokenMessage_Success() (gas: 112713) -OnRamp_getFee:test_Unhealthy_Revert() (gas: 17009) +OnRamp_forwardFromRouter:test_UnsupportedToken_Revert() (gas: 110919) +OnRamp_forwardFromRouter:test_forwardFromRouter_UnsupportedToken_Revert() (gas: 76235) +OnRamp_forwardFromRouter:test_forwardFromRouter_WithValidation_Success() (gas: 281240) +OnRamp_getFee:test_EmptyMessage_Success() (gas: 97734) +OnRamp_getFee:test_EnforceOutOfOrder_Revert() (gas: 64215) +OnRamp_getFee:test_GetFeeOfZeroForTokenMessage_Success() (gas: 85428) +OnRamp_getFee:test_NotAFeeTokenButPricedToken_Revert() (gas: 34978) +OnRamp_getFee:test_SingleTokenMessage_Success() (gas: 112749) +OnRamp_getFee:test_Unhealthy_Revert() (gas: 17021) OnRamp_getSupportedTokens:test_GetSupportedTokens_Revert() (gas: 10438) OnRamp_getTokenPool:test_GetTokenPool_Success() (gas: 35204) OnRamp_setDynamicConfig:test_SetConfigInvalidConfigFeeAggregatorEqAddressZero_Revert() (gas: 11420) OnRamp_setDynamicConfig:test_SetConfigInvalidConfigFeeQuoterEqAddressZero_Revert() (gas: 13019) OnRamp_setDynamicConfig:test_SetConfigInvalidConfig_Revert() (gas: 11377) -OnRamp_setDynamicConfig:test_SetConfigOnlyOwner_Revert() (gas: 16409) +OnRamp_setDynamicConfig:test_SetConfigOnlyOwner_Revert() (gas: 16421) OnRamp_setDynamicConfig:test_SetDynamicConfig_Success() (gas: 55330) OnRamp_withdrawFeeTokens:test_WithdrawFeeTokens_Success() (gas: 97235) -PingPong_ccipReceive:test_CcipReceive_Success() (gas: 150578) -PingPong_plumbing:test_OutOfOrderExecution_Success() (gas: 20280) -PingPong_plumbing:test_Pausing_Success() (gas: 17780) -PingPong_startPingPong:test_StartPingPong_With_OOO_Success() (gas: 160987) -PingPong_startPingPong:test_StartPingPong_With_Sequenced_Ordered_Success() (gas: 180396) +PingPong_ccipReceive:test_CcipReceive_Success() (gas: 150719) +PingPong_plumbing:test_OutOfOrderExecution_Success() (gas: 20286) +PingPong_plumbing:test_Pausing_Success() (gas: 17786) +PingPong_startPingPong:test_StartPingPong_With_OOO_Success() (gas: 161185) +PingPong_startPingPong:test_StartPingPong_With_Sequenced_Ordered_Success() (gas: 180603) RMNHome:test() (gas: 186) RMN_constructor:test_Constructor_Success() (gas: 48874) -RMN_getRecordedCurseRelatedOps:test_OpsPostDeployment() (gas: 19690) -RMN_lazyVoteToCurseUpdate_Benchmark:test_VoteToCurseLazilyRetain3VotersUponConfigChange_gas() (gas: 152263) -RMN_ownerUnbless:test_Unbless_Success() (gas: 74882) -RMN_ownerUnvoteToCurse:test_CanBlessAndCurseAfterGlobalCurseIsLifted() (gas: 471457) -RMN_ownerUnvoteToCurse:test_IsIdempotent() (gas: 398096) +RMN_getRecordedCurseRelatedOps:test_OpsPostDeployment() (gas: 19696) +RMN_lazyVoteToCurseUpdate_Benchmark:test_VoteToCurseLazilyRetain3VotersUponConfigChange_gas() (gas: 152287) +RMN_ownerUnbless:test_Unbless_Success() (gas: 74900) +RMN_ownerUnvoteToCurse:test_CanBlessAndCurseAfterGlobalCurseIsLifted() (gas: 471574) +RMN_ownerUnvoteToCurse:test_IsIdempotent() (gas: 398222) RMN_ownerUnvoteToCurse:test_NonOwner_Revert() (gas: 18669) -RMN_ownerUnvoteToCurse:test_OwnerUnvoteToCurseSuccess_gas() (gas: 357751) -RMN_ownerUnvoteToCurse:test_UnknownVoter_Revert() (gas: 33034) -RMN_ownerUnvoteToCurse_Benchmark:test_OwnerUnvoteToCurse_1Voter_LiftsCurse_gas() (gas: 262211) +RMN_ownerUnvoteToCurse:test_OwnerUnvoteToCurseSuccess_gas() (gas: 357841) +RMN_ownerUnvoteToCurse:test_UnknownVoter_Revert() (gas: 33058) +RMN_ownerUnvoteToCurse_Benchmark:test_OwnerUnvoteToCurse_1Voter_LiftsCurse_gas() (gas: 262247) RMN_permaBlessing:test_PermaBlessing() (gas: 202691) RMN_setConfig:test_BlessVoterIsZeroAddress_Revert() (gas: 15494) RMN_setConfig:test_EitherThresholdIsZero_Revert() (gas: 21095) -RMN_setConfig:test_NonOwner_Revert() (gas: 14719) +RMN_setConfig:test_NonOwner_Revert() (gas: 14725) RMN_setConfig:test_RepeatedAddress_Revert() (gas: 18213) -RMN_setConfig:test_SetConfigSuccess_gas() (gas: 104080) +RMN_setConfig:test_SetConfigSuccess_gas() (gas: 104089) RMN_setConfig:test_TotalWeightsSmallerThanEachThreshold_Revert() (gas: 30173) -RMN_setConfig:test_VoteToBlessByEjectedVoter_Revert() (gas: 130363) +RMN_setConfig:test_VoteToBlessByEjectedVoter_Revert() (gas: 130377) RMN_setConfig:test_VotersLengthIsZero_Revert() (gas: 12128) RMN_setConfig:test_WeightIsZeroAddress_Revert() (gas: 15734) -RMN_setConfig_Benchmark_1:test_SetConfig_7Voters_gas() (gas: 659462) -RMN_setConfig_Benchmark_2:test_ResetConfig_7Voters_gas() (gas: 212484) -RMN_unvoteToCurse:test_InvalidCursesHash() (gas: 26412) -RMN_unvoteToCurse:test_OwnerSkips() (gas: 33813) -RMN_unvoteToCurse:test_OwnerSucceeds() (gas: 63981) -RMN_unvoteToCurse:test_UnauthorizedVoter() (gas: 47598) -RMN_unvoteToCurse:test_ValidCursesHash() (gas: 61127) -RMN_unvoteToCurse:test_VotersCantLiftCurseButOwnerCan() (gas: 628641) -RMN_voteToBless:test_Curse_Revert() (gas: 473252) -RMN_voteToBless:test_IsAlreadyBlessed_Revert() (gas: 115312) -RMN_voteToBless:test_RootSuccess() (gas: 558319) -RMN_voteToBless:test_SenderAlreadyVoted_Revert() (gas: 97177) +RMN_setConfig_Benchmark_1:test_SetConfig_7Voters_gas() (gas: 659495) +RMN_setConfig_Benchmark_2:test_ResetConfig_7Voters_gas() (gas: 212511) +RMN_unvoteToCurse:test_InvalidCursesHash() (gas: 26430) +RMN_unvoteToCurse:test_OwnerSkips() (gas: 33831) +RMN_unvoteToCurse:test_OwnerSucceeds() (gas: 63999) +RMN_unvoteToCurse:test_UnauthorizedVoter() (gas: 47634) +RMN_unvoteToCurse:test_ValidCursesHash() (gas: 61139) +RMN_unvoteToCurse:test_VotersCantLiftCurseButOwnerCan() (gas: 628827) +RMN_voteToBless:test_Curse_Revert() (gas: 473342) +RMN_voteToBless:test_IsAlreadyBlessed_Revert() (gas: 115339) +RMN_voteToBless:test_RootSuccess() (gas: 558469) +RMN_voteToBless:test_SenderAlreadyVoted_Revert() (gas: 97204) RMN_voteToBless:test_UnauthorizedVoter_Revert() (gas: 17096) -RMN_voteToBless_Benchmark:test_1RootSuccess_gas() (gas: 44703) -RMN_voteToBless_Benchmark:test_3RootSuccess_gas() (gas: 98673) -RMN_voteToBless_Benchmark:test_5RootSuccess_gas() (gas: 152581) -RMN_voteToBless_Blessed_Benchmark:test_1RootSuccessBecameBlessed_gas() (gas: 29673) -RMN_voteToBless_Blessed_Benchmark:test_1RootSuccess_gas() (gas: 27619) -RMN_voteToBless_Blessed_Benchmark:test_3RootSuccess_gas() (gas: 81611) -RMN_voteToBless_Blessed_Benchmark:test_5RootSuccess_gas() (gas: 135497) -RMN_voteToCurse:test_CurseOnlyWhenThresholdReached_Success() (gas: 1650405) -RMN_voteToCurse:test_EmptySubjects_Revert() (gas: 14031) -RMN_voteToCurse:test_EvenIfAlreadyCursed_Success() (gas: 534854) -RMN_voteToCurse:test_OwnerCanCurseAndUncurse() (gas: 399532) -RMN_voteToCurse:test_RepeatedSubject_Revert() (gas: 144336) -RMN_voteToCurse:test_ReusedCurseId_Revert() (gas: 146885) -RMN_voteToCurse:test_UnauthorizedVoter_Revert() (gas: 12630) -RMN_voteToCurse:test_VoteToCurse_NoCurse_Success() (gas: 187388) -RMN_voteToCurse:test_VoteToCurse_YesCurse_Success() (gas: 472854) -RMN_voteToCurse_2:test_VotesAreDroppedIfSubjectIsNotCursedDuringConfigChange() (gas: 370837) -RMN_voteToCurse_2:test_VotesAreRetainedIfSubjectIsCursedDuringConfigChange() (gas: 1153282) -RMN_voteToCurse_Benchmark_1:test_VoteToCurse_NewSubject_NewVoter_NoCurse_gas() (gas: 141079) -RMN_voteToCurse_Benchmark_1:test_VoteToCurse_NewSubject_NewVoter_YesCurse_gas() (gas: 165213) -RMN_voteToCurse_Benchmark_2:test_VoteToCurse_OldSubject_NewVoter_NoCurse_gas() (gas: 121413) -RMN_voteToCurse_Benchmark_2:test_VoteToCurse_OldSubject_OldVoter_NoCurse_gas() (gas: 98355) -RMN_voteToCurse_Benchmark_3:test_VoteToCurse_OldSubject_NewVoter_YesCurse_gas() (gas: 145748) +RMN_voteToBless_Benchmark:test_1RootSuccess_gas() (gas: 44706) +RMN_voteToBless_Benchmark:test_3RootSuccess_gas() (gas: 98682) +RMN_voteToBless_Benchmark:test_5RootSuccess_gas() (gas: 152596) +RMN_voteToBless_Blessed_Benchmark:test_1RootSuccessBecameBlessed_gas() (gas: 29676) +RMN_voteToBless_Blessed_Benchmark:test_1RootSuccess_gas() (gas: 27622) +RMN_voteToBless_Blessed_Benchmark:test_3RootSuccess_gas() (gas: 81620) +RMN_voteToBless_Blessed_Benchmark:test_5RootSuccess_gas() (gas: 135512) +RMN_voteToCurse:test_CurseOnlyWhenThresholdReached_Success() (gas: 1651029) +RMN_voteToCurse:test_EmptySubjects_Revert() (gas: 14055) +RMN_voteToCurse:test_EvenIfAlreadyCursed_Success() (gas: 535106) +RMN_voteToCurse:test_OwnerCanCurseAndUncurse() (gas: 399724) +RMN_voteToCurse:test_RepeatedSubject_Revert() (gas: 144396) +RMN_voteToCurse:test_ReusedCurseId_Revert() (gas: 146963) +RMN_voteToCurse:test_UnauthorizedVoter_Revert() (gas: 12660) +RMN_voteToCurse:test_VoteToCurse_NoCurse_Success() (gas: 187466) +RMN_voteToCurse:test_VoteToCurse_YesCurse_Success() (gas: 473034) +RMN_voteToCurse_2:test_VotesAreDroppedIfSubjectIsNotCursedDuringConfigChange() (gas: 370924) +RMN_voteToCurse_2:test_VotesAreRetainedIfSubjectIsCursedDuringConfigChange() (gas: 1153719) +RMN_voteToCurse_Benchmark_1:test_VoteToCurse_NewSubject_NewVoter_NoCurse_gas() (gas: 141103) +RMN_voteToCurse_Benchmark_1:test_VoteToCurse_NewSubject_NewVoter_YesCurse_gas() (gas: 165243) +RMN_voteToCurse_Benchmark_2:test_VoteToCurse_OldSubject_NewVoter_NoCurse_gas() (gas: 121431) +RMN_voteToCurse_Benchmark_2:test_VoteToCurse_OldSubject_OldVoter_NoCurse_gas() (gas: 98367) +RMN_voteToCurse_Benchmark_3:test_VoteToCurse_OldSubject_NewVoter_YesCurse_gas() (gas: 145778) RateLimiter_constructor:test_Constructor_Success() (gas: 19704) -RateLimiter_consume:test_AggregateValueMaxCapacityExceeded_Revert() (gas: 16006) +RateLimiter_consume:test_AggregateValueMaxCapacityExceeded_Revert() (gas: 16012) RateLimiter_consume:test_AggregateValueRateLimitReached_Revert() (gas: 22345) RateLimiter_consume:test_ConsumeAggregateValue_Success() (gas: 31443) RateLimiter_consume:test_ConsumeTokens_Success() (gas: 20366) -RateLimiter_consume:test_ConsumeUnlimited_Success() (gas: 40573) -RateLimiter_consume:test_ConsumingMoreThanUint128_Revert() (gas: 15786) +RateLimiter_consume:test_ConsumeUnlimited_Success() (gas: 40585) +RateLimiter_consume:test_ConsumingMoreThanUint128_Revert() (gas: 15792) RateLimiter_consume:test_RateLimitReachedOverConsecutiveBlocks_Revert() (gas: 25747) RateLimiter_consume:test_Refill_Success() (gas: 37354) RateLimiter_consume:test_TokenMaxCapacityExceeded_Revert() (gas: 18340) RateLimiter_consume:test_TokenRateLimitReached_Revert() (gas: 24823) -RateLimiter_currentTokenBucketState:test_CurrentTokenBucketState_Success() (gas: 38875) -RateLimiter_currentTokenBucketState:test_Refill_Success() (gas: 46768) -RateLimiter_setTokenBucketConfig:test_SetRateLimiterConfig_Success() (gas: 38446) +RateLimiter_currentTokenBucketState:test_CurrentTokenBucketState_Success() (gas: 38884) +RateLimiter_currentTokenBucketState:test_Refill_Success() (gas: 46777) +RateLimiter_setTokenBucketConfig:test_SetRateLimiterConfig_Success() (gas: 38449) RegistryModuleOwnerCustom_constructor:test_constructor_Revert() (gas: 36037) -RegistryModuleOwnerCustom_registerAdminViaGetCCIPAdmin:test_registerAdminViaGetCCIPAdmin_Revert() (gas: 19643) -RegistryModuleOwnerCustom_registerAdminViaGetCCIPAdmin:test_registerAdminViaGetCCIPAdmin_Success() (gas: 129930) -RegistryModuleOwnerCustom_registerAdminViaOwner:test_registerAdminViaOwner_Revert() (gas: 19457) -RegistryModuleOwnerCustom_registerAdminViaOwner:test_registerAdminViaOwner_Success() (gas: 129743) -Router_applyRampUpdates:test_OffRampMismatch_Revert() (gas: 89306) -Router_applyRampUpdates:test_OffRampUpdatesWithRouting() (gas: 10648972) +RegistryModuleOwnerCustom_registerAdminViaGetCCIPAdmin:test_registerAdminViaGetCCIPAdmin_Revert() (gas: 19655) +RegistryModuleOwnerCustom_registerAdminViaGetCCIPAdmin:test_registerAdminViaGetCCIPAdmin_Success() (gas: 129978) +RegistryModuleOwnerCustom_registerAdminViaOwner:test_registerAdminViaOwner_Revert() (gas: 19475) +RegistryModuleOwnerCustom_registerAdminViaOwner:test_registerAdminViaOwner_Success() (gas: 129797) +Router_applyRampUpdates:test_OffRampMismatch_Revert() (gas: 89321) +Router_applyRampUpdates:test_OffRampUpdatesWithRouting() (gas: 10652272) Router_applyRampUpdates:test_OnRampDisable() (gas: 55971) Router_applyRampUpdates:test_OnlyOwner_Revert() (gas: 12317) -Router_ccipSend:test_CCIPSendLinkFeeNoTokenSuccess_gas() (gas: 113852) -Router_ccipSend:test_CCIPSendLinkFeeOneTokenSuccess_gas() (gas: 201347) -Router_ccipSend:test_CCIPSendNativeFeeNoTokenSuccess_gas() (gas: 126206) -Router_ccipSend:test_CCIPSendNativeFeeOneTokenSuccess_gas() (gas: 213703) -Router_ccipSend:test_FeeTokenAmountTooLow_Revert() (gas: 64181) -Router_ccipSend:test_InvalidMsgValue() (gas: 32008) -Router_ccipSend:test_NativeFeeTokenInsufficientValue() (gas: 66640) -Router_ccipSend:test_NativeFeeTokenOverpay_Success() (gas: 169155) -Router_ccipSend:test_NativeFeeTokenZeroValue() (gas: 53922) -Router_ccipSend:test_NativeFeeToken_Success() (gas: 167749) -Router_ccipSend:test_NonLinkFeeToken_Success() (gas: 238276) -Router_ccipSend:test_UnsupportedDestinationChain_Revert() (gas: 24761) -Router_ccipSend:test_WhenNotHealthy_Revert() (gas: 44736) -Router_ccipSend:test_WrappedNativeFeeToken_Success() (gas: 170007) -Router_ccipSend:test_ZeroFeeAndGasPrice_Success() (gas: 240298) +Router_ccipSend:test_CCIPSendLinkFeeNoTokenSuccess_gas() (gas: 114017) +Router_ccipSend:test_CCIPSendLinkFeeOneTokenSuccess_gas() (gas: 201533) +Router_ccipSend:test_CCIPSendNativeFeeNoTokenSuccess_gas() (gas: 126386) +Router_ccipSend:test_CCIPSendNativeFeeOneTokenSuccess_gas() (gas: 213904) +Router_ccipSend:test_FeeTokenAmountTooLow_Revert() (gas: 64241) +Router_ccipSend:test_InvalidMsgValue() (gas: 32014) +Router_ccipSend:test_NativeFeeTokenInsufficientValue() (gas: 66706) +Router_ccipSend:test_NativeFeeTokenOverpay_Success() (gas: 169401) +Router_ccipSend:test_NativeFeeTokenZeroValue() (gas: 53982) +Router_ccipSend:test_NativeFeeToken_Success() (gas: 167995) +Router_ccipSend:test_NonLinkFeeToken_Success() (gas: 238462) +Router_ccipSend:test_UnsupportedDestinationChain_Revert() (gas: 24767) +Router_ccipSend:test_WhenNotHealthy_Revert() (gas: 44742) +Router_ccipSend:test_WrappedNativeFeeToken_Success() (gas: 170253) +Router_ccipSend:test_ZeroFeeAndGasPrice_Success() (gas: 240550) Router_constructor:test_Constructor_Success() (gas: 13070) Router_getArmProxy:test_getArmProxy() (gas: 10561) -Router_getFee:test_GetFeeSupportedChain_Success() (gas: 44349) -Router_getFee:test_UnsupportedDestinationChain_Revert() (gas: 17144) +Router_getFee:test_GetFeeSupportedChain_Success() (gas: 44415) +Router_getFee:test_UnsupportedDestinationChain_Revert() (gas: 17156) Router_getSupportedTokens:test_GetSupportedTokens_Revert() (gas: 10460) -Router_recoverTokens:test_RecoverTokensInvalidRecipient_Revert() (gas: 11316) +Router_recoverTokens:test_RecoverTokensInvalidRecipient_Revert() (gas: 11322) Router_recoverTokens:test_RecoverTokensNoFunds_Revert() (gas: 20261) -Router_recoverTokens:test_RecoverTokensNonOwner_Revert() (gas: 11159) -Router_recoverTokens:test_RecoverTokensValueReceiver_Revert() (gas: 402507) -Router_recoverTokens:test_RecoverTokens_Success() (gas: 52437) +Router_recoverTokens:test_RecoverTokensNonOwner_Revert() (gas: 11171) +Router_recoverTokens:test_RecoverTokensValueReceiver_Revert() (gas: 392489) +Router_recoverTokens:test_RecoverTokens_Success() (gas: 52442) Router_routeMessage:test_AutoExec_Success() (gas: 42738) Router_routeMessage:test_ExecutionEvent_Success() (gas: 158166) Router_routeMessage:test_ManualExec_Success() (gas: 35429) -Router_routeMessage:test_OnlyOffRamp_Revert() (gas: 25140) -Router_routeMessage:test_WhenNotHealthy_Revert() (gas: 44742) -Router_setWrappedNative:test_OnlyOwner_Revert() (gas: 10986) -SelfFundedPingPong_ccipReceive:test_FundingIfNotANop_Revert() (gas: 55572) -SelfFundedPingPong_ccipReceive:test_Funding_Success() (gas: 417040) +Router_routeMessage:test_OnlyOffRamp_Revert() (gas: 25146) +Router_routeMessage:test_WhenNotHealthy_Revert() (gas: 44754) +Router_setWrappedNative:test_OnlyOwner_Revert() (gas: 10992) +SelfFundedPingPong_ccipReceive:test_FundingIfNotANop_Revert() (gas: 55596) +SelfFundedPingPong_ccipReceive:test_Funding_Success() (gas: 417712) SelfFundedPingPong_setCountIncrBeforeFunding:test_setCountIncrBeforeFunding() (gas: 20169) -TokenAdminRegistry_acceptAdminRole:test_acceptAdminRole_OnlyPendingAdministrator_Revert() (gas: 51109) -TokenAdminRegistry_acceptAdminRole:test_acceptAdminRole_Success() (gas: 43956) +TokenAdminRegistry_acceptAdminRole:test_acceptAdminRole_OnlyPendingAdministrator_Revert() (gas: 51115) +TokenAdminRegistry_acceptAdminRole:test_acceptAdminRole_Success() (gas: 43961) TokenAdminRegistry_addRegistryModule:test_addRegistryModule_OnlyOwner_Revert() (gas: 12641) TokenAdminRegistry_addRegistryModule:test_addRegistryModule_Success() (gas: 67038) -TokenAdminRegistry_getAllConfiguredTokens:test_getAllConfiguredTokens_outOfBounds_Success() (gas: 11350) +TokenAdminRegistry_getAllConfiguredTokens:test_getAllConfiguredTokens_outOfBounds_Success() (gas: 11356) TokenAdminRegistry_getPool:test_getPool_Success() (gas: 17596) TokenAdminRegistry_getPools:test_getPools_Success() (gas: 39920) -TokenAdminRegistry_isAdministrator:test_isAdministrator_Success() (gas: 105946) +TokenAdminRegistry_isAdministrator:test_isAdministrator_Success() (gas: 105952) TokenAdminRegistry_proposeAdministrator:test_proposeAdministrator_AlreadyRegistered_Revert() (gas: 104067) TokenAdminRegistry_proposeAdministrator:test_proposeAdministrator_OnlyRegistryModule_Revert() (gas: 15499) TokenAdminRegistry_proposeAdministrator:test_proposeAdministrator_ZeroAddress_Revert() (gas: 15044) -TokenAdminRegistry_proposeAdministrator:test_proposeAdministrator_module_Success() (gas: 112572) -TokenAdminRegistry_proposeAdministrator:test_proposeAdministrator_owner_Success() (gas: 107686) -TokenAdminRegistry_proposeAdministrator:test_proposeAdministrator_reRegisterWhileUnclaimed_Success() (gas: 115710) +TokenAdminRegistry_proposeAdministrator:test_proposeAdministrator_module_Success() (gas: 112578) +TokenAdminRegistry_proposeAdministrator:test_proposeAdministrator_owner_Success() (gas: 107692) +TokenAdminRegistry_proposeAdministrator:test_proposeAdministrator_reRegisterWhileUnclaimed_Success() (gas: 115716) TokenAdminRegistry_removeRegistryModule:test_removeRegistryModule_OnlyOwner_Revert() (gas: 12597) -TokenAdminRegistry_removeRegistryModule:test_removeRegistryModule_Success() (gas: 54495) +TokenAdminRegistry_removeRegistryModule:test_removeRegistryModule_Success() (gas: 54509) TokenAdminRegistry_setPool:test_setPool_InvalidTokenPoolToken_Revert() (gas: 19166) -TokenAdminRegistry_setPool:test_setPool_OnlyAdministrator_Revert() (gas: 18026) +TokenAdminRegistry_setPool:test_setPool_OnlyAdministrator_Revert() (gas: 18032) TokenAdminRegistry_setPool:test_setPool_Success() (gas: 35961) TokenAdminRegistry_setPool:test_setPool_ZeroAddressRemovesPool_Success() (gas: 30635) -TokenAdminRegistry_transferAdminRole:test_transferAdminRole_OnlyAdministrator_Revert() (gas: 18085) -TokenAdminRegistry_transferAdminRole:test_transferAdminRole_Success() (gas: 49390) -TokenPoolAndProxy:test_lockOrBurn_burnMint_Success() (gas: 5945631) -TokenPoolAndProxy:test_lockOrBurn_burnWithFromMint_Success() (gas: 5977107) -TokenPoolAndProxy:test_lockOrBurn_lockRelease_Success() (gas: 6179838) -TokenPoolAndProxy:test_setPreviousPool_Success() (gas: 3334200) -TokenPoolAndProxyMigration:test_tokenPoolMigration_Success_1_2() (gas: 6789707) -TokenPoolAndProxyMigration:test_tokenPoolMigration_Success_1_4() (gas: 7022389) -TokenPoolWithAllowList_applyAllowListUpdates:test_AllowListNotEnabled_Revert() (gas: 2100002) +TokenAdminRegistry_transferAdminRole:test_transferAdminRole_OnlyAdministrator_Revert() (gas: 18091) +TokenAdminRegistry_transferAdminRole:test_transferAdminRole_Success() (gas: 49402) +TokenPoolAndProxy:test_lockOrBurn_burnMint_Success() (gas: 5855541) +TokenPoolAndProxy:test_lockOrBurn_burnWithFromMint_Success() (gas: 5887014) +TokenPoolAndProxy:test_lockOrBurn_lockRelease_Success() (gas: 6040093) +TokenPoolAndProxy:test_setPreviousPool_Success() (gas: 3214305) +TokenPoolAndProxyMigration:test_tokenPoolMigration_Success_1_2() (gas: 6699954) +TokenPoolAndProxyMigration:test_tokenPoolMigration_Success_1_4() (gas: 6912610) +TokenPoolWithAllowList_applyAllowListUpdates:test_AllowListNotEnabled_Revert() (gas: 2069936) TokenPoolWithAllowList_applyAllowListUpdates:test_OnlyOwner_Revert() (gas: 12101) TokenPoolWithAllowList_applyAllowListUpdates:test_SetAllowListSkipsZero_Success() (gas: 23464) TokenPoolWithAllowList_applyAllowListUpdates:test_SetAllowList_Success() (gas: 177802) @@ -952,42 +953,42 @@ TokenPoolWithAllowList_setRouter:test_SetRouter_Success() (gas: 24843) TokenPool_applyChainUpdates:test_applyChainUpdates_DisabledNonZeroRateLimit_Revert() (gas: 271551) TokenPool_applyChainUpdates:test_applyChainUpdates_InvalidRateLimitRate_Revert() (gas: 542134) TokenPool_applyChainUpdates:test_applyChainUpdates_NonExistentChain_Revert() (gas: 18449) -TokenPool_applyChainUpdates:test_applyChainUpdates_OnlyCallableByOwner_Revert() (gas: 11391) +TokenPool_applyChainUpdates:test_applyChainUpdates_OnlyCallableByOwner_Revert() (gas: 11397) TokenPool_applyChainUpdates:test_applyChainUpdates_Success() (gas: 477675) -TokenPool_applyChainUpdates:test_applyChainUpdates_ZeroAddressNotAllowed_Revert() (gas: 157320) -TokenPool_constructor:test_ZeroAddressNotAllowed_Revert() (gas: 70594) +TokenPool_applyChainUpdates:test_applyChainUpdates_ZeroAddressNotAllowed_Revert() (gas: 157356) +TokenPool_constructor:test_ZeroAddressNotAllowed_Revert() (gas: 70564) TokenPool_constructor:test_immutableFields_Success() (gas: 20544) -TokenPool_getRemotePool:test_getRemotePool_Success() (gas: 274133) -TokenPool_onlyOffRamp:test_CallerIsNotARampOnRouter_Revert() (gas: 277110) -TokenPool_onlyOffRamp:test_ChainNotAllowed_Revert() (gas: 289682) +TokenPool_getRemotePool:test_getRemotePool_Success() (gas: 274145) +TokenPool_onlyOffRamp:test_CallerIsNotARampOnRouter_Revert() (gas: 277116) +TokenPool_onlyOffRamp:test_ChainNotAllowed_Revert() (gas: 289701) TokenPool_onlyOffRamp:test_onlyOffRamp_Success() (gas: 349912) -TokenPool_onlyOnRamp:test_CallerIsNotARampOnRouter_Revert() (gas: 276850) -TokenPool_onlyOnRamp:test_ChainNotAllowed_Revert() (gas: 253710) +TokenPool_onlyOnRamp:test_CallerIsNotARampOnRouter_Revert() (gas: 276856) +TokenPool_onlyOnRamp:test_ChainNotAllowed_Revert() (gas: 253729) TokenPool_onlyOnRamp:test_onlyOnRamp_Success() (gas: 304962) -TokenPool_setChainRateLimiterConfig:test_NonExistentChain_Revert() (gas: 17142) -TokenPool_setChainRateLimiterConfig:test_OnlyOwnerOrRateLimitAdmin_Revert() (gas: 15137) -TokenPool_setRemotePool:test_setRemotePool_NonExistentChain_Reverts() (gas: 15653) -TokenPool_setRemotePool:test_setRemotePool_OnlyOwner_Reverts() (gas: 13201) -TokenPool_setRemotePool:test_setRemotePool_Success() (gas: 282083) -TokenProxy_ccipSend:test_CcipSendGasShouldBeZero_Revert() (gas: 17121) -TokenProxy_ccipSend:test_CcipSendInsufficientAllowance_Revert() (gas: 134143) +TokenPool_setChainRateLimiterConfig:test_NonExistentChain_Revert() (gas: 17148) +TokenPool_setChainRateLimiterConfig:test_OnlyOwnerOrRateLimitAdmin_Revert() (gas: 15149) +TokenPool_setRemotePool:test_setRemotePool_NonExistentChain_Reverts() (gas: 15665) +TokenPool_setRemotePool:test_setRemotePool_OnlyOwner_Reverts() (gas: 13213) +TokenPool_setRemotePool:test_setRemotePool_Success() (gas: 282095) +TokenProxy_ccipSend:test_CcipSendGasShouldBeZero_Revert() (gas: 17127) +TokenProxy_ccipSend:test_CcipSendInsufficientAllowance_Revert() (gas: 134209) TokenProxy_ccipSend:test_CcipSendInvalidToken_Revert() (gas: 15931) -TokenProxy_ccipSend:test_CcipSendNative_Success() (gas: 242858) +TokenProxy_ccipSend:test_CcipSendNative_Success() (gas: 243059) TokenProxy_ccipSend:test_CcipSendNoDataAllowed_Revert() (gas: 16315) -TokenProxy_ccipSend:test_CcipSend_Success() (gas: 261460) +TokenProxy_ccipSend:test_CcipSend_Success() (gas: 261662) TokenProxy_constructor:test_Constructor() (gas: 13812) -TokenProxy_getFee:test_GetFeeGasShouldBeZero_Revert() (gas: 16839) +TokenProxy_getFee:test_GetFeeGasShouldBeZero_Revert() (gas: 16845) TokenProxy_getFee:test_GetFeeInvalidToken_Revert() (gas: 12670) TokenProxy_getFee:test_GetFeeNoDataAllowed_Revert() (gas: 15864) -TokenProxy_getFee:test_GetFee_Success() (gas: 84508) +TokenProxy_getFee:test_GetFee_Success() (gas: 84634) USDCTokenPool__validateMessage:test_ValidateInvalidMessage_Revert() (gas: 25407) -USDCTokenPool_lockOrBurn:test_CallerIsNotARampOnRouter_Revert() (gas: 35364) -USDCTokenPool_lockOrBurn:test_LockOrBurnWithAllowList_Revert() (gas: 30106) -USDCTokenPool_lockOrBurn:test_LockOrBurn_Success() (gas: 133143) -USDCTokenPool_lockOrBurn:test_UnknownDomain_Revert() (gas: 477468) -USDCTokenPool_releaseOrMint:test_ReleaseOrMintRealTx_Success() (gas: 268219) -USDCTokenPool_releaseOrMint:test_TokenMaxCapacityExceeded_Revert() (gas: 50718) -USDCTokenPool_releaseOrMint:test_UnlockingUSDCFailed_Revert() (gas: 98636) -USDCTokenPool_setDomains:test_InvalidDomain_Revert() (gas: 66174) -USDCTokenPool_setDomains:test_OnlyOwner_Revert() (gas: 11339) -USDCTokenPool_supportsInterface:test_SupportsInterface_Success() (gas: 9876) \ No newline at end of file +USDCTokenPool_lockOrBurn:test_CallerIsNotARampOnRouter_Revert() (gas: 35376) +USDCTokenPool_lockOrBurn:test_LockOrBurnWithAllowList_Revert() (gas: 30112) +USDCTokenPool_lockOrBurn:test_LockOrBurn_Success() (gas: 133148) +USDCTokenPool_lockOrBurn:test_UnknownDomain_Revert() (gas: 477486) +USDCTokenPool_releaseOrMint:test_ReleaseOrMintRealTx_Success() (gas: 268238) +USDCTokenPool_releaseOrMint:test_TokenMaxCapacityExceeded_Revert() (gas: 50724) +USDCTokenPool_releaseOrMint:test_UnlockingUSDCFailed_Revert() (gas: 98642) +USDCTokenPool_setDomains:test_InvalidDomain_Revert() (gas: 66189) +USDCTokenPool_setDomains:test_OnlyOwner_Revert() (gas: 11345) +USDCTokenPool_supportsInterface:test_SupportsInterface_Success() (gas: 9888) \ No newline at end of file From 8495bb526139366a0efadea6d110f2f2bd28e1e1 Mon Sep 17 00:00:00 2001 From: "app-token-issuer-infra-releng[bot]" <120227048+app-token-issuer-infra-releng[bot]@users.noreply.github.com> Date: Thu, 12 Sep 2024 16:31:26 +0000 Subject: [PATCH 19/19] Update gethwrappers --- core/gethwrappers/ccip/generated/offramp/offramp.go | 4 ++-- .../generated-wrapper-dependency-versions-do-not-edit.txt | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/core/gethwrappers/ccip/generated/offramp/offramp.go b/core/gethwrappers/ccip/generated/offramp/offramp.go index 8226f37f99..1cae9daaa3 100644 --- a/core/gethwrappers/ccip/generated/offramp/offramp.go +++ b/core/gethwrappers/ccip/generated/offramp/offramp.go @@ -154,8 +154,8 @@ type OffRampStaticConfig struct { } var OffRampMetaData = &bind.MetaData{ - ABI: "[{\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"chainSelector\",\"type\":\"uint64\"},{\"internalType\":\"contractIRMNV2\",\"name\":\"rmn\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tokenAdminRegistry\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"nonceManager\",\"type\":\"address\"}],\"internalType\":\"structOffRamp.StaticConfig\",\"name\":\"staticConfig\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"feeQuoter\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"permissionLessExecutionThresholdSeconds\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"messageValidator\",\"type\":\"address\"}],\"internalType\":\"structOffRamp.DynamicConfig\",\"name\":\"dynamicConfig\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"contractIRouter\",\"name\":\"router\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"bool\",\"name\":\"isEnabled\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"onRamp\",\"type\":\"bytes\"}],\"internalType\":\"structOffRamp.SourceChainConfigArgs[]\",\"name\":\"sourceChainConfigs\",\"type\":\"tuple[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"CanOnlySelfCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"expected\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"actual\",\"type\":\"bytes32\"}],\"name\":\"ConfigDigestMismatch\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"}],\"name\":\"CursedByRMN\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"EmptyReport\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"messageId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"err\",\"type\":\"bytes\"}],\"name\":\"ExecutionError\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"expected\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"actual\",\"type\":\"uint256\"}],\"name\":\"ForkedChain\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"enumMultiOCR3Base.InvalidConfigErrorType\",\"name\":\"errorType\",\"type\":\"uint8\"}],\"name\":\"InvalidConfig\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"expected\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"got\",\"type\":\"uint256\"}],\"name\":\"InvalidDataLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"encodedAddress\",\"type\":\"bytes\"}],\"name\":\"InvalidEVMAddress\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"min\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"max\",\"type\":\"uint64\"}],\"name\":\"InvalidInterval\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"messageId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"newLimit\",\"type\":\"uint256\"}],\"name\":\"InvalidManualExecutionGasLimit\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"messageId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"tokenIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"oldLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"tokenGasOverride\",\"type\":\"uint256\"}],\"name\":\"InvalidManualExecutionTokenGasOverride\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"messageDestChainSelector\",\"type\":\"uint64\"}],\"name\":\"InvalidMessageDestChainSelector\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"sequenceNumber\",\"type\":\"uint64\"},{\"internalType\":\"enumInternal.MessageExecutionState\",\"name\":\"newState\",\"type\":\"uint8\"}],\"name\":\"InvalidNewState\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"reportOnRamp\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"configOnRamp\",\"type\":\"bytes\"}],\"name\":\"InvalidOnRamp\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"}],\"name\":\"InvalidOnRampUpdate\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidProof\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidRoot\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LeavesCannotBeEmpty\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"messageId\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"sequenceNumber\",\"type\":\"uint64\"}],\"name\":\"ManualExecutionGasAmountCountMismatch\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ManualExecutionGasLimitMismatch\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"}],\"name\":\"ManualExecutionNotYetEnabled\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"errorReason\",\"type\":\"bytes\"}],\"name\":\"MessageValidationError\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NonUniqueSignatures\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"notPool\",\"type\":\"address\"}],\"name\":\"NotACompatiblePool\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OracleCannotBeZeroAddress\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"err\",\"type\":\"bytes\"}],\"name\":\"ReceiverError\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amountReleased\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balancePre\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balancePost\",\"type\":\"uint256\"}],\"name\":\"ReleaseOrMintBalanceMismatch\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"merkleRoot\",\"type\":\"bytes32\"}],\"name\":\"RootAlreadyCommitted\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"}],\"name\":\"RootNotCommitted\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SignatureVerificationDisabled\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SignaturesOutOfRegistration\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"}],\"name\":\"SourceChainNotEnabled\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"reportSourceChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"messageSourceChainSelector\",\"type\":\"uint64\"}],\"name\":\"SourceChainSelectorMismatch\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"StaleCommitReport\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"ocrPluginType\",\"type\":\"uint8\"}],\"name\":\"StaticConfigCannotBeChanged\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"sequenceNumber\",\"type\":\"uint64\"}],\"name\":\"TokenDataMismatch\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"err\",\"type\":\"bytes\"}],\"name\":\"TokenHandlingError\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UnauthorizedSigner\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UnauthorizedTransmitter\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UnexpectedTokenData\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"expected\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"actual\",\"type\":\"uint256\"}],\"name\":\"WrongMessageLength\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"WrongNumberOfSignatures\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZeroAddressNotAllowed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZeroChainSelectorNotAllowed\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"sequenceNumber\",\"type\":\"uint64\"}],\"name\":\"AlreadyAttempted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"onRampAddress\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"minSeqNr\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"maxSeqNr\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"merkleRoot\",\"type\":\"bytes32\"}],\"indexed\":false,\"internalType\":\"structInternal.MerkleRoot[]\",\"name\":\"merkleRoots\",\"type\":\"tuple[]\"},{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"sourceToken\",\"type\":\"address\"},{\"internalType\":\"uint224\",\"name\":\"usdPerToken\",\"type\":\"uint224\"}],\"internalType\":\"structInternal.TokenPriceUpdate[]\",\"name\":\"tokenPriceUpdates\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"uint64\",\"name\":\"destChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"uint224\",\"name\":\"usdPerUnitGas\",\"type\":\"uint224\"}],\"internalType\":\"structInternal.GasPriceUpdate[]\",\"name\":\"gasPriceUpdates\",\"type\":\"tuple[]\"}],\"indexed\":false,\"internalType\":\"structInternal.PriceUpdates\",\"name\":\"priceUpdates\",\"type\":\"tuple\"}],\"name\":\"CommitReportAccepted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"ocrPluginType\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"configDigest\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"signers\",\"type\":\"address[]\"},{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"transmitters\",\"type\":\"address[]\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"F\",\"type\":\"uint8\"}],\"name\":\"ConfigSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"feeQuoter\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"permissionLessExecutionThresholdSeconds\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"messageValidator\",\"type\":\"address\"}],\"indexed\":false,\"internalType\":\"structOffRamp.DynamicConfig\",\"name\":\"dynamicConfig\",\"type\":\"tuple\"}],\"name\":\"DynamicConfigSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"sequenceNumber\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"messageId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"messageHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"enumInternal.MessageExecutionState\",\"name\":\"state\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"returnData\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"gasUsed\",\"type\":\"uint256\"}],\"name\":\"ExecutionStateChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"OwnershipTransferRequested\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"root\",\"type\":\"bytes32\"}],\"name\":\"RootRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"sequenceNumber\",\"type\":\"uint64\"}],\"name\":\"SkippedAlreadyExecutedMessage\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"}],\"name\":\"SkippedReportExecution\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"components\":[{\"internalType\":\"contractIRouter\",\"name\":\"router\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"isEnabled\",\"type\":\"bool\"},{\"internalType\":\"uint64\",\"name\":\"minSeqNr\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"onRamp\",\"type\":\"bytes\"}],\"indexed\":false,\"internalType\":\"structOffRamp.SourceChainConfig\",\"name\":\"sourceConfig\",\"type\":\"tuple\"}],\"name\":\"SourceChainConfigSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"}],\"name\":\"SourceChainSelectorAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"chainSelector\",\"type\":\"uint64\"},{\"internalType\":\"contractIRMNV2\",\"name\":\"rmn\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tokenAdminRegistry\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"nonceManager\",\"type\":\"address\"}],\"indexed\":false,\"internalType\":\"structOffRamp.StaticConfig\",\"name\":\"staticConfig\",\"type\":\"tuple\"}],\"name\":\"StaticConfigSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint8\",\"name\":\"ocrPluginType\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"configDigest\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"sequenceNumber\",\"type\":\"uint64\"}],\"name\":\"Transmitted\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"acceptOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"contractIRouter\",\"name\":\"router\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"bool\",\"name\":\"isEnabled\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"onRamp\",\"type\":\"bytes\"}],\"internalType\":\"structOffRamp.SourceChainConfigArgs[]\",\"name\":\"sourceChainConfigUpdates\",\"type\":\"tuple[]\"}],\"name\":\"applySourceChainConfigUpdates\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"messageId\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"sender\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"structClient.EVMTokenAmount[]\",\"name\":\"destTokenAmounts\",\"type\":\"tuple[]\"}],\"internalType\":\"structClient.Any2EVMMessage\",\"name\":\"\",\"type\":\"tuple\"}],\"name\":\"ccipReceive\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32[3]\",\"name\":\"reportContext\",\"type\":\"bytes32[3]\"},{\"internalType\":\"bytes\",\"name\":\"report\",\"type\":\"bytes\"},{\"internalType\":\"bytes32[]\",\"name\":\"rs\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes32[]\",\"name\":\"ss\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes32\",\"name\":\"rawVs\",\"type\":\"bytes32\"}],\"name\":\"commit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32[3]\",\"name\":\"reportContext\",\"type\":\"bytes32[3]\"},{\"internalType\":\"bytes\",\"name\":\"report\",\"type\":\"bytes\"}],\"name\":\"execute\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"messageId\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"destChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"sequenceNumber\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"internalType\":\"structInternal.RampMessageHeader\",\"name\":\"header\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"sender\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"gasLimit\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"bytes\",\"name\":\"sourcePoolAddress\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"destTokenAddress\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"extraData\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"destExecData\",\"type\":\"bytes\"}],\"internalType\":\"structInternal.RampTokenAmount[]\",\"name\":\"tokenAmounts\",\"type\":\"tuple[]\"}],\"internalType\":\"structInternal.Any2EVMRampMessage\",\"name\":\"message\",\"type\":\"tuple\"},{\"internalType\":\"bytes[]\",\"name\":\"offchainTokenData\",\"type\":\"bytes[]\"},{\"internalType\":\"uint32[]\",\"name\":\"tokenGasOverrides\",\"type\":\"uint32[]\"}],\"name\":\"executeSingleMessage\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getDynamicConfig\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"feeQuoter\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"permissionLessExecutionThresholdSeconds\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"messageValidator\",\"type\":\"address\"}],\"internalType\":\"structOffRamp.DynamicConfig\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"sequenceNumber\",\"type\":\"uint64\"}],\"name\":\"getExecutionState\",\"outputs\":[{\"internalType\":\"enumInternal.MessageExecutionState\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getLatestPriceSequenceNumber\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"root\",\"type\":\"bytes32\"}],\"name\":\"getMerkleRoot\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"}],\"name\":\"getSourceChainConfig\",\"outputs\":[{\"components\":[{\"internalType\":\"contractIRouter\",\"name\":\"router\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"isEnabled\",\"type\":\"bool\"},{\"internalType\":\"uint64\",\"name\":\"minSeqNr\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"onRamp\",\"type\":\"bytes\"}],\"internalType\":\"structOffRamp.SourceChainConfig\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getStaticConfig\",\"outputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"chainSelector\",\"type\":\"uint64\"},{\"internalType\":\"contractIRMNV2\",\"name\":\"rmn\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tokenAdminRegistry\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"nonceManager\",\"type\":\"address\"}],\"internalType\":\"structOffRamp.StaticConfig\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"ocrPluginType\",\"type\":\"uint8\"}],\"name\":\"latestConfigDetails\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"configDigest\",\"type\":\"bytes32\"},{\"internalType\":\"uint8\",\"name\":\"F\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"n\",\"type\":\"uint8\"},{\"internalType\":\"bool\",\"name\":\"isSignatureVerificationEnabled\",\"type\":\"bool\"}],\"internalType\":\"structMultiOCR3Base.ConfigInfo\",\"name\":\"configInfo\",\"type\":\"tuple\"},{\"internalType\":\"address[]\",\"name\":\"signers\",\"type\":\"address[]\"},{\"internalType\":\"address[]\",\"name\":\"transmitters\",\"type\":\"address[]\"}],\"internalType\":\"structMultiOCR3Base.OCRConfig\",\"name\":\"ocrConfig\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"components\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"messageId\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"destChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"sequenceNumber\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"internalType\":\"structInternal.RampMessageHeader\",\"name\":\"header\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"sender\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"gasLimit\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"bytes\",\"name\":\"sourcePoolAddress\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"destTokenAddress\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"extraData\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"destExecData\",\"type\":\"bytes\"}],\"internalType\":\"structInternal.RampTokenAmount[]\",\"name\":\"tokenAmounts\",\"type\":\"tuple[]\"}],\"internalType\":\"structInternal.Any2EVMRampMessage[]\",\"name\":\"messages\",\"type\":\"tuple[]\"},{\"internalType\":\"bytes[][]\",\"name\":\"offchainTokenData\",\"type\":\"bytes[][]\"},{\"internalType\":\"bytes32[]\",\"name\":\"proofs\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"proofFlagBits\",\"type\":\"uint256\"}],\"internalType\":\"structInternal.ExecutionReportSingleChain[]\",\"name\":\"reports\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"receiverExecutionGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint32[]\",\"name\":\"tokenGasOverrides\",\"type\":\"uint32[]\"}],\"internalType\":\"structOffRamp.GasLimitOverride[][]\",\"name\":\"gasLimitOverrides\",\"type\":\"tuple[][]\"}],\"name\":\"manuallyExecute\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"feeQuoter\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"permissionLessExecutionThresholdSeconds\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"messageValidator\",\"type\":\"address\"}],\"internalType\":\"structOffRamp.DynamicConfig\",\"name\":\"dynamicConfig\",\"type\":\"tuple\"}],\"name\":\"setDynamicConfig\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"configDigest\",\"type\":\"bytes32\"},{\"internalType\":\"uint8\",\"name\":\"ocrPluginType\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"F\",\"type\":\"uint8\"},{\"internalType\":\"bool\",\"name\":\"isSignatureVerificationEnabled\",\"type\":\"bool\"},{\"internalType\":\"address[]\",\"name\":\"signers\",\"type\":\"address[]\"},{\"internalType\":\"address[]\",\"name\":\"transmitters\",\"type\":\"address[]\"}],\"internalType\":\"structMultiOCR3Base.OCRConfigArgs[]\",\"name\":\"ocrConfigArgs\",\"type\":\"tuple[]\"}],\"name\":\"setOCR3Configs\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"typeAndVersion\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"}]", - Bin: "0x6101206040523480156200001257600080fd5b506040516200689b3803806200689b833981016040819052620000359162000806565b33806000816200008c5760405162461bcd60e51b815260206004820152601860248201527f43616e6e6f7420736574206f776e657220746f207a65726f000000000000000060448201526064015b60405180910390fd5b600080546001600160a01b0319166001600160a01b0384811691909117909155811615620000bf57620000bf81620001fa565b5050466080525060208301516001600160a01b03161580620000ec575060408301516001600160a01b0316155b8062000103575060608301516001600160a01b0316155b1562000122576040516342bcdf7f60e11b815260040160405180910390fd5b82516001600160401b03166000036200014e5760405163c656089560e01b815260040160405180910390fd5b82516001600160401b0390811660a052602080850180516001600160a01b0390811660c05260408088018051831660e0526060808a01805185166101005283518b519098168852945184169587019590955251821690850152905116908201527f683eb52ee924eb817377cfa8f41f238f4bb7a877da5267869dfffbad85f564d89060800160405180910390a1620001e682620002a5565b620001f1816200036d565b50505062000b8d565b336001600160a01b03821603620002545760405162461bcd60e51b815260206004820152601760248201527f43616e6e6f74207472616e7366657220746f2073656c66000000000000000000604482015260640162000083565b600180546001600160a01b0319166001600160a01b0383811691821790925560008054604051929316917fed8889f560326eb138920d842192f0eb3dd22b4f139c87a2c57538e05bae12789190a350565b80516001600160a01b0316620002ce576040516342bcdf7f60e11b815260040160405180910390fd5b805160048054602080850180516001600160a01b039586166001600160c01b03199094168417600160a01b63ffffffff928316021790945560408087018051600580546001600160a01b031916918916919091179055815194855291519094169183019190915251909216908201527fa1c15688cb2c24508e158f6942b9276c6f3028a85e1af8cf3fff0c3ff3d5fc8d9060600160405180910390a150565b60005b8151811015620005ba57600082828151811062000391576200039162000943565b60200260200101519050600081602001519050806001600160401b0316600003620003cf5760405163c656089560e01b815260040160405180910390fd5b81516001600160a01b0316620003f8576040516342bcdf7f60e11b815260040160405180910390fd5b6001600160401b03811660009081526006602052604090206060830151600182018054620004269062000959565b905060000362000489578154600160a81b600160e81b031916600160a81b1782556040516001600160401b03841681527ff4c1390c70e5c0f491ae1ccbc06f9117cbbadf2767b247b3bc203280f24c0fb99060200160405180910390a1620004c8565b8154600160a81b90046001600160401b0316600114620004c857604051632105803760e11b81526001600160401b038416600482015260240162000083565b80511580620004fe5750604080516000602082015201604051602081830303815290604052805190602001208180519060200120145b156200051d576040516342bcdf7f60e11b815260040160405180910390fd5b600182016200052d8282620009ea565b50604080850151835486516001600160a01b03166001600160a01b0319921515600160a01b02929092166001600160a81b031990911617178355516001600160401b038416907f49f51971edd25182e97182d6ea372a0488ce2ab639f6a3a7ab4df0d2636fe56b90620005a290859062000ab6565b60405180910390a25050505080600101905062000370565b5050565b634e487b7160e01b600052604160045260246000fd5b604051608081016001600160401b0381118282101715620005f957620005f9620005be565b60405290565b604051601f8201601f191681016001600160401b03811182821017156200062a576200062a620005be565b604052919050565b80516001600160401b03811681146200064a57600080fd5b919050565b6001600160a01b03811681146200066557600080fd5b50565b6000601f83601f8401126200067c57600080fd5b825160206001600160401b03808311156200069b576200069b620005be565b8260051b620006ac838201620005ff565b9384528681018301938381019089861115620006c757600080fd5b84890192505b85831015620007f957825184811115620006e75760008081fd5b89016080601f19828d038101821315620007015760008081fd5b6200070b620005d4565b888401516200071a816200064f565b815260406200072b85820162000632565b8a8301526060808601518015158114620007455760008081fd5b838301529385015193898511156200075d5760008081fd5b84860195508f603f8701126200077557600094508485fd5b8a8601519450898511156200078e576200078e620005be565b6200079f8b858f88011601620005ff565b93508484528f82868801011115620007b75760008081fd5b60005b85811015620007d7578681018301518582018d01528b01620007ba565b5060009484018b019490945250918201528352509184019190840190620006cd565b9998505050505050505050565b60008060008385036101008112156200081e57600080fd5b60808112156200082d57600080fd5b62000837620005d4565b620008428662000632565b8152602086015162000854816200064f565b6020820152604086015162000869816200064f565b604082015260608601516200087e816200064f565b606082810191909152909450607f19820112156200089b57600080fd5b50604051606081016001600160401b038082118383101715620008c257620008c2620005be565b8160405260808701519150620008d8826200064f565b90825260a08601519063ffffffff82168214620008f457600080fd5b81602084015260c087015191506200090c826200064f565b6040830182905260e0870151929450808311156200092957600080fd5b5050620009398682870162000668565b9150509250925092565b634e487b7160e01b600052603260045260246000fd5b600181811c908216806200096e57607f821691505b6020821081036200098f57634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620009e5576000816000526020600020601f850160051c81016020861015620009c05750805b601f850160051c820191505b81811015620009e157828155600101620009cc565b5050505b505050565b81516001600160401b0381111562000a065762000a06620005be565b62000a1e8162000a17845462000959565b8462000995565b602080601f83116001811462000a56576000841562000a3d5750858301515b600019600386901b1c1916600185901b178555620009e1565b600085815260208120601f198616915b8281101562000a875788860151825594840194600190910190840162000a66565b508582101562000aa65787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b602080825282546001600160a01b0381168383015260a081901c60ff161515604084015260a81c6001600160401b0316606083015260808083015260018084018054600093929190849062000b0b8162000959565b8060a089015260c0600183166000811462000b2f576001811462000b4c5762000b7e565b60ff19841660c08b015260c083151560051b8b0101945062000b7e565b85600052602060002060005b8481101562000b755781548c820185015290880190890162000b58565b8b0160c0019550505b50929998505050505050505050565b60805160a05160c05160e05161010051615c9862000c036000396000818161022c01526129260152600081816101fd0152612bf80152600081816101ce01528181610552015281816106ff015261236a01526000818161019f01526125a9015260008181611d920152611dc50152615c986000f3fe608060405234801561001057600080fd5b50600436106101515760003560e01c806379ba5097116100cd578063d434969111610081578063e9d68a8e11610066578063e9d68a8e146104bc578063f2fde38b146104dc578063f716f99f146104ef57600080fd5b8063d434969114610496578063e62653f5146104a957600080fd5b80638da5cb5b116100b25780638da5cb5b14610417578063c673e58414610432578063ccd37ba31461045257600080fd5b806379ba50971461040157806385572ffb1461040957600080fd5b8063311cd513116101245780635e36480c116101095780635e36480c1461033c5780636f9e320f1461035c5780637437ff9f1461036f57600080fd5b8063311cd5131461030e5780633f4b04aa1461032157600080fd5b806304666f9c1461015657806306285c691461016b578063181f5a77146102b25780632d04ab76146102fb575b600080fd5b610169610164366004613bbf565b610502565b005b61025c60408051608081018252600080825260208201819052918101829052606081019190915260405180608001604052807f00000000000000000000000000000000000000000000000000000000000000006001600160401b031681526020017f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031681526020017f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031681526020017f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316815250905090565b6040516102a9919081516001600160401b031681526020808301516001600160a01b0390811691830191909152604080840151821690830152606092830151169181019190915260800190565b60405180910390f35b6102ee6040518060400160405280601181526020017f4f666652616d7020312e362e302d64657600000000000000000000000000000081525081565b6040516102a99190613d2d565b610169610309366004613ddd565b610516565b61016961031c366004613e8f565b610a12565b6009546040516001600160401b0390911681526020016102a9565b61034f61034a366004613ee2565b610a7b565b6040516102a99190613f3f565b61016961036a366004613f6a565b610ad0565b6103cb604080516060810182526000808252602082018190529181019190915250604080516060810182526004546001600160a01b038082168352600160a01b90910463ffffffff166020830152600554169181019190915290565b6040805182516001600160a01b03908116825260208085015163ffffffff169083015292820151909216908201526060016102a9565b610169610ae1565b610169610151366004613fbe565b6000546040516001600160a01b0390911681526020016102a9565b610445610440366004614009565b610b92565b6040516102a99190614069565b6104886104603660046140de565b6001600160401b03919091166000908152600860209081526040808320938352929052205490565b6040519081526020016102a9565b6101696104a436600461437a565b610cf0565b6101696104b7366004614702565b610fd0565b6104cf6104ca366004614949565b611277565b6040516102a99190614964565b6101696104ea3660046149b1565b611383565b6101696104fd366004614a36565b611394565b61050a6113d6565b61051381611432565b50565b600061052487890189614d8b565b602081015151909150156105b6576020810151604080830151905162ccd5af60e81b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169263ccd5af009261058592600401614fb3565b60006040518083038186803b15801561059d57600080fd5b505afa1580156105b1573d6000803e3d6000fd5b505050505b805151511515806105cc57508051602001515115155b156106985760095460208a0135906001600160401b0380831691161015610670576009805467ffffffffffffffff19166001600160401b038316179055600480548351604051633937306f60e01b81526001600160a01b0390921692633937306f926106399291016150e7565b600060405180830381600087803b15801561065357600080fd5b505af1158015610667573d6000803e3d6000fd5b50505050610696565b81602001515160000361069657604051632261116760e01b815260040160405180910390fd5b505b60005b816020015151811015610953576000826020015182815181106106c0576106c0615015565b60209081029190910101518051604051632cbc26bb60e01b815267ffffffffffffffff60801b608083901b166004820152919250906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690632cbc26bb90602401602060405180830381865afa158015610746573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061076a91906150fa565b1561079857604051637edeb53960e11b81526001600160401b03821660048201526024015b60405180910390fd5b60006107a382611685565b9050806001016040516107b69190615151565b6040518091039020836020015180519060200120146107f357826020015181600101604051630426012b60e31b815260040161078f929190615244565b60408301518154600160a81b90046001600160401b039081169116141580610834575082606001516001600160401b031683604001516001600160401b0316115b1561087957825160408085015160608601519151636af0786b60e11b81526001600160401b03938416600482015290831660248201529116604482015260640161078f565b60808301518061089c5760405163504570e360e01b815260040160405180910390fd5b83516001600160401b03166000908152600860209081526040808320848452909152902054156108f45783516040516332cf0cbf60e01b81526001600160401b0390911660048201526024810182905260440161078f565b606084015161090490600161527f565b825467ffffffffffffffff60a81b1916600160a81b6001600160401b0392831602179092559251166000908152600860209081526040808320948352939052919091204290555060010161069b565b50602081015181516040517f35c02761bcd3ef995c6a601a1981f4ed3934dcbe5041e24e286c89f5531d17e49261098b9290916152a6565b60405180910390a1610a0760008a8a8a8a8a8080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020808e0282810182019093528d82529093508d92508c9182918501908490808284376000920191909152508b92506116d1915050565b505050505050505050565b610a52610a21828401846152cb565b6040805160008082526020820190925290610a4c565b6060815260200190600190039081610a375790505b506119ca565b604080516000808252602082019092529050610a756001858585858660006116d1565b50505050565b6000610a89600160046152ff565b6002610a96608085615328565b6001600160401b0316610aa9919061534e565b610ab38585611a8c565b901c166003811115610ac757610ac7613f15565b90505b92915050565b610ad86113d6565b61051381611ad1565b6001546001600160a01b03163314610b3b5760405162461bcd60e51b815260206004820152601660248201527f4d7573742062652070726f706f736564206f776e657200000000000000000000604482015260640161078f565b60008054336001600160a01b0319808316821784556001805490911690556040516001600160a01b0390921692909183917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a350565b610bd56040805160e081019091526000606082018181526080830182905260a0830182905260c08301919091528190815260200160608152602001606081525090565b60ff808316600090815260026020818152604092839020835160e081018552815460608201908152600183015480881660808401526101008104881660a0840152620100009004909616151560c082015294855291820180548451818402810184019095528085529293858301939092830182828015610c7e57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610c60575b5050505050815260200160038201805480602002602001604051908101604052809291908181526020018280548015610ce057602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610cc2575b5050505050815250509050919050565b333014610d10576040516306e34e6560e31b815260040160405180910390fd5b6040805160008082526020820190925281610d4d565b6040805180820190915260008082526020820152815260200190600190039081610d265790505b5060a08701515190915015610d8357610d808660a001518760200151886060015189600001516020015189898989611bb0565b90505b6040805160a081018252875151815287516020908101516001600160401b031681830152808901518351600094840192610dbe929101613d2d565b60408051601f19818403018152918152908252898101516020830152018390526005549091506001600160a01b03168015610e99576040516308d450a160e01b81526001600160a01b038216906308d450a190610e1f908590600401615406565b600060405180830381600087803b158015610e3957600080fd5b505af1925050508015610e4a575060015b610e99573d808015610e78576040519150601f19603f3d011682016040523d82523d6000602084013e610e7d565b606091505b50806040516309c2532560e01b815260040161078f9190613d2d565b604088015151158015610eae57506080880151155b80610ec5575060608801516001600160a01b03163b155b80610eec57506060880151610eea906001600160a01b03166385572ffb60e01b611d73565b155b15610ef957505050610fc9565b87516020908101516001600160401b03166000908152600690915260408082205460808b015160608c01519251633cf9798360e01b815284936001600160a01b0390931692633cf9798392610f579289926113889291600401615419565b6000604051808303816000875af1158015610f76573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610f9e9190810190615455565b509150915081610fc357806040516302a35ba360e21b815260040161078f9190613d2d565b50505050505b5050505050565b610fd8611d8f565b815181518114610ffb576040516320f8fd5960e21b815260040160405180910390fd5b60005b8181101561126757600084828151811061101a5761101a615015565b6020026020010151905060008160200151519050600085848151811061104257611042615015565b602002602001015190508051821461106d576040516320f8fd5960e21b815260040160405180910390fd5b60005b8281101561125857600082828151811061108c5761108c615015565b60200260200101516000015190506000856020015183815181106110b2576110b2615015565b6020026020010151905081600014611106578060800151821015611106578551815151604051633a98d46360e11b81526001600160401b03909216600483015260248201526044810183905260640161078f565b83838151811061111857611118615015565b602002602001015160200151518160a00151511461116557805180516060909101516040516370a193fd60e01b815260048101929092526001600160401b0316602482015260440161078f565b60005b8160a001515181101561124a57600085858151811061118957611189615015565b60200260200101516020015182815181106111a6576111a6615015565b602002602001015163ffffffff169050806000146112415760008360a0015183815181106111d6576111d6615015565b6020026020010151608001518060200190518101906111f591906154ea565b90508063ffffffff1682101561123f578351516040516348e617b360e01b815260048101919091526024810184905263ffffffff821660448201526064810183905260840161078f565b505b50600101611168565b505050806001019050611070565b50505050806001019050610ffe565b5061127283836119ca565b505050565b60408051608080820183526000808352602080840182905283850182905260608085018190526001600160401b03878116845260068352928690208651948501875280546001600160a01b0381168652600160a01b810460ff16151593860193909352600160a81b90920490921694830194909452600184018054939492939184019161130390615117565b80601f016020809104026020016040519081016040528092919081815260200182805461132f90615117565b8015610ce05780601f1061135157610100808354040283529160200191610ce0565b820191906000526020600020905b81548152906001019060200180831161135f57505050919092525091949350505050565b61138b6113d6565b61051381611df7565b61139c6113d6565b60005b81518110156113d2576113ca8282815181106113bd576113bd615015565b6020026020010151611ea0565b60010161139f565b5050565b6000546001600160a01b031633146114305760405162461bcd60e51b815260206004820152601660248201527f4f6e6c792063616c6c61626c65206279206f776e657200000000000000000000604482015260640161078f565b565b60005b81518110156113d257600082828151811061145257611452615015565b60200260200101519050600081602001519050806001600160401b031660000361148f5760405163c656089560e01b815260040160405180910390fd5b81516001600160a01b03166114b7576040516342bcdf7f60e11b815260040160405180910390fd5b6001600160401b038116600090815260066020526040902060608301516001820180546114e390615117565b905060000361154557815467ffffffffffffffff60a81b1916600160a81b1782556040516001600160401b03841681527ff4c1390c70e5c0f491ae1ccbc06f9117cbbadf2767b247b3bc203280f24c0fb99060200160405180910390a1611582565b8154600160a81b90046001600160401b031660011461158257604051632105803760e11b81526001600160401b038416600482015260240161078f565b805115806115b75750604080516000602082015201604051602081830303815290604052805190602001208180519060200120145b156115d5576040516342bcdf7f60e11b815260040160405180910390fd5b600182016115e38282615557565b50604080850151835486516001600160a01b03166001600160a01b0319921515600160a01b02929092167fffffffffffffffffffffff00000000000000000000000000000000000000000090911617178355516001600160401b038416907f49f51971edd25182e97182d6ea372a0488ce2ab639f6a3a7ab4df0d2636fe56b9061166e908590615616565b60405180910390a250505050806001019050611435565b6001600160401b03811660009081526006602052604081208054600160a01b900460ff16610aca5760405163ed053c5960e01b81526001600160401b038416600482015260240161078f565b60ff878116600090815260026020908152604080832081516080810183528154815260019091015480861693820193909352610100830485169181019190915262010000909104909216151560608301528735906117308760a4615664565b905082606001511561177857845161174990602061534e565b865161175690602061534e565b6117619060a0615664565b61176b9190615664565b6117759082615664565b90505b3681146117a157604051638e1192e160e01b81526004810182905236602482015260440161078f565b50815181146117d05781516040516324f7d61360e21b815260048101919091526024810182905260440161078f565b6117d8611d8f565b60ff808a166000908152600360209081526040808320338452825280832081518083019092528054808616835293949193909284019161010090910416600281111561182657611826613f15565b600281111561183757611837613f15565b905250905060028160200151600281111561185457611854613f15565b1480156118a85750600260008b60ff1660ff168152602001908152602001600020600301816000015160ff168154811061189057611890615015565b6000918252602090912001546001600160a01b031633145b6118c557604051631b41e11d60e31b815260040160405180910390fd5b508160600151156119755760208201516118e0906001615677565b60ff16855114611903576040516371253a2560e01b815260040160405180910390fd5b83518551146119255760405163a75d88af60e01b815260040160405180910390fd5b60008787604051611937929190615690565b60405190819003812061194e918b906020016156a0565b6040516020818303038152906040528051906020012090506119738a8288888861217f565b505b6040805182815260208a8101356001600160401b03169082015260ff8b16917f198d6990ef96613a9026203077e422916918b03ff47f0be6bee7b02d8e139ef0910160405180910390a2505050505050505050565b81516000036119eb5760405162bf199760e01b815260040160405180910390fd5b80516040805160008082526020820190925291159181611a2e565b604080518082019091526000815260606020820152815260200190600190039081611a065790505b50905060005b8451811015610fc957611a84858281518110611a5257611a52615015565b602002602001015184611a7e57858381518110611a7157611a71615015565b602002602001015161233c565b8361233c565b600101611a34565b6001600160401b038216600090815260076020526040812081611ab06080856156b4565b6001600160401b031681526020810191909152604001600020549392505050565b80516001600160a01b0316611af9576040516342bcdf7f60e11b815260040160405180910390fd5b805160048054602080850180516001600160a01b039586167fffffffffffffffff0000000000000000000000000000000000000000000000009094168417600160a01b63ffffffff928316021790945560408087018051600580546001600160a01b031916918916919091179055815194855291519094169183019190915251909216908201527fa1c15688cb2c24508e158f6942b9276c6f3028a85e1af8cf3fff0c3ff3d5fc8d9060600160405180910390a150565b606088516001600160401b03811115611bcb57611bcb6139df565b604051908082528060200260200182016040528015611c1057816020015b6040805180820190915260008082526020820152815260200190600190039081611be95790505b509050811560005b8a51811015611d655781611cc257848482818110611c3857611c38615015565b9050602002016020810190611c4d91906156da565b63ffffffff1615611cc257848482818110611c6a57611c6a615015565b9050602002016020810190611c7f91906156da565b6040805163ffffffff9092166020830152016040516020818303038152906040528b8281518110611cb257611cb2615015565b6020026020010151608001819052505b611d408b8281518110611cd757611cd7615015565b60200260200101518b8b8b8b8b87818110611cf457611cf4615015565b9050602002810190611d0691906156f7565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612bb092505050565b838281518110611d5257611d52615015565b6020908102919091010152600101611c18565b505098975050505050505050565b6000611d7e83612eae565b8015610ac75750610ac78383612ef9565b467f00000000000000000000000000000000000000000000000000000000000000001461143057604051630f01ce8560e01b81527f0000000000000000000000000000000000000000000000000000000000000000600482015246602482015260440161078f565b336001600160a01b03821603611e4f5760405162461bcd60e51b815260206004820152601760248201527f43616e6e6f74207472616e7366657220746f2073656c66000000000000000000604482015260640161078f565b600180546001600160a01b0319166001600160a01b0383811691821790925560008054604051929316917fed8889f560326eb138920d842192f0eb3dd22b4f139c87a2c57538e05bae12789190a350565b806040015160ff16600003611ecb576000604051631b3fab5160e11b815260040161078f919061573d565b60208082015160ff80821660009081526002909352604083206001810154929390928392169003611f1c576060840151600182018054911515620100000262ff000019909216919091179055611f58565b6060840151600182015460ff6201000090910416151590151514611f58576040516321fd80df60e21b815260ff8416600482015260240161078f565b60a084015180516101001015611f84576001604051631b3fab5160e11b815260040161078f919061573d565b611fea8484600301805480602002602001604051908101604052809291908181526020018280548015611fe057602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611fc2575b5050505050612f9b565b8460600151156120f4576120588484600201805480602002602001604051908101604052809291908181526020018280548015611fe0576020028201919060005260206000209081546001600160a01b03168152600190910190602001808311611fc2575050505050612f9b565b608085015180516101001015612084576002604051631b3fab5160e11b815260040161078f919061573d565b6040860151612094906003615757565b60ff168151116120ba576003604051631b3fab5160e11b815260040161078f919061573d565b805160018401805461ff00191661010060ff8416021790556120e59060028601906020840190613965565b506120f285826001613004565b505b61210084826002613004565b80516121159060038501906020840190613965565b5060408581015160018401805460ff191660ff8316179055865180855560a088015192517fab8b1b57514019638d7b5ce9c638fe71366fe8e2be1c40a7a80f1733d0e9f5479361216e9389939260028a01929190615773565b60405180910390a1610fc98461315f565b8251600090815b818110156123325760006001888684602081106121a5576121a5615015565b6121b291901a601b615677565b8985815181106121c4576121c4615015565b60200260200101518986815181106121de576121de615015565b60200260200101516040516000815260200160405260405161221c949392919093845260ff9290921660208401526040830152606082015260800190565b6020604051602081039080840390855afa15801561223e573d6000803e3d6000fd5b505060408051601f1981015160ff808e166000908152600360209081528582206001600160a01b0385168352815285822085870190965285548084168652939750909550929392840191610100900416600281111561229f5761229f613f15565b60028111156122b0576122b0613f15565b90525090506001816020015160028111156122cd576122cd613f15565b146122eb57604051636518c33d60e11b815260040160405180910390fd5b8051600160ff9091161b85161561231557604051633d9ef1f160e21b815260040160405180910390fd5b806000015160ff166001901b851794505050806001019050612186565b5050505050505050565b81518151604051632cbc26bb60e01b8152608083901b67ffffffffffffffff60801b166004820152901515907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690632cbc26bb90602401602060405180830381865afa1580156123b9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123dd91906150fa565b1561244e57801561240c57604051637edeb53960e11b81526001600160401b038316600482015260240161078f565b6040516001600160401b03831681527faab522ed53d887e56ed53dd37398a01aeef6a58e0fa77c2173beb9512d8949339060200160405180910390a150505050565b600061245983611685565b600101805461246790615117565b80601f016020809104026020016040519081016040528092919081815260200182805461249390615117565b80156124e05780601f106124b5576101008083540402835291602001916124e0565b820191906000526020600020905b8154815290600101906020018083116124c357829003601f168201915b5050506020880151519293505050600081900361250f5760405162bf199760e01b815260040160405180910390fd5b8560400151518114612534576040516357e0e08360e01b815260040160405180910390fd5b6000816001600160401b0381111561254e5761254e6139df565b604051908082528060200260200182016040528015612577578160200160208202803683370190505b50905060005b828110156126985760008860200151828151811061259d5761259d615015565b602002602001015190507f00000000000000000000000000000000000000000000000000000000000000006001600160401b03168160000151604001516001600160401b0316146126145780516040908101519051631c21951160e11b81526001600160401b03909116600482015260240161078f565b866001600160401b03168160000151602001516001600160401b03161461266857805160200151604051636c95f1eb60e01b81526001600160401b03808a166004830152909116602482015260440161078f565b61267281866131b6565b83838151811061268457612684615015565b60209081029190910101525060010161257d565b5060006126af86838a606001518b608001516132d8565b9050806000036126dd57604051633ee8bd3f60e11b81526001600160401b038716600482015260240161078f565b60005b83811015610a075760005a905060008a60200151838151811061270557612705615015565b6020026020010151905060006127238a836000015160600151610a7b565b9050600081600381111561273957612739613f15565b14806127565750600381600381111561275457612754613f15565b145b6127ac57815160600151604080516001600160401b03808e16825290921660208301527f3b575419319662b2a6f5e2467d84521517a3382b908eb3d557bb3fdb0c50e23c910160405180910390a1505050612ba8565b6060891561288b578b85815181106127c6576127c6615015565b6020908102919091018101510151600454909150600090600160a01b900463ffffffff166127f488426152ff565b11905080806128145750600383600381111561281257612812613f15565b145b61283c576040516354e7e43160e11b81526001600160401b038d16600482015260240161078f565b8c868151811061284e5761284e615015565b602002602001015160000151600014612885578c868151811061287357612873615015565b60209081029190910101515160808501525b506128f7565b600082600381111561289f5761289f613f15565b146128f757825160600151604080516001600160401b03808f16825290921660208301527f3ef2a99c550a751d4b0b261268f05a803dfb049ab43616a1ffb388f61fe65120910160405180910390a150505050612ba8565b8251608001516001600160401b0316156129d057600082600381111561291f5761291f613f15565b036129d0577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e0e03cae8c85600001516080015186602001516040518463ffffffff1660e01b815260040161298093929190615825565b6020604051808303816000875af115801561299f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129c391906150fa565b6129d05750505050612ba8565b60008d6040015186815181106129e8576129e8615015565b6020026020010151905080518460a001515114612a3257835160600151604051631cfe6d8b60e01b81526001600160401b03808f166004830152909116602482015260440161078f565b612a468c8560000151606001516001613315565b600080612a548684866133ba565b91509150612a6b8e87600001516060015184613315565b8c15612ac2576003826003811115612a8557612a85613f15565b03612ac2576000856003811115612a9e57612a9e613f15565b14612ac257855151604051632b11b8d960e01b815261078f91908390600401615851565b6002826003811115612ad657612ad6613f15565b14612b1b576003826003811115612aef57612aef613f15565b14612b1b578d866000015160600151836040516349362d1f60e11b815260040161078f9392919061586a565b8560000151600001518660000151606001516001600160401b03168f6001600160401b03167f05665fe9ad095383d018353f4cbcba77e84db27dd215081bbf7cdf9ae6fbe48b8d8c81518110612b7357612b73615015565b602002602001015186865a612b88908f6152ff565b604051612b98949392919061588f565b60405180910390a4505050505050505b6001016126e0565b60408051808201909152600080825260208201526000612bd3876020015161346e565b60405163bbe4f6db60e01b81526001600160a01b0380831660048301529192506000917f0000000000000000000000000000000000000000000000000000000000000000169063bbe4f6db90602401602060405180830381865afa158015612c3f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c6391906158c6565b90506001600160a01b0381161580612c925750612c906001600160a01b03821663aff2afbf60e01b611d73565b155b15612cbb5760405163ae9b4ce960e01b81526001600160a01b038216600482015260240161078f565b600080612ce688858c60800151806020019051810190612cdb91906154ea565b63ffffffff166134e2565b915091506000806000612d996040518061010001604052808e81526020018c6001600160401b031681526020018d6001600160a01b031681526020018f606001518152602001896001600160a01b031681526020018f6000015181526020018f6040015181526020018b815250604051602401612d6391906158e3565b60408051601f198184030181529190526020810180516001600160e01b0316633907753760e01b179052878661138860846135c5565b92509250925082612dbf578160405163e1cd550960e01b815260040161078f9190613d2d565b8151602014612dee578151604051631e3be00960e21b815260206004820152602481019190915260440161078f565b600082806020019051810190612e0491906159af565b9050866001600160a01b03168c6001600160a01b031614612e80576000612e358d8a612e30868a6152ff565b6134e2565b50905086811080612e4f575081612e4c88836152ff565b14155b15612e7e5760405163a966e21f60e01b815260048101839052602481018890526044810182905260640161078f565b505b604080518082019091526001600160a01b039098168852602088015250949550505050505095945050505050565b6000612ec1826301ffc9a760e01b612ef9565b8015610aca5750612ef2827fffffffff00000000000000000000000000000000000000000000000000000000612ef9565b1592915050565b6040517fffffffff0000000000000000000000000000000000000000000000000000000082166024820152600090819060440160408051601f19818403018152919052602080820180516001600160e01b03166301ffc9a760e01b178152825192935060009283928392909183918a617530fa92503d91506000519050828015612f84575060208210155b8015612f905750600081115b979650505050505050565b60005b81518110156112725760ff831660009081526003602052604081208351909190849084908110612fd057612fd0615015565b6020908102919091018101516001600160a01b03168252810191909152604001600020805461ffff19169055600101612f9e565b60005b8251811015610a7557600083828151811061302457613024615015565b602002602001015190506000600281111561304157613041613f15565b60ff80871660009081526003602090815260408083206001600160a01b0387168452909152902054610100900416600281111561308057613080613f15565b146130a1576004604051631b3fab5160e11b815260040161078f919061573d565b6001600160a01b0381166130c85760405163d6c62c9b60e01b815260040160405180910390fd5b60405180604001604052808360ff1681526020018460028111156130ee576130ee613f15565b905260ff80871660009081526003602090815260408083206001600160a01b0387168452825290912083518154931660ff198416811782559184015190929091839161ffff19161761010083600281111561314b5761314b613f15565b021790555090505050806001019050613007565b60ff81166105135760ff808216600090815260026020526040902060010154620100009004166131a257604051631e8ed32560e21b815260040160405180910390fd5b6009805467ffffffffffffffff1916905550565b8151602080820151604092830151925160009384936131fc937f2425b0b9f9054c76ff151b0a175b18f37a4a4e82013a72e9f15c9caa095ed21f939092918891016159c8565b60408051601f1981840301815290829052805160209182012086518051888401516060808b0151908401516080808d0151950151959761324597949693959294919391016159fa565b604051602081830303815290604052805190602001208560400151805190602001208660a0015160405160200161327c9190615afe565b60408051601f198184030181528282528051602091820120908301969096528101939093526060830191909152608082015260a081019190915260c0015b60405160208183030381529060405280519060200120905092915050565b6000806132e685858561369f565b6001600160401b038716600090815260086020908152604080832093835292905220549150505b949350505050565b60006002613324608085615328565b6001600160401b0316613337919061534e565b905060006133458585611a8c565b905081613354600160046152ff565b901b19168183600381111561336b5761336b613f15565b6001600160401b03871660009081526007602052604081209190921b929092179182916133996080886156b4565b6001600160401b031681526020810191909152604001600020555050505050565b60405163d434969160e01b8152600090606090309063d4349691906133e790889088908890600401615b95565b600060405180830381600087803b15801561340157600080fd5b505af1925050508015613412575060015b613451573d808015613440576040519150601f19603f3d011682016040523d82523d6000602084013e613445565b606091505b50600392509050613466565b50506040805160208101909152600081526002905b935093915050565b60008151602014613494578160405163046b337b60e51b815260040161078f9190613d2d565b6000828060200190518101906134aa91906159af565b90506001600160a01b038111806134c2575061040081105b15610aca578260405163046b337b60e51b815260040161078f9190613d2d565b60008060008060006135438860405160240161350d91906001600160a01b0391909116815260200190565b60408051601f198184030181529190526020810180516001600160e01b03166370a0823160e01b179052888861138860846135c5565b92509250925082613569578160405163e1cd550960e01b815260040161078f9190613d2d565b6020825114613598578151604051631e3be00960e21b815260206004820152602481019190915260440161078f565b818060200190518101906135ac91906159af565b6135b682886152ff565b94509450505050935093915050565b6000606060008361ffff166001600160401b038111156135e7576135e76139df565b6040519080825280601f01601f191660200182016040528015613611576020820181803683370190505b509150863b61362b5763030ed58f60e21b60005260046000fd5b5a8581101561364557632be8ca8b60e21b60005260046000fd5b8590036040810481038710613665576337c3be2960e01b60005260046000fd5b505a6000808a5160208c0160008c8cf193505a900390503d848111156136885750835b808352806000602085013e50955095509592505050565b82518251600091908183036136c757604051630469ac9960e21b815260040160405180910390fd5b61010182118015906136db57506101018111155b6136f8576040516309bde33960e01b815260040160405180910390fd5b60001982820101610100811115613722576040516309bde33960e01b815260040160405180910390fd5b8060000361374f578660008151811061373d5761373d615015565b6020026020010151935050505061391d565b6000816001600160401b03811115613769576137696139df565b604051908082528060200260200182016040528015613792578160200160208202803683370190505b50905060008080805b858110156138bc5760006001821b8b8116036137f657888510156137df578c5160018601958e9181106137d0576137d0615015565b60200260200101519050613818565b85516001850194879181106137d0576137d0615015565b8b5160018401938d91811061380d5761380d615015565b602002602001015190505b600089861015613848578d5160018701968f91811061383957613839615015565b6020026020010151905061386a565b865160018601958891811061385f5761385f615015565b602002602001015190505b8285111561388b576040516309bde33960e01b815260040160405180910390fd5b6138958282613924565b8784815181106138a7576138a7615015565b6020908102919091010152505060010161379b565b5060018503821480156138ce57508683145b80156138d957508581145b6138f6576040516309bde33960e01b815260040160405180910390fd5b83600186038151811061390b5761390b615015565b60200260200101519750505050505050505b9392505050565b600081831061393c576139378284613942565b610ac7565b610ac783835b6040805160016020820152908101839052606081018290526000906080016132ba565b8280548282559060005260206000209081019282156139ba579160200282015b828111156139ba57825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190613985565b506139c69291506139ca565b5090565b5b808211156139c657600081556001016139cb565b634e487b7160e01b600052604160045260246000fd5b604051608081016001600160401b0381118282101715613a1757613a176139df565b60405290565b604051606081016001600160401b0381118282101715613a1757613a176139df565b60405160a081016001600160401b0381118282101715613a1757613a176139df565b60405160c081016001600160401b0381118282101715613a1757613a176139df565b604080519081016001600160401b0381118282101715613a1757613a176139df565b604051601f8201601f191681016001600160401b0381118282101715613acd57613acd6139df565b604052919050565b60006001600160401b03821115613aee57613aee6139df565b5060051b60200190565b6001600160a01b038116811461051357600080fd5b80356001600160401b0381168114613b2457600080fd5b919050565b801515811461051357600080fd5b8035613b2481613b29565b60006001600160401b03821115613b5b57613b5b6139df565b50601f01601f191660200190565b600082601f830112613b7a57600080fd5b8135613b8d613b8882613b42565b613aa5565b818152846020838601011115613ba257600080fd5b816020850160208301376000918101602001919091529392505050565b60006020808385031215613bd257600080fd5b82356001600160401b0380821115613be957600080fd5b818501915085601f830112613bfd57600080fd5b8135613c0b613b8882613ad5565b81815260059190911b83018401908481019088831115613c2a57600080fd5b8585015b83811015613cd057803585811115613c465760008081fd5b86016080818c03601f1901811315613c5e5760008081fd5b613c666139f5565b89830135613c7381613af8565b81526040613c82848201613b0d565b8b830152606080850135613c9581613b29565b83830152928401359289841115613cae57600091508182fd5b613cbc8f8d86880101613b69565b908301525085525050918601918601613c2e565b5098975050505050505050565b60005b83811015613cf8578181015183820152602001613ce0565b50506000910152565b60008151808452613d19816020860160208601613cdd565b601f01601f19169290920160200192915050565b602081526000610ac76020830184613d01565b8060608101831015610aca57600080fd5b60008083601f840112613d6357600080fd5b5081356001600160401b03811115613d7a57600080fd5b602083019150836020828501011115613d9257600080fd5b9250929050565b60008083601f840112613dab57600080fd5b5081356001600160401b03811115613dc257600080fd5b6020830191508360208260051b8501011115613d9257600080fd5b60008060008060008060008060e0898b031215613df957600080fd5b613e038a8a613d40565b975060608901356001600160401b0380821115613e1f57600080fd5b613e2b8c838d01613d51565b909950975060808b0135915080821115613e4457600080fd5b613e508c838d01613d99565b909750955060a08b0135915080821115613e6957600080fd5b50613e768b828c01613d99565b999c989b50969995989497949560c00135949350505050565b600080600060808486031215613ea457600080fd5b613eae8585613d40565b925060608401356001600160401b03811115613ec957600080fd5b613ed586828701613d51565b9497909650939450505050565b60008060408385031215613ef557600080fd5b613efe83613b0d565b9150613f0c60208401613b0d565b90509250929050565b634e487b7160e01b600052602160045260246000fd5b60048110613f3b57613f3b613f15565b9052565b60208101610aca8284613f2b565b8035613b2481613af8565b63ffffffff8116811461051357600080fd5b600060608284031215613f7c57600080fd5b613f84613a1d565b8235613f8f81613af8565b81526020830135613f9f81613f58565b60208201526040830135613fb281613af8565b60408201529392505050565b600060208284031215613fd057600080fd5b81356001600160401b03811115613fe657600080fd5b820160a0818503121561391d57600080fd5b803560ff81168114613b2457600080fd5b60006020828403121561401b57600080fd5b610ac782613ff8565b60008151808452602080850194506020840160005b8381101561405e5781516001600160a01b031687529582019590820190600101614039565b509495945050505050565b60208152600082518051602084015260ff602082015116604084015260ff604082015116606084015260608101511515608084015250602083015160c060a08401526140b860e0840182614024565b90506040840151601f198483030160c08501526140d58282614024565b95945050505050565b600080604083850312156140f157600080fd5b6140fa83613b0d565b946020939093013593505050565b600060a0828403121561411a57600080fd5b614122613a3f565b90508135815261413460208301613b0d565b602082015261414560408301613b0d565b604082015261415660608301613b0d565b606082015261416760808301613b0d565b608082015292915050565b600082601f83011261418357600080fd5b81356020614193613b8883613ad5565b82815260059290921b840181019181810190868411156141b257600080fd5b8286015b848110156142ac5780356001600160401b03808211156141d65760008081fd5b9088019060a0828b03601f19018113156141f05760008081fd5b6141f8613a3f565b878401358381111561420a5760008081fd5b6142188d8a83880101613b69565b8252506040808501358481111561422f5760008081fd5b61423d8e8b83890101613b69565b8a84015250606080860135858111156142565760008081fd5b6142648f8c838a0101613b69565b8385015250608091508186013581840152508285013592508383111561428a5760008081fd5b6142988d8a85880101613b69565b9082015286525050509183019183016141b6565b509695505050505050565b600061014082840312156142ca57600080fd5b6142d2613a61565b90506142de8383614108565b815260a08201356001600160401b03808211156142fa57600080fd5b61430685838601613b69565b602084015260c084013591508082111561431f57600080fd5b61432b85838601613b69565b604084015261433c60e08501613f4d565b6060840152610100840135608084015261012084013591508082111561436157600080fd5b5061436e84828501614172565b60a08301525092915050565b60008060008060006060868803121561439257600080fd5b85356001600160401b03808211156143a957600080fd5b6143b589838a016142b7565b965060208801359150808211156143cb57600080fd5b6143d789838a01613d99565b909650945060408801359150808211156143f057600080fd5b506143fd88828901613d99565b969995985093965092949392505050565b600082601f83011261441f57600080fd5b8135602061442f613b8883613ad5565b82815260059290921b8401810191818101908684111561444e57600080fd5b8286015b848110156142ac5780356001600160401b038111156144715760008081fd5b61447f8986838b01016142b7565b845250918301918301614452565b600082601f83011261449e57600080fd5b813560206144ae613b8883613ad5565b82815260059290921b840181019181810190868411156144cd57600080fd5b8286015b848110156142ac5780356001600160401b03808211156144f057600080fd5b818901915089603f83011261450457600080fd5b85820135614514613b8882613ad5565b81815260059190911b830160400190878101908c83111561453457600080fd5b604085015b8381101561456d5780358581111561455057600080fd5b61455f8f6040838a0101613b69565b845250918901918901614539565b508752505050928401925083016144d1565b600082601f83011261459057600080fd5b813560206145a0613b8883613ad5565b8083825260208201915060208460051b8701019350868411156145c257600080fd5b602086015b848110156142ac57803583529183019183016145c7565b600082601f8301126145ef57600080fd5b813560206145ff613b8883613ad5565b82815260059290921b8401810191818101908684111561461e57600080fd5b8286015b848110156142ac5780356001600160401b03808211156146425760008081fd5b9088019060a0828b03601f190181131561465c5760008081fd5b614664613a3f565b61466f888501613b0d565b8152604080850135848111156146855760008081fd5b6146938e8b8389010161440e565b8a84015250606080860135858111156146ac5760008081fd5b6146ba8f8c838a010161448d565b83850152506080915081860135858111156146d55760008081fd5b6146e38f8c838a010161457f565b9184019190915250919093013590830152508352918301918301614622565b6000806040838503121561471557600080fd5b6001600160401b038335111561472a57600080fd5b61473784843585016145de565b91506001600160401b036020840135111561475157600080fd5b6020830135830184601f82011261476757600080fd5b614774613b888235613ad5565b81358082526020808301929160051b84010187101561479257600080fd5b602083015b6020843560051b85010181101561493b576001600160401b03813511156147bd57600080fd5b87603f8235860101126147cf57600080fd5b6147e2613b886020833587010135613ad5565b81358501602081810135808452908301929160059190911b016040018a101561480a57600080fd5b604083358701015b83358701602081013560051b0160400181101561492b576001600160401b038135111561483e57600080fd5b833587018135016040818d03603f1901121561485957600080fd5b614861613a83565b604082013581526001600160401b036060830135111561488057600080fd5b8c605f60608401358401011261489557600080fd5b60406060830135830101356148ac613b8882613ad5565b808282526020820191508f60608460051b60608801358801010111156148d157600080fd5b6060808601358601015b60608460051b60608801358801010181101561490b576148fb8135613f58565b80358352602092830192016148db565b508060208501525050508085525050602083019250602081019050614812565b5084525060209283019201614797565b508093505050509250929050565b60006020828403121561495b57600080fd5b610ac782613b0d565b602081526001600160a01b0382511660208201526020820151151560408201526001600160401b0360408301511660608201526000606083015160808084015261330d60a0840182613d01565b6000602082840312156149c357600080fd5b813561391d81613af8565b600082601f8301126149df57600080fd5b813560206149ef613b8883613ad5565b8083825260208201915060208460051b870101935086841115614a1157600080fd5b602086015b848110156142ac578035614a2981613af8565b8352918301918301614a16565b60006020808385031215614a4957600080fd5b82356001600160401b0380821115614a6057600080fd5b818501915085601f830112614a7457600080fd5b8135614a82613b8882613ad5565b81815260059190911b83018401908481019088831115614aa157600080fd5b8585015b83811015613cd057803585811115614abc57600080fd5b860160c0818c03601f19011215614ad35760008081fd5b614adb613a61565b8882013581526040614aee818401613ff8565b8a8301526060614aff818501613ff8565b8284015260809150614b12828501613b37565b9083015260a08381013589811115614b2a5760008081fd5b614b388f8d838801016149ce565b838501525060c0840135915088821115614b525760008081fd5b614b608e8c848701016149ce565b9083015250845250918601918601614aa5565b80356001600160e01b0381168114613b2457600080fd5b600082601f830112614b9b57600080fd5b81356020614bab613b8883613ad5565b82815260069290921b84018101918181019086841115614bca57600080fd5b8286015b848110156142ac5760408189031215614be75760008081fd5b614bef613a83565b614bf882613b0d565b8152614c05858301614b73565b81860152835291830191604001614bce565b600082601f830112614c2857600080fd5b81356020614c38613b8883613ad5565b82815260059290921b84018101918181019086841115614c5757600080fd5b8286015b848110156142ac5780356001600160401b0380821115614c7b5760008081fd5b9088019060a0828b03601f1901811315614c955760008081fd5b614c9d613a3f565b614ca8888501613b0d565b815260408085013584811115614cbe5760008081fd5b614ccc8e8b83890101613b69565b8a8401525060609350614ce0848601613b0d565b908201526080614cf1858201613b0d565b93820193909352920135908201528352918301918301614c5b565b600082601f830112614d1d57600080fd5b81356020614d2d613b8883613ad5565b82815260069290921b84018101918181019086841115614d4c57600080fd5b8286015b848110156142ac5760408189031215614d695760008081fd5b614d71613a83565b813581528482013585820152835291830191604001614d50565b60006020808385031215614d9e57600080fd5b82356001600160401b0380821115614db557600080fd5b9084019060608287031215614dc957600080fd5b614dd1613a1d565b823582811115614de057600080fd5b83016040818903811315614df357600080fd5b614dfb613a83565b823585811115614e0a57600080fd5b8301601f81018b13614e1b57600080fd5b8035614e29613b8882613ad5565b81815260069190911b8201890190898101908d831115614e4857600080fd5b928a01925b82841015614e985785848f031215614e655760008081fd5b614e6d613a83565b8435614e7881613af8565b8152614e85858d01614b73565b818d0152825292850192908a0190614e4d565b845250505082870135915084821115614eb057600080fd5b614ebc8a838501614b8a565b81880152835250508284013582811115614ed557600080fd5b614ee188828601614c17565b85830152506040830135935081841115614efa57600080fd5b614f0687858501614d0c565b60408201529695505050505050565b600082825180855260208086019550808260051b84010181860160005b84811015614fa657601f19868403018952815160a06001600160401b03808351168652868301518288880152614f6a83880182613d01565b60408581015184169089015260608086015190931692880192909252506080928301519290950191909152509783019790830190600101614f32565b5090979650505050505050565b60006040808352614fc76040840186614f15565b83810360208581019190915285518083528682019282019060005b8181101561500757845180518452840151848401529383019391850191600101614fe2565b509098975050505050505050565b634e487b7160e01b600052603260045260246000fd5b805160408084528151848201819052600092602091908201906060870190855b8181101561508257835180516001600160a01b031684528501516001600160e01b031685840152928401929185019160010161504b565b50508583015187820388850152805180835290840192506000918401905b808310156150db57835180516001600160401b031683528501516001600160e01b0316858301529284019260019290920191908501906150a0565b50979650505050505050565b602081526000610ac7602083018461502b565b60006020828403121561510c57600080fd5b815161391d81613b29565b600181811c9082168061512b57607f821691505b60208210810361514b57634e487b7160e01b600052602260045260246000fd5b50919050565b600080835461515f81615117565b60018281168015615177576001811461518c576151bb565b60ff19841687528215158302870194506151bb565b8760005260208060002060005b858110156151b25781548a820152908401908201615199565b50505082870194505b50929695505050505050565b600081546151d481615117565b8085526020600183811680156151f1576001811461520b57615239565b60ff1985168884015283151560051b880183019550615239565b866000528260002060005b858110156152315781548a8201860152908301908401615216565b890184019650505b505050505092915050565b6040815260006152576040830185613d01565b82810360208401526140d581856151c7565b634e487b7160e01b600052601160045260246000fd5b6001600160401b0381811683821601908082111561529f5761529f615269565b5092915050565b6040815260006152b96040830185614f15565b82810360208401526140d5818561502b565b6000602082840312156152dd57600080fd5b81356001600160401b038111156152f357600080fd5b61330d848285016145de565b81810381811115610aca57610aca615269565b634e487b7160e01b600052601260045260246000fd5b60006001600160401b038084168061534257615342615312565b92169190910692915050565b8082028115828204841417610aca57610aca615269565b80518252600060206001600160401b0381840151168185015260408084015160a0604087015261539860a0870182613d01565b9050606085015186820360608801526153b18282613d01565b608087810151898303918a01919091528051808352908601935060009250908501905b808310156150db57835180516001600160a01b03168352860151868301529285019260019290920191908401906153d4565b602081526000610ac76020830184615365565b60808152600061542c6080830187615365565b61ffff9590951660208301525060408101929092526001600160a01b0316606090910152919050565b60008060006060848603121561546a57600080fd5b835161547581613b29565b60208501519093506001600160401b0381111561549157600080fd5b8401601f810186136154a257600080fd5b80516154b0613b8882613b42565b8181528760208385010111156154c557600080fd5b6154d6826020830160208601613cdd565b809450505050604084015190509250925092565b6000602082840312156154fc57600080fd5b815161391d81613f58565b601f821115611272576000816000526020600020601f850160051c810160208610156155305750805b601f850160051c820191505b8181101561554f5782815560010161553c565b505050505050565b81516001600160401b03811115615570576155706139df565b6155848161557e8454615117565b84615507565b602080601f8311600181146155b957600084156155a15750858301515b600019600386901b1c1916600185901b17855561554f565b600085815260208120601f198616915b828110156155e8578886015182559484019460019091019084016155c9565b50858210156156065787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60208152600082546001600160a01b038116602084015260ff8160a01c16151560408401526001600160401b038160a81c16606084015250608080830152610ac760a08301600185016151c7565b80820180821115610aca57610aca615269565b60ff8181168382160190811115610aca57610aca615269565b8183823760009101908152919050565b828152606082602083013760800192915050565b60006001600160401b03808416806156ce576156ce615312565b92169190910492915050565b6000602082840312156156ec57600080fd5b813561391d81613f58565b6000808335601e1984360301811261570e57600080fd5b8301803591506001600160401b0382111561572857600080fd5b602001915036819003821315613d9257600080fd5b602081016005831061575157615751613f15565b91905290565b60ff818116838216029081169081811461529f5761529f615269565b600060a0820160ff881683526020878185015260a0604085015281875480845260c0860191508860005282600020935060005b818110156157cb5784546001600160a01b0316835260019485019492840192016157a6565b50508481036060860152865180825290820192508187019060005b8181101561580b5782516001600160a01b0316855293830193918301916001016157e6565b50505060ff851660808501525090505b9695505050505050565b60006001600160401b038086168352808516602084015250606060408301526140d56060830184613d01565b82815260406020820152600061330d6040830184613d01565b6001600160401b038481168252831660208201526060810161330d6040830184613f2b565b84815261589f6020820185613f2b565b6080604082015260006158b56080830185613d01565b905082606083015295945050505050565b6000602082840312156158d857600080fd5b815161391d81613af8565b6020815260008251610100806020850152615902610120850183613d01565b9150602085015161591e60408601826001600160401b03169052565b5060408501516001600160a01b03811660608601525060608501516080850152608085015161595860a08601826001600160a01b03169052565b5060a0850151601f19808685030160c08701526159758483613d01565b935060c08701519150808685030160e08701526159928483613d01565b935060e087015191508086850301838701525061581b8382613d01565b6000602082840312156159c157600080fd5b5051919050565b84815260006001600160401b0380861660208401528085166040840152506080606083015261581b6080830184613d01565b86815260c060208201526000615a1360c0830188613d01565b6001600160a01b03969096166040830152506001600160401b039384166060820152608081019290925290911660a09091015292915050565b600082825180855260208086019550808260051b84010181860160005b84811015614fa657601f19868403018952815160a08151818652615a8f82870182613d01565b9150508582015185820387870152615aa78282613d01565b91505060408083015186830382880152615ac18382613d01565b92505050606080830151818701525060808083015192508582038187015250615aea8183613d01565b9a86019a9450505090830190600101615a69565b602081526000610ac76020830184615a4c565b60008282518085526020808601955060208260051b8401016020860160005b84811015614fa657601f19868403018952615b4c838351613d01565b98840198925090830190600101615b30565b60008151808452602080850194506020840160005b8381101561405e57815163ffffffff1687529582019590820190600101615b73565b60608152600084518051606084015260208101516001600160401b0380821660808601528060408401511660a08601528060608401511660c08601528060808401511660e0860152505050602085015161014080610100850152615bfd6101a0850183613d01565b91506040870151605f198086850301610120870152615c1c8483613d01565b935060608901519150615c39838701836001600160a01b03169052565b608089015161016087015260a0890151925080868503016101808701525050615c628282615a4c565b9150508281036020840152615c778186615b11565b9050828103604084015261581b8185615b5e56fea164736f6c6343000818000a", + ABI: "[{\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"chainSelector\",\"type\":\"uint64\"},{\"internalType\":\"contractIRMNV2\",\"name\":\"rmn\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tokenAdminRegistry\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"nonceManager\",\"type\":\"address\"}],\"internalType\":\"structOffRamp.StaticConfig\",\"name\":\"staticConfig\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"feeQuoter\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"permissionLessExecutionThresholdSeconds\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"messageValidator\",\"type\":\"address\"}],\"internalType\":\"structOffRamp.DynamicConfig\",\"name\":\"dynamicConfig\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"contractIRouter\",\"name\":\"router\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"bool\",\"name\":\"isEnabled\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"onRamp\",\"type\":\"bytes\"}],\"internalType\":\"structOffRamp.SourceChainConfigArgs[]\",\"name\":\"sourceChainConfigs\",\"type\":\"tuple[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"CanOnlySelfCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"reportOnRamp\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"configOnRamp\",\"type\":\"bytes\"}],\"name\":\"CommitOnRampMismatch\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"expected\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"actual\",\"type\":\"bytes32\"}],\"name\":\"ConfigDigestMismatch\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"}],\"name\":\"CursedByRMN\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"EmptyReport\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"messageId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"err\",\"type\":\"bytes\"}],\"name\":\"ExecutionError\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"expected\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"actual\",\"type\":\"uint256\"}],\"name\":\"ForkedChain\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"enumMultiOCR3Base.InvalidConfigErrorType\",\"name\":\"errorType\",\"type\":\"uint8\"}],\"name\":\"InvalidConfig\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"expected\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"got\",\"type\":\"uint256\"}],\"name\":\"InvalidDataLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"encodedAddress\",\"type\":\"bytes\"}],\"name\":\"InvalidEVMAddress\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"min\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"max\",\"type\":\"uint64\"}],\"name\":\"InvalidInterval\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"messageId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"newLimit\",\"type\":\"uint256\"}],\"name\":\"InvalidManualExecutionGasLimit\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"messageId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"tokenIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"oldLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"tokenGasOverride\",\"type\":\"uint256\"}],\"name\":\"InvalidManualExecutionTokenGasOverride\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"messageDestChainSelector\",\"type\":\"uint64\"}],\"name\":\"InvalidMessageDestChainSelector\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"sequenceNumber\",\"type\":\"uint64\"},{\"internalType\":\"enumInternal.MessageExecutionState\",\"name\":\"newState\",\"type\":\"uint8\"}],\"name\":\"InvalidNewState\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"}],\"name\":\"InvalidOnRampUpdate\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidProof\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidRoot\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LeavesCannotBeEmpty\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"messageId\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"sequenceNumber\",\"type\":\"uint64\"}],\"name\":\"ManualExecutionGasAmountCountMismatch\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ManualExecutionGasLimitMismatch\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"}],\"name\":\"ManualExecutionNotYetEnabled\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"errorReason\",\"type\":\"bytes\"}],\"name\":\"MessageValidationError\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NonUniqueSignatures\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"notPool\",\"type\":\"address\"}],\"name\":\"NotACompatiblePool\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OracleCannotBeZeroAddress\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"err\",\"type\":\"bytes\"}],\"name\":\"ReceiverError\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amountReleased\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balancePre\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balancePost\",\"type\":\"uint256\"}],\"name\":\"ReleaseOrMintBalanceMismatch\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"merkleRoot\",\"type\":\"bytes32\"}],\"name\":\"RootAlreadyCommitted\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"}],\"name\":\"RootNotCommitted\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SignatureVerificationDisabled\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SignaturesOutOfRegistration\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"}],\"name\":\"SourceChainNotEnabled\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"reportSourceChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"messageSourceChainSelector\",\"type\":\"uint64\"}],\"name\":\"SourceChainSelectorMismatch\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"StaleCommitReport\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"ocrPluginType\",\"type\":\"uint8\"}],\"name\":\"StaticConfigCannotBeChanged\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"sequenceNumber\",\"type\":\"uint64\"}],\"name\":\"TokenDataMismatch\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"err\",\"type\":\"bytes\"}],\"name\":\"TokenHandlingError\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UnauthorizedSigner\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UnauthorizedTransmitter\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UnexpectedTokenData\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"expected\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"actual\",\"type\":\"uint256\"}],\"name\":\"WrongMessageLength\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"WrongNumberOfSignatures\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZeroAddressNotAllowed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZeroChainSelectorNotAllowed\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"sequenceNumber\",\"type\":\"uint64\"}],\"name\":\"AlreadyAttempted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"onRampAddress\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"minSeqNr\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"maxSeqNr\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"merkleRoot\",\"type\":\"bytes32\"}],\"indexed\":false,\"internalType\":\"structInternal.MerkleRoot[]\",\"name\":\"merkleRoots\",\"type\":\"tuple[]\"},{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"sourceToken\",\"type\":\"address\"},{\"internalType\":\"uint224\",\"name\":\"usdPerToken\",\"type\":\"uint224\"}],\"internalType\":\"structInternal.TokenPriceUpdate[]\",\"name\":\"tokenPriceUpdates\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"uint64\",\"name\":\"destChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"uint224\",\"name\":\"usdPerUnitGas\",\"type\":\"uint224\"}],\"internalType\":\"structInternal.GasPriceUpdate[]\",\"name\":\"gasPriceUpdates\",\"type\":\"tuple[]\"}],\"indexed\":false,\"internalType\":\"structInternal.PriceUpdates\",\"name\":\"priceUpdates\",\"type\":\"tuple\"}],\"name\":\"CommitReportAccepted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"ocrPluginType\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"configDigest\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"signers\",\"type\":\"address[]\"},{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"transmitters\",\"type\":\"address[]\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"F\",\"type\":\"uint8\"}],\"name\":\"ConfigSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"feeQuoter\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"permissionLessExecutionThresholdSeconds\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"messageValidator\",\"type\":\"address\"}],\"indexed\":false,\"internalType\":\"structOffRamp.DynamicConfig\",\"name\":\"dynamicConfig\",\"type\":\"tuple\"}],\"name\":\"DynamicConfigSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"sequenceNumber\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"messageId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"messageHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"enumInternal.MessageExecutionState\",\"name\":\"state\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"returnData\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"gasUsed\",\"type\":\"uint256\"}],\"name\":\"ExecutionStateChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"OwnershipTransferRequested\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"root\",\"type\":\"bytes32\"}],\"name\":\"RootRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"sequenceNumber\",\"type\":\"uint64\"}],\"name\":\"SkippedAlreadyExecutedMessage\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"}],\"name\":\"SkippedReportExecution\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"components\":[{\"internalType\":\"contractIRouter\",\"name\":\"router\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"isEnabled\",\"type\":\"bool\"},{\"internalType\":\"uint64\",\"name\":\"minSeqNr\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"onRamp\",\"type\":\"bytes\"}],\"indexed\":false,\"internalType\":\"structOffRamp.SourceChainConfig\",\"name\":\"sourceConfig\",\"type\":\"tuple\"}],\"name\":\"SourceChainConfigSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"}],\"name\":\"SourceChainSelectorAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"chainSelector\",\"type\":\"uint64\"},{\"internalType\":\"contractIRMNV2\",\"name\":\"rmn\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tokenAdminRegistry\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"nonceManager\",\"type\":\"address\"}],\"indexed\":false,\"internalType\":\"structOffRamp.StaticConfig\",\"name\":\"staticConfig\",\"type\":\"tuple\"}],\"name\":\"StaticConfigSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint8\",\"name\":\"ocrPluginType\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"configDigest\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"sequenceNumber\",\"type\":\"uint64\"}],\"name\":\"Transmitted\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"acceptOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"contractIRouter\",\"name\":\"router\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"bool\",\"name\":\"isEnabled\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"onRamp\",\"type\":\"bytes\"}],\"internalType\":\"structOffRamp.SourceChainConfigArgs[]\",\"name\":\"sourceChainConfigUpdates\",\"type\":\"tuple[]\"}],\"name\":\"applySourceChainConfigUpdates\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"messageId\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"sender\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"structClient.EVMTokenAmount[]\",\"name\":\"destTokenAmounts\",\"type\":\"tuple[]\"}],\"internalType\":\"structClient.Any2EVMMessage\",\"name\":\"\",\"type\":\"tuple\"}],\"name\":\"ccipReceive\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32[3]\",\"name\":\"reportContext\",\"type\":\"bytes32[3]\"},{\"internalType\":\"bytes\",\"name\":\"report\",\"type\":\"bytes\"},{\"internalType\":\"bytes32[]\",\"name\":\"rs\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes32[]\",\"name\":\"ss\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes32\",\"name\":\"rawVs\",\"type\":\"bytes32\"}],\"name\":\"commit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32[3]\",\"name\":\"reportContext\",\"type\":\"bytes32[3]\"},{\"internalType\":\"bytes\",\"name\":\"report\",\"type\":\"bytes\"}],\"name\":\"execute\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"messageId\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"destChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"sequenceNumber\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"internalType\":\"structInternal.RampMessageHeader\",\"name\":\"header\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"sender\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"gasLimit\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"bytes\",\"name\":\"sourcePoolAddress\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"destTokenAddress\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"extraData\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"destExecData\",\"type\":\"bytes\"}],\"internalType\":\"structInternal.RampTokenAmount[]\",\"name\":\"tokenAmounts\",\"type\":\"tuple[]\"}],\"internalType\":\"structInternal.Any2EVMRampMessage\",\"name\":\"message\",\"type\":\"tuple\"},{\"internalType\":\"bytes[]\",\"name\":\"offchainTokenData\",\"type\":\"bytes[]\"},{\"internalType\":\"uint32[]\",\"name\":\"tokenGasOverrides\",\"type\":\"uint32[]\"}],\"name\":\"executeSingleMessage\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getDynamicConfig\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"feeQuoter\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"permissionLessExecutionThresholdSeconds\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"messageValidator\",\"type\":\"address\"}],\"internalType\":\"structOffRamp.DynamicConfig\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"sequenceNumber\",\"type\":\"uint64\"}],\"name\":\"getExecutionState\",\"outputs\":[{\"internalType\":\"enumInternal.MessageExecutionState\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getLatestPriceSequenceNumber\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"root\",\"type\":\"bytes32\"}],\"name\":\"getMerkleRoot\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"}],\"name\":\"getSourceChainConfig\",\"outputs\":[{\"components\":[{\"internalType\":\"contractIRouter\",\"name\":\"router\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"isEnabled\",\"type\":\"bool\"},{\"internalType\":\"uint64\",\"name\":\"minSeqNr\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"onRamp\",\"type\":\"bytes\"}],\"internalType\":\"structOffRamp.SourceChainConfig\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getStaticConfig\",\"outputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"chainSelector\",\"type\":\"uint64\"},{\"internalType\":\"contractIRMNV2\",\"name\":\"rmn\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tokenAdminRegistry\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"nonceManager\",\"type\":\"address\"}],\"internalType\":\"structOffRamp.StaticConfig\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"ocrPluginType\",\"type\":\"uint8\"}],\"name\":\"latestConfigDetails\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"configDigest\",\"type\":\"bytes32\"},{\"internalType\":\"uint8\",\"name\":\"F\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"n\",\"type\":\"uint8\"},{\"internalType\":\"bool\",\"name\":\"isSignatureVerificationEnabled\",\"type\":\"bool\"}],\"internalType\":\"structMultiOCR3Base.ConfigInfo\",\"name\":\"configInfo\",\"type\":\"tuple\"},{\"internalType\":\"address[]\",\"name\":\"signers\",\"type\":\"address[]\"},{\"internalType\":\"address[]\",\"name\":\"transmitters\",\"type\":\"address[]\"}],\"internalType\":\"structMultiOCR3Base.OCRConfig\",\"name\":\"ocrConfig\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"components\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"messageId\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"destChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"sequenceNumber\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"internalType\":\"structInternal.RampMessageHeader\",\"name\":\"header\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"sender\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"gasLimit\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"bytes\",\"name\":\"sourcePoolAddress\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"destTokenAddress\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"extraData\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"destExecData\",\"type\":\"bytes\"}],\"internalType\":\"structInternal.RampTokenAmount[]\",\"name\":\"tokenAmounts\",\"type\":\"tuple[]\"}],\"internalType\":\"structInternal.Any2EVMRampMessage[]\",\"name\":\"messages\",\"type\":\"tuple[]\"},{\"internalType\":\"bytes[][]\",\"name\":\"offchainTokenData\",\"type\":\"bytes[][]\"},{\"internalType\":\"bytes32[]\",\"name\":\"proofs\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"proofFlagBits\",\"type\":\"uint256\"}],\"internalType\":\"structInternal.ExecutionReportSingleChain[]\",\"name\":\"reports\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"receiverExecutionGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint32[]\",\"name\":\"tokenGasOverrides\",\"type\":\"uint32[]\"}],\"internalType\":\"structOffRamp.GasLimitOverride[][]\",\"name\":\"gasLimitOverrides\",\"type\":\"tuple[][]\"}],\"name\":\"manuallyExecute\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"feeQuoter\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"permissionLessExecutionThresholdSeconds\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"messageValidator\",\"type\":\"address\"}],\"internalType\":\"structOffRamp.DynamicConfig\",\"name\":\"dynamicConfig\",\"type\":\"tuple\"}],\"name\":\"setDynamicConfig\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"configDigest\",\"type\":\"bytes32\"},{\"internalType\":\"uint8\",\"name\":\"ocrPluginType\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"F\",\"type\":\"uint8\"},{\"internalType\":\"bool\",\"name\":\"isSignatureVerificationEnabled\",\"type\":\"bool\"},{\"internalType\":\"address[]\",\"name\":\"signers\",\"type\":\"address[]\"},{\"internalType\":\"address[]\",\"name\":\"transmitters\",\"type\":\"address[]\"}],\"internalType\":\"structMultiOCR3Base.OCRConfigArgs[]\",\"name\":\"ocrConfigArgs\",\"type\":\"tuple[]\"}],\"name\":\"setOCR3Configs\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"typeAndVersion\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"}]", + Bin: "0x6101206040523480156200001257600080fd5b506040516200689b3803806200689b833981016040819052620000359162000806565b33806000816200008c5760405162461bcd60e51b815260206004820152601860248201527f43616e6e6f7420736574206f776e657220746f207a65726f000000000000000060448201526064015b60405180910390fd5b600080546001600160a01b0319166001600160a01b0384811691909117909155811615620000bf57620000bf81620001fa565b5050466080525060208301516001600160a01b03161580620000ec575060408301516001600160a01b0316155b8062000103575060608301516001600160a01b0316155b1562000122576040516342bcdf7f60e11b815260040160405180910390fd5b82516001600160401b03166000036200014e5760405163c656089560e01b815260040160405180910390fd5b82516001600160401b0390811660a052602080850180516001600160a01b0390811660c05260408088018051831660e0526060808a01805185166101005283518b519098168852945184169587019590955251821690850152905116908201527f683eb52ee924eb817377cfa8f41f238f4bb7a877da5267869dfffbad85f564d89060800160405180910390a1620001e682620002a5565b620001f1816200036d565b50505062000b8d565b336001600160a01b03821603620002545760405162461bcd60e51b815260206004820152601760248201527f43616e6e6f74207472616e7366657220746f2073656c66000000000000000000604482015260640162000083565b600180546001600160a01b0319166001600160a01b0383811691821790925560008054604051929316917fed8889f560326eb138920d842192f0eb3dd22b4f139c87a2c57538e05bae12789190a350565b80516001600160a01b0316620002ce576040516342bcdf7f60e11b815260040160405180910390fd5b805160048054602080850180516001600160a01b039586166001600160c01b03199094168417600160a01b63ffffffff928316021790945560408087018051600580546001600160a01b031916918916919091179055815194855291519094169183019190915251909216908201527fa1c15688cb2c24508e158f6942b9276c6f3028a85e1af8cf3fff0c3ff3d5fc8d9060600160405180910390a150565b60005b8151811015620005ba57600082828151811062000391576200039162000943565b60200260200101519050600081602001519050806001600160401b0316600003620003cf5760405163c656089560e01b815260040160405180910390fd5b81516001600160a01b0316620003f8576040516342bcdf7f60e11b815260040160405180910390fd5b6001600160401b03811660009081526006602052604090206060830151600182018054620004269062000959565b905060000362000489578154600160a81b600160e81b031916600160a81b1782556040516001600160401b03841681527ff4c1390c70e5c0f491ae1ccbc06f9117cbbadf2767b247b3bc203280f24c0fb99060200160405180910390a1620004c8565b8154600160a81b90046001600160401b0316600114620004c857604051632105803760e11b81526001600160401b038416600482015260240162000083565b80511580620004fe5750604080516000602082015201604051602081830303815290604052805190602001208180519060200120145b156200051d576040516342bcdf7f60e11b815260040160405180910390fd5b600182016200052d8282620009ea565b50604080850151835486516001600160a01b03166001600160a01b0319921515600160a01b02929092166001600160a81b031990911617178355516001600160401b038416907f49f51971edd25182e97182d6ea372a0488ce2ab639f6a3a7ab4df0d2636fe56b90620005a290859062000ab6565b60405180910390a25050505080600101905062000370565b5050565b634e487b7160e01b600052604160045260246000fd5b604051608081016001600160401b0381118282101715620005f957620005f9620005be565b60405290565b604051601f8201601f191681016001600160401b03811182821017156200062a576200062a620005be565b604052919050565b80516001600160401b03811681146200064a57600080fd5b919050565b6001600160a01b03811681146200066557600080fd5b50565b6000601f83601f8401126200067c57600080fd5b825160206001600160401b03808311156200069b576200069b620005be565b8260051b620006ac838201620005ff565b9384528681018301938381019089861115620006c757600080fd5b84890192505b85831015620007f957825184811115620006e75760008081fd5b89016080601f19828d038101821315620007015760008081fd5b6200070b620005d4565b888401516200071a816200064f565b815260406200072b85820162000632565b8a8301526060808601518015158114620007455760008081fd5b838301529385015193898511156200075d5760008081fd5b84860195508f603f8701126200077557600094508485fd5b8a8601519450898511156200078e576200078e620005be565b6200079f8b858f88011601620005ff565b93508484528f82868801011115620007b75760008081fd5b60005b85811015620007d7578681018301518582018d01528b01620007ba565b5060009484018b019490945250918201528352509184019190840190620006cd565b9998505050505050505050565b60008060008385036101008112156200081e57600080fd5b60808112156200082d57600080fd5b62000837620005d4565b620008428662000632565b8152602086015162000854816200064f565b6020820152604086015162000869816200064f565b604082015260608601516200087e816200064f565b606082810191909152909450607f19820112156200089b57600080fd5b50604051606081016001600160401b038082118383101715620008c257620008c2620005be565b8160405260808701519150620008d8826200064f565b90825260a08601519063ffffffff82168214620008f457600080fd5b81602084015260c087015191506200090c826200064f565b6040830182905260e0870151929450808311156200092957600080fd5b5050620009398682870162000668565b9150509250925092565b634e487b7160e01b600052603260045260246000fd5b600181811c908216806200096e57607f821691505b6020821081036200098f57634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620009e5576000816000526020600020601f850160051c81016020861015620009c05750805b601f850160051c820191505b81811015620009e157828155600101620009cc565b5050505b505050565b81516001600160401b0381111562000a065762000a06620005be565b62000a1e8162000a17845462000959565b8462000995565b602080601f83116001811462000a56576000841562000a3d5750858301515b600019600386901b1c1916600185901b178555620009e1565b600085815260208120601f198616915b8281101562000a875788860151825594840194600190910190840162000a66565b508582101562000aa65787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b602080825282546001600160a01b0381168383015260a081901c60ff161515604084015260a81c6001600160401b0316606083015260808083015260018084018054600093929190849062000b0b8162000959565b8060a089015260c0600183166000811462000b2f576001811462000b4c5762000b7e565b60ff19841660c08b015260c083151560051b8b0101945062000b7e565b85600052602060002060005b8481101562000b755781548c820185015290880190890162000b58565b8b0160c0019550505b50929998505050505050505050565b60805160a05160c05160e05161010051615c9862000c036000396000818161022c01526129260152600081816101fd0152612bf80152600081816101ce01528181610552015281816106ff015261236a01526000818161019f01526125a9015260008181611d920152611dc50152615c986000f3fe608060405234801561001057600080fd5b50600436106101515760003560e01c806379ba5097116100cd578063d434969111610081578063e9d68a8e11610066578063e9d68a8e146104bc578063f2fde38b146104dc578063f716f99f146104ef57600080fd5b8063d434969114610496578063e62653f5146104a957600080fd5b80638da5cb5b116100b25780638da5cb5b14610417578063c673e58414610432578063ccd37ba31461045257600080fd5b806379ba50971461040157806385572ffb1461040957600080fd5b8063311cd513116101245780635e36480c116101095780635e36480c1461033c5780636f9e320f1461035c5780637437ff9f1461036f57600080fd5b8063311cd5131461030e5780633f4b04aa1461032157600080fd5b806304666f9c1461015657806306285c691461016b578063181f5a77146102b25780632d04ab76146102fb575b600080fd5b610169610164366004613bbf565b610502565b005b61025c60408051608081018252600080825260208201819052918101829052606081019190915260405180608001604052807f00000000000000000000000000000000000000000000000000000000000000006001600160401b031681526020017f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031681526020017f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031681526020017f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316815250905090565b6040516102a9919081516001600160401b031681526020808301516001600160a01b0390811691830191909152604080840151821690830152606092830151169181019190915260800190565b60405180910390f35b6102ee6040518060400160405280601181526020017f4f666652616d7020312e362e302d64657600000000000000000000000000000081525081565b6040516102a99190613d2d565b610169610309366004613ddd565b610516565b61016961031c366004613e8f565b610a12565b6009546040516001600160401b0390911681526020016102a9565b61034f61034a366004613ee2565b610a7b565b6040516102a99190613f3f565b61016961036a366004613f6a565b610ad0565b6103cb604080516060810182526000808252602082018190529181019190915250604080516060810182526004546001600160a01b038082168352600160a01b90910463ffffffff166020830152600554169181019190915290565b6040805182516001600160a01b03908116825260208085015163ffffffff169083015292820151909216908201526060016102a9565b610169610ae1565b610169610151366004613fbe565b6000546040516001600160a01b0390911681526020016102a9565b610445610440366004614009565b610b92565b6040516102a99190614069565b6104886104603660046140de565b6001600160401b03919091166000908152600860209081526040808320938352929052205490565b6040519081526020016102a9565b6101696104a436600461437a565b610cf0565b6101696104b7366004614702565b610fd0565b6104cf6104ca366004614949565b611277565b6040516102a99190614964565b6101696104ea3660046149b1565b611383565b6101696104fd366004614a36565b611394565b61050a6113d6565b61051381611432565b50565b600061052487890189614d8b565b602081015151909150156105b6576020810151604080830151905162ccd5af60e81b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169263ccd5af009261058592600401614fb3565b60006040518083038186803b15801561059d57600080fd5b505afa1580156105b1573d6000803e3d6000fd5b505050505b805151511515806105cc57508051602001515115155b156106985760095460208a0135906001600160401b0380831691161015610670576009805467ffffffffffffffff19166001600160401b038316179055600480548351604051633937306f60e01b81526001600160a01b0390921692633937306f926106399291016150e7565b600060405180830381600087803b15801561065357600080fd5b505af1158015610667573d6000803e3d6000fd5b50505050610696565b81602001515160000361069657604051632261116760e01b815260040160405180910390fd5b505b60005b816020015151811015610953576000826020015182815181106106c0576106c0615015565b60209081029190910101518051604051632cbc26bb60e01b815267ffffffffffffffff60801b608083901b166004820152919250906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690632cbc26bb90602401602060405180830381865afa158015610746573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061076a91906150fa565b1561079857604051637edeb53960e11b81526001600160401b03821660048201526024015b60405180910390fd5b60006107a382611685565b9050806001016040516107b69190615151565b6040518091039020836020015180519060200120146107f35782602001518160010160405163b80d8fa960e01b815260040161078f929190615244565b60408301518154600160a81b90046001600160401b039081169116141580610834575082606001516001600160401b031683604001516001600160401b0316115b1561087957825160408085015160608601519151636af0786b60e11b81526001600160401b03938416600482015290831660248201529116604482015260640161078f565b60808301518061089c5760405163504570e360e01b815260040160405180910390fd5b83516001600160401b03166000908152600860209081526040808320848452909152902054156108f45783516040516332cf0cbf60e01b81526001600160401b0390911660048201526024810182905260440161078f565b606084015161090490600161527f565b825467ffffffffffffffff60a81b1916600160a81b6001600160401b0392831602179092559251166000908152600860209081526040808320948352939052919091204290555060010161069b565b50602081015181516040517f35c02761bcd3ef995c6a601a1981f4ed3934dcbe5041e24e286c89f5531d17e49261098b9290916152a6565b60405180910390a1610a0760008a8a8a8a8a8080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020808e0282810182019093528d82529093508d92508c9182918501908490808284376000920191909152508b92506116d1915050565b505050505050505050565b610a52610a21828401846152cb565b6040805160008082526020820190925290610a4c565b6060815260200190600190039081610a375790505b506119ca565b604080516000808252602082019092529050610a756001858585858660006116d1565b50505050565b6000610a89600160046152ff565b6002610a96608085615328565b6001600160401b0316610aa9919061534e565b610ab38585611a8c565b901c166003811115610ac757610ac7613f15565b90505b92915050565b610ad86113d6565b61051381611ad1565b6001546001600160a01b03163314610b3b5760405162461bcd60e51b815260206004820152601660248201527f4d7573742062652070726f706f736564206f776e657200000000000000000000604482015260640161078f565b60008054336001600160a01b0319808316821784556001805490911690556040516001600160a01b0390921692909183917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a350565b610bd56040805160e081019091526000606082018181526080830182905260a0830182905260c08301919091528190815260200160608152602001606081525090565b60ff808316600090815260026020818152604092839020835160e081018552815460608201908152600183015480881660808401526101008104881660a0840152620100009004909616151560c082015294855291820180548451818402810184019095528085529293858301939092830182828015610c7e57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610c60575b5050505050815260200160038201805480602002602001604051908101604052809291908181526020018280548015610ce057602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610cc2575b5050505050815250509050919050565b333014610d10576040516306e34e6560e31b815260040160405180910390fd5b6040805160008082526020820190925281610d4d565b6040805180820190915260008082526020820152815260200190600190039081610d265790505b5060a08701515190915015610d8357610d808660a001518760200151886060015189600001516020015189898989611bb0565b90505b6040805160a081018252875151815287516020908101516001600160401b031681830152808901518351600094840192610dbe929101613d2d565b60408051601f19818403018152918152908252898101516020830152018390526005549091506001600160a01b03168015610e99576040516308d450a160e01b81526001600160a01b038216906308d450a190610e1f908590600401615406565b600060405180830381600087803b158015610e3957600080fd5b505af1925050508015610e4a575060015b610e99573d808015610e78576040519150601f19603f3d011682016040523d82523d6000602084013e610e7d565b606091505b50806040516309c2532560e01b815260040161078f9190613d2d565b604088015151158015610eae57506080880151155b80610ec5575060608801516001600160a01b03163b155b80610eec57506060880151610eea906001600160a01b03166385572ffb60e01b611d73565b155b15610ef957505050610fc9565b87516020908101516001600160401b03166000908152600690915260408082205460808b015160608c01519251633cf9798360e01b815284936001600160a01b0390931692633cf9798392610f579289926113889291600401615419565b6000604051808303816000875af1158015610f76573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610f9e9190810190615455565b509150915081610fc357806040516302a35ba360e21b815260040161078f9190613d2d565b50505050505b5050505050565b610fd8611d8f565b815181518114610ffb576040516320f8fd5960e21b815260040160405180910390fd5b60005b8181101561126757600084828151811061101a5761101a615015565b6020026020010151905060008160200151519050600085848151811061104257611042615015565b602002602001015190508051821461106d576040516320f8fd5960e21b815260040160405180910390fd5b60005b8281101561125857600082828151811061108c5761108c615015565b60200260200101516000015190506000856020015183815181106110b2576110b2615015565b6020026020010151905081600014611106578060800151821015611106578551815151604051633a98d46360e11b81526001600160401b03909216600483015260248201526044810183905260640161078f565b83838151811061111857611118615015565b602002602001015160200151518160a00151511461116557805180516060909101516040516370a193fd60e01b815260048101929092526001600160401b0316602482015260440161078f565b60005b8160a001515181101561124a57600085858151811061118957611189615015565b60200260200101516020015182815181106111a6576111a6615015565b602002602001015163ffffffff169050806000146112415760008360a0015183815181106111d6576111d6615015565b6020026020010151608001518060200190518101906111f591906154ea565b90508063ffffffff1682101561123f578351516040516348e617b360e01b815260048101919091526024810184905263ffffffff821660448201526064810183905260840161078f565b505b50600101611168565b505050806001019050611070565b50505050806001019050610ffe565b5061127283836119ca565b505050565b60408051608080820183526000808352602080840182905283850182905260608085018190526001600160401b03878116845260068352928690208651948501875280546001600160a01b0381168652600160a01b810460ff16151593860193909352600160a81b90920490921694830194909452600184018054939492939184019161130390615117565b80601f016020809104026020016040519081016040528092919081815260200182805461132f90615117565b8015610ce05780601f1061135157610100808354040283529160200191610ce0565b820191906000526020600020905b81548152906001019060200180831161135f57505050919092525091949350505050565b61138b6113d6565b61051381611df7565b61139c6113d6565b60005b81518110156113d2576113ca8282815181106113bd576113bd615015565b6020026020010151611ea0565b60010161139f565b5050565b6000546001600160a01b031633146114305760405162461bcd60e51b815260206004820152601660248201527f4f6e6c792063616c6c61626c65206279206f776e657200000000000000000000604482015260640161078f565b565b60005b81518110156113d257600082828151811061145257611452615015565b60200260200101519050600081602001519050806001600160401b031660000361148f5760405163c656089560e01b815260040160405180910390fd5b81516001600160a01b03166114b7576040516342bcdf7f60e11b815260040160405180910390fd5b6001600160401b038116600090815260066020526040902060608301516001820180546114e390615117565b905060000361154557815467ffffffffffffffff60a81b1916600160a81b1782556040516001600160401b03841681527ff4c1390c70e5c0f491ae1ccbc06f9117cbbadf2767b247b3bc203280f24c0fb99060200160405180910390a1611582565b8154600160a81b90046001600160401b031660011461158257604051632105803760e11b81526001600160401b038416600482015260240161078f565b805115806115b75750604080516000602082015201604051602081830303815290604052805190602001208180519060200120145b156115d5576040516342bcdf7f60e11b815260040160405180910390fd5b600182016115e38282615557565b50604080850151835486516001600160a01b03166001600160a01b0319921515600160a01b02929092167fffffffffffffffffffffff00000000000000000000000000000000000000000090911617178355516001600160401b038416907f49f51971edd25182e97182d6ea372a0488ce2ab639f6a3a7ab4df0d2636fe56b9061166e908590615616565b60405180910390a250505050806001019050611435565b6001600160401b03811660009081526006602052604081208054600160a01b900460ff16610aca5760405163ed053c5960e01b81526001600160401b038416600482015260240161078f565b60ff878116600090815260026020908152604080832081516080810183528154815260019091015480861693820193909352610100830485169181019190915262010000909104909216151560608301528735906117308760a4615664565b905082606001511561177857845161174990602061534e565b865161175690602061534e565b6117619060a0615664565b61176b9190615664565b6117759082615664565b90505b3681146117a157604051638e1192e160e01b81526004810182905236602482015260440161078f565b50815181146117d05781516040516324f7d61360e21b815260048101919091526024810182905260440161078f565b6117d8611d8f565b60ff808a166000908152600360209081526040808320338452825280832081518083019092528054808616835293949193909284019161010090910416600281111561182657611826613f15565b600281111561183757611837613f15565b905250905060028160200151600281111561185457611854613f15565b1480156118a85750600260008b60ff1660ff168152602001908152602001600020600301816000015160ff168154811061189057611890615015565b6000918252602090912001546001600160a01b031633145b6118c557604051631b41e11d60e31b815260040160405180910390fd5b508160600151156119755760208201516118e0906001615677565b60ff16855114611903576040516371253a2560e01b815260040160405180910390fd5b83518551146119255760405163a75d88af60e01b815260040160405180910390fd5b60008787604051611937929190615690565b60405190819003812061194e918b906020016156a0565b6040516020818303038152906040528051906020012090506119738a8288888861217f565b505b6040805182815260208a8101356001600160401b03169082015260ff8b16917f198d6990ef96613a9026203077e422916918b03ff47f0be6bee7b02d8e139ef0910160405180910390a2505050505050505050565b81516000036119eb5760405162bf199760e01b815260040160405180910390fd5b80516040805160008082526020820190925291159181611a2e565b604080518082019091526000815260606020820152815260200190600190039081611a065790505b50905060005b8451811015610fc957611a84858281518110611a5257611a52615015565b602002602001015184611a7e57858381518110611a7157611a71615015565b602002602001015161233c565b8361233c565b600101611a34565b6001600160401b038216600090815260076020526040812081611ab06080856156b4565b6001600160401b031681526020810191909152604001600020549392505050565b80516001600160a01b0316611af9576040516342bcdf7f60e11b815260040160405180910390fd5b805160048054602080850180516001600160a01b039586167fffffffffffffffff0000000000000000000000000000000000000000000000009094168417600160a01b63ffffffff928316021790945560408087018051600580546001600160a01b031916918916919091179055815194855291519094169183019190915251909216908201527fa1c15688cb2c24508e158f6942b9276c6f3028a85e1af8cf3fff0c3ff3d5fc8d9060600160405180910390a150565b606088516001600160401b03811115611bcb57611bcb6139df565b604051908082528060200260200182016040528015611c1057816020015b6040805180820190915260008082526020820152815260200190600190039081611be95790505b509050811560005b8a51811015611d655781611cc257848482818110611c3857611c38615015565b9050602002016020810190611c4d91906156da565b63ffffffff1615611cc257848482818110611c6a57611c6a615015565b9050602002016020810190611c7f91906156da565b6040805163ffffffff9092166020830152016040516020818303038152906040528b8281518110611cb257611cb2615015565b6020026020010151608001819052505b611d408b8281518110611cd757611cd7615015565b60200260200101518b8b8b8b8b87818110611cf457611cf4615015565b9050602002810190611d0691906156f7565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612bb092505050565b838281518110611d5257611d52615015565b6020908102919091010152600101611c18565b505098975050505050505050565b6000611d7e83612eae565b8015610ac75750610ac78383612ef9565b467f00000000000000000000000000000000000000000000000000000000000000001461143057604051630f01ce8560e01b81527f0000000000000000000000000000000000000000000000000000000000000000600482015246602482015260440161078f565b336001600160a01b03821603611e4f5760405162461bcd60e51b815260206004820152601760248201527f43616e6e6f74207472616e7366657220746f2073656c66000000000000000000604482015260640161078f565b600180546001600160a01b0319166001600160a01b0383811691821790925560008054604051929316917fed8889f560326eb138920d842192f0eb3dd22b4f139c87a2c57538e05bae12789190a350565b806040015160ff16600003611ecb576000604051631b3fab5160e11b815260040161078f919061573d565b60208082015160ff80821660009081526002909352604083206001810154929390928392169003611f1c576060840151600182018054911515620100000262ff000019909216919091179055611f58565b6060840151600182015460ff6201000090910416151590151514611f58576040516321fd80df60e21b815260ff8416600482015260240161078f565b60a084015180516101001015611f84576001604051631b3fab5160e11b815260040161078f919061573d565b611fea8484600301805480602002602001604051908101604052809291908181526020018280548015611fe057602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611fc2575b5050505050612f9b565b8460600151156120f4576120588484600201805480602002602001604051908101604052809291908181526020018280548015611fe0576020028201919060005260206000209081546001600160a01b03168152600190910190602001808311611fc2575050505050612f9b565b608085015180516101001015612084576002604051631b3fab5160e11b815260040161078f919061573d565b6040860151612094906003615757565b60ff168151116120ba576003604051631b3fab5160e11b815260040161078f919061573d565b805160018401805461ff00191661010060ff8416021790556120e59060028601906020840190613965565b506120f285826001613004565b505b61210084826002613004565b80516121159060038501906020840190613965565b5060408581015160018401805460ff191660ff8316179055865180855560a088015192517fab8b1b57514019638d7b5ce9c638fe71366fe8e2be1c40a7a80f1733d0e9f5479361216e9389939260028a01929190615773565b60405180910390a1610fc98461315f565b8251600090815b818110156123325760006001888684602081106121a5576121a5615015565b6121b291901a601b615677565b8985815181106121c4576121c4615015565b60200260200101518986815181106121de576121de615015565b60200260200101516040516000815260200160405260405161221c949392919093845260ff9290921660208401526040830152606082015260800190565b6020604051602081039080840390855afa15801561223e573d6000803e3d6000fd5b505060408051601f1981015160ff808e166000908152600360209081528582206001600160a01b0385168352815285822085870190965285548084168652939750909550929392840191610100900416600281111561229f5761229f613f15565b60028111156122b0576122b0613f15565b90525090506001816020015160028111156122cd576122cd613f15565b146122eb57604051636518c33d60e11b815260040160405180910390fd5b8051600160ff9091161b85161561231557604051633d9ef1f160e21b815260040160405180910390fd5b806000015160ff166001901b851794505050806001019050612186565b5050505050505050565b81518151604051632cbc26bb60e01b8152608083901b67ffffffffffffffff60801b166004820152901515907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690632cbc26bb90602401602060405180830381865afa1580156123b9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123dd91906150fa565b1561244e57801561240c57604051637edeb53960e11b81526001600160401b038316600482015260240161078f565b6040516001600160401b03831681527faab522ed53d887e56ed53dd37398a01aeef6a58e0fa77c2173beb9512d8949339060200160405180910390a150505050565b600061245983611685565b600101805461246790615117565b80601f016020809104026020016040519081016040528092919081815260200182805461249390615117565b80156124e05780601f106124b5576101008083540402835291602001916124e0565b820191906000526020600020905b8154815290600101906020018083116124c357829003601f168201915b5050506020880151519293505050600081900361250f5760405162bf199760e01b815260040160405180910390fd5b8560400151518114612534576040516357e0e08360e01b815260040160405180910390fd5b6000816001600160401b0381111561254e5761254e6139df565b604051908082528060200260200182016040528015612577578160200160208202803683370190505b50905060005b828110156126985760008860200151828151811061259d5761259d615015565b602002602001015190507f00000000000000000000000000000000000000000000000000000000000000006001600160401b03168160000151604001516001600160401b0316146126145780516040908101519051631c21951160e11b81526001600160401b03909116600482015260240161078f565b866001600160401b03168160000151602001516001600160401b03161461266857805160200151604051636c95f1eb60e01b81526001600160401b03808a166004830152909116602482015260440161078f565b61267281866131b6565b83838151811061268457612684615015565b60209081029190910101525060010161257d565b5060006126af86838a606001518b608001516132d8565b9050806000036126dd57604051633ee8bd3f60e11b81526001600160401b038716600482015260240161078f565b60005b83811015610a075760005a905060008a60200151838151811061270557612705615015565b6020026020010151905060006127238a836000015160600151610a7b565b9050600081600381111561273957612739613f15565b14806127565750600381600381111561275457612754613f15565b145b6127ac57815160600151604080516001600160401b03808e16825290921660208301527f3b575419319662b2a6f5e2467d84521517a3382b908eb3d557bb3fdb0c50e23c910160405180910390a1505050612ba8565b6060891561288b578b85815181106127c6576127c6615015565b6020908102919091018101510151600454909150600090600160a01b900463ffffffff166127f488426152ff565b11905080806128145750600383600381111561281257612812613f15565b145b61283c576040516354e7e43160e11b81526001600160401b038d16600482015260240161078f565b8c868151811061284e5761284e615015565b602002602001015160000151600014612885578c868151811061287357612873615015565b60209081029190910101515160808501525b506128f7565b600082600381111561289f5761289f613f15565b146128f757825160600151604080516001600160401b03808f16825290921660208301527f3ef2a99c550a751d4b0b261268f05a803dfb049ab43616a1ffb388f61fe65120910160405180910390a150505050612ba8565b8251608001516001600160401b0316156129d057600082600381111561291f5761291f613f15565b036129d0577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e0e03cae8c85600001516080015186602001516040518463ffffffff1660e01b815260040161298093929190615825565b6020604051808303816000875af115801561299f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129c391906150fa565b6129d05750505050612ba8565b60008d6040015186815181106129e8576129e8615015565b6020026020010151905080518460a001515114612a3257835160600151604051631cfe6d8b60e01b81526001600160401b03808f166004830152909116602482015260440161078f565b612a468c8560000151606001516001613315565b600080612a548684866133ba565b91509150612a6b8e87600001516060015184613315565b8c15612ac2576003826003811115612a8557612a85613f15565b03612ac2576000856003811115612a9e57612a9e613f15565b14612ac257855151604051632b11b8d960e01b815261078f91908390600401615851565b6002826003811115612ad657612ad6613f15565b14612b1b576003826003811115612aef57612aef613f15565b14612b1b578d866000015160600151836040516349362d1f60e11b815260040161078f9392919061586a565b8560000151600001518660000151606001516001600160401b03168f6001600160401b03167f05665fe9ad095383d018353f4cbcba77e84db27dd215081bbf7cdf9ae6fbe48b8d8c81518110612b7357612b73615015565b602002602001015186865a612b88908f6152ff565b604051612b98949392919061588f565b60405180910390a4505050505050505b6001016126e0565b60408051808201909152600080825260208201526000612bd3876020015161346e565b60405163bbe4f6db60e01b81526001600160a01b0380831660048301529192506000917f0000000000000000000000000000000000000000000000000000000000000000169063bbe4f6db90602401602060405180830381865afa158015612c3f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c6391906158c6565b90506001600160a01b0381161580612c925750612c906001600160a01b03821663aff2afbf60e01b611d73565b155b15612cbb5760405163ae9b4ce960e01b81526001600160a01b038216600482015260240161078f565b600080612ce688858c60800151806020019051810190612cdb91906154ea565b63ffffffff166134e2565b915091506000806000612d996040518061010001604052808e81526020018c6001600160401b031681526020018d6001600160a01b031681526020018f606001518152602001896001600160a01b031681526020018f6000015181526020018f6040015181526020018b815250604051602401612d6391906158e3565b60408051601f198184030181529190526020810180516001600160e01b0316633907753760e01b179052878661138860846135c5565b92509250925082612dbf578160405163e1cd550960e01b815260040161078f9190613d2d565b8151602014612dee578151604051631e3be00960e21b815260206004820152602481019190915260440161078f565b600082806020019051810190612e0491906159af565b9050866001600160a01b03168c6001600160a01b031614612e80576000612e358d8a612e30868a6152ff565b6134e2565b50905086811080612e4f575081612e4c88836152ff565b14155b15612e7e5760405163a966e21f60e01b815260048101839052602481018890526044810182905260640161078f565b505b604080518082019091526001600160a01b039098168852602088015250949550505050505095945050505050565b6000612ec1826301ffc9a760e01b612ef9565b8015610aca5750612ef2827fffffffff00000000000000000000000000000000000000000000000000000000612ef9565b1592915050565b6040517fffffffff0000000000000000000000000000000000000000000000000000000082166024820152600090819060440160408051601f19818403018152919052602080820180516001600160e01b03166301ffc9a760e01b178152825192935060009283928392909183918a617530fa92503d91506000519050828015612f84575060208210155b8015612f905750600081115b979650505050505050565b60005b81518110156112725760ff831660009081526003602052604081208351909190849084908110612fd057612fd0615015565b6020908102919091018101516001600160a01b03168252810191909152604001600020805461ffff19169055600101612f9e565b60005b8251811015610a7557600083828151811061302457613024615015565b602002602001015190506000600281111561304157613041613f15565b60ff80871660009081526003602090815260408083206001600160a01b0387168452909152902054610100900416600281111561308057613080613f15565b146130a1576004604051631b3fab5160e11b815260040161078f919061573d565b6001600160a01b0381166130c85760405163d6c62c9b60e01b815260040160405180910390fd5b60405180604001604052808360ff1681526020018460028111156130ee576130ee613f15565b905260ff80871660009081526003602090815260408083206001600160a01b0387168452825290912083518154931660ff198416811782559184015190929091839161ffff19161761010083600281111561314b5761314b613f15565b021790555090505050806001019050613007565b60ff81166105135760ff808216600090815260026020526040902060010154620100009004166131a257604051631e8ed32560e21b815260040160405180910390fd5b6009805467ffffffffffffffff1916905550565b8151602080820151604092830151925160009384936131fc937f2425b0b9f9054c76ff151b0a175b18f37a4a4e82013a72e9f15c9caa095ed21f939092918891016159c8565b60408051601f1981840301815290829052805160209182012086518051888401516060808b0151908401516080808d0151950151959761324597949693959294919391016159fa565b604051602081830303815290604052805190602001208560400151805190602001208660a0015160405160200161327c9190615afe565b60408051601f198184030181528282528051602091820120908301969096528101939093526060830191909152608082015260a081019190915260c0015b60405160208183030381529060405280519060200120905092915050565b6000806132e685858561369f565b6001600160401b038716600090815260086020908152604080832093835292905220549150505b949350505050565b60006002613324608085615328565b6001600160401b0316613337919061534e565b905060006133458585611a8c565b905081613354600160046152ff565b901b19168183600381111561336b5761336b613f15565b6001600160401b03871660009081526007602052604081209190921b929092179182916133996080886156b4565b6001600160401b031681526020810191909152604001600020555050505050565b60405163d434969160e01b8152600090606090309063d4349691906133e790889088908890600401615b95565b600060405180830381600087803b15801561340157600080fd5b505af1925050508015613412575060015b613451573d808015613440576040519150601f19603f3d011682016040523d82523d6000602084013e613445565b606091505b50600392509050613466565b50506040805160208101909152600081526002905b935093915050565b60008151602014613494578160405163046b337b60e51b815260040161078f9190613d2d565b6000828060200190518101906134aa91906159af565b90506001600160a01b038111806134c2575061040081105b15610aca578260405163046b337b60e51b815260040161078f9190613d2d565b60008060008060006135438860405160240161350d91906001600160a01b0391909116815260200190565b60408051601f198184030181529190526020810180516001600160e01b03166370a0823160e01b179052888861138860846135c5565b92509250925082613569578160405163e1cd550960e01b815260040161078f9190613d2d565b6020825114613598578151604051631e3be00960e21b815260206004820152602481019190915260440161078f565b818060200190518101906135ac91906159af565b6135b682886152ff565b94509450505050935093915050565b6000606060008361ffff166001600160401b038111156135e7576135e76139df565b6040519080825280601f01601f191660200182016040528015613611576020820181803683370190505b509150863b61362b5763030ed58f60e21b60005260046000fd5b5a8581101561364557632be8ca8b60e21b60005260046000fd5b8590036040810481038710613665576337c3be2960e01b60005260046000fd5b505a6000808a5160208c0160008c8cf193505a900390503d848111156136885750835b808352806000602085013e50955095509592505050565b82518251600091908183036136c757604051630469ac9960e21b815260040160405180910390fd5b61010182118015906136db57506101018111155b6136f8576040516309bde33960e01b815260040160405180910390fd5b60001982820101610100811115613722576040516309bde33960e01b815260040160405180910390fd5b8060000361374f578660008151811061373d5761373d615015565b6020026020010151935050505061391d565b6000816001600160401b03811115613769576137696139df565b604051908082528060200260200182016040528015613792578160200160208202803683370190505b50905060008080805b858110156138bc5760006001821b8b8116036137f657888510156137df578c5160018601958e9181106137d0576137d0615015565b60200260200101519050613818565b85516001850194879181106137d0576137d0615015565b8b5160018401938d91811061380d5761380d615015565b602002602001015190505b600089861015613848578d5160018701968f91811061383957613839615015565b6020026020010151905061386a565b865160018601958891811061385f5761385f615015565b602002602001015190505b8285111561388b576040516309bde33960e01b815260040160405180910390fd5b6138958282613924565b8784815181106138a7576138a7615015565b6020908102919091010152505060010161379b565b5060018503821480156138ce57508683145b80156138d957508581145b6138f6576040516309bde33960e01b815260040160405180910390fd5b83600186038151811061390b5761390b615015565b60200260200101519750505050505050505b9392505050565b600081831061393c576139378284613942565b610ac7565b610ac783835b6040805160016020820152908101839052606081018290526000906080016132ba565b8280548282559060005260206000209081019282156139ba579160200282015b828111156139ba57825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190613985565b506139c69291506139ca565b5090565b5b808211156139c657600081556001016139cb565b634e487b7160e01b600052604160045260246000fd5b604051608081016001600160401b0381118282101715613a1757613a176139df565b60405290565b604051606081016001600160401b0381118282101715613a1757613a176139df565b60405160a081016001600160401b0381118282101715613a1757613a176139df565b60405160c081016001600160401b0381118282101715613a1757613a176139df565b604080519081016001600160401b0381118282101715613a1757613a176139df565b604051601f8201601f191681016001600160401b0381118282101715613acd57613acd6139df565b604052919050565b60006001600160401b03821115613aee57613aee6139df565b5060051b60200190565b6001600160a01b038116811461051357600080fd5b80356001600160401b0381168114613b2457600080fd5b919050565b801515811461051357600080fd5b8035613b2481613b29565b60006001600160401b03821115613b5b57613b5b6139df565b50601f01601f191660200190565b600082601f830112613b7a57600080fd5b8135613b8d613b8882613b42565b613aa5565b818152846020838601011115613ba257600080fd5b816020850160208301376000918101602001919091529392505050565b60006020808385031215613bd257600080fd5b82356001600160401b0380821115613be957600080fd5b818501915085601f830112613bfd57600080fd5b8135613c0b613b8882613ad5565b81815260059190911b83018401908481019088831115613c2a57600080fd5b8585015b83811015613cd057803585811115613c465760008081fd5b86016080818c03601f1901811315613c5e5760008081fd5b613c666139f5565b89830135613c7381613af8565b81526040613c82848201613b0d565b8b830152606080850135613c9581613b29565b83830152928401359289841115613cae57600091508182fd5b613cbc8f8d86880101613b69565b908301525085525050918601918601613c2e565b5098975050505050505050565b60005b83811015613cf8578181015183820152602001613ce0565b50506000910152565b60008151808452613d19816020860160208601613cdd565b601f01601f19169290920160200192915050565b602081526000610ac76020830184613d01565b8060608101831015610aca57600080fd5b60008083601f840112613d6357600080fd5b5081356001600160401b03811115613d7a57600080fd5b602083019150836020828501011115613d9257600080fd5b9250929050565b60008083601f840112613dab57600080fd5b5081356001600160401b03811115613dc257600080fd5b6020830191508360208260051b8501011115613d9257600080fd5b60008060008060008060008060e0898b031215613df957600080fd5b613e038a8a613d40565b975060608901356001600160401b0380821115613e1f57600080fd5b613e2b8c838d01613d51565b909950975060808b0135915080821115613e4457600080fd5b613e508c838d01613d99565b909750955060a08b0135915080821115613e6957600080fd5b50613e768b828c01613d99565b999c989b50969995989497949560c00135949350505050565b600080600060808486031215613ea457600080fd5b613eae8585613d40565b925060608401356001600160401b03811115613ec957600080fd5b613ed586828701613d51565b9497909650939450505050565b60008060408385031215613ef557600080fd5b613efe83613b0d565b9150613f0c60208401613b0d565b90509250929050565b634e487b7160e01b600052602160045260246000fd5b60048110613f3b57613f3b613f15565b9052565b60208101610aca8284613f2b565b8035613b2481613af8565b63ffffffff8116811461051357600080fd5b600060608284031215613f7c57600080fd5b613f84613a1d565b8235613f8f81613af8565b81526020830135613f9f81613f58565b60208201526040830135613fb281613af8565b60408201529392505050565b600060208284031215613fd057600080fd5b81356001600160401b03811115613fe657600080fd5b820160a0818503121561391d57600080fd5b803560ff81168114613b2457600080fd5b60006020828403121561401b57600080fd5b610ac782613ff8565b60008151808452602080850194506020840160005b8381101561405e5781516001600160a01b031687529582019590820190600101614039565b509495945050505050565b60208152600082518051602084015260ff602082015116604084015260ff604082015116606084015260608101511515608084015250602083015160c060a08401526140b860e0840182614024565b90506040840151601f198483030160c08501526140d58282614024565b95945050505050565b600080604083850312156140f157600080fd5b6140fa83613b0d565b946020939093013593505050565b600060a0828403121561411a57600080fd5b614122613a3f565b90508135815261413460208301613b0d565b602082015261414560408301613b0d565b604082015261415660608301613b0d565b606082015261416760808301613b0d565b608082015292915050565b600082601f83011261418357600080fd5b81356020614193613b8883613ad5565b82815260059290921b840181019181810190868411156141b257600080fd5b8286015b848110156142ac5780356001600160401b03808211156141d65760008081fd5b9088019060a0828b03601f19018113156141f05760008081fd5b6141f8613a3f565b878401358381111561420a5760008081fd5b6142188d8a83880101613b69565b8252506040808501358481111561422f5760008081fd5b61423d8e8b83890101613b69565b8a84015250606080860135858111156142565760008081fd5b6142648f8c838a0101613b69565b8385015250608091508186013581840152508285013592508383111561428a5760008081fd5b6142988d8a85880101613b69565b9082015286525050509183019183016141b6565b509695505050505050565b600061014082840312156142ca57600080fd5b6142d2613a61565b90506142de8383614108565b815260a08201356001600160401b03808211156142fa57600080fd5b61430685838601613b69565b602084015260c084013591508082111561431f57600080fd5b61432b85838601613b69565b604084015261433c60e08501613f4d565b6060840152610100840135608084015261012084013591508082111561436157600080fd5b5061436e84828501614172565b60a08301525092915050565b60008060008060006060868803121561439257600080fd5b85356001600160401b03808211156143a957600080fd5b6143b589838a016142b7565b965060208801359150808211156143cb57600080fd5b6143d789838a01613d99565b909650945060408801359150808211156143f057600080fd5b506143fd88828901613d99565b969995985093965092949392505050565b600082601f83011261441f57600080fd5b8135602061442f613b8883613ad5565b82815260059290921b8401810191818101908684111561444e57600080fd5b8286015b848110156142ac5780356001600160401b038111156144715760008081fd5b61447f8986838b01016142b7565b845250918301918301614452565b600082601f83011261449e57600080fd5b813560206144ae613b8883613ad5565b82815260059290921b840181019181810190868411156144cd57600080fd5b8286015b848110156142ac5780356001600160401b03808211156144f057600080fd5b818901915089603f83011261450457600080fd5b85820135614514613b8882613ad5565b81815260059190911b830160400190878101908c83111561453457600080fd5b604085015b8381101561456d5780358581111561455057600080fd5b61455f8f6040838a0101613b69565b845250918901918901614539565b508752505050928401925083016144d1565b600082601f83011261459057600080fd5b813560206145a0613b8883613ad5565b8083825260208201915060208460051b8701019350868411156145c257600080fd5b602086015b848110156142ac57803583529183019183016145c7565b600082601f8301126145ef57600080fd5b813560206145ff613b8883613ad5565b82815260059290921b8401810191818101908684111561461e57600080fd5b8286015b848110156142ac5780356001600160401b03808211156146425760008081fd5b9088019060a0828b03601f190181131561465c5760008081fd5b614664613a3f565b61466f888501613b0d565b8152604080850135848111156146855760008081fd5b6146938e8b8389010161440e565b8a84015250606080860135858111156146ac5760008081fd5b6146ba8f8c838a010161448d565b83850152506080915081860135858111156146d55760008081fd5b6146e38f8c838a010161457f565b9184019190915250919093013590830152508352918301918301614622565b6000806040838503121561471557600080fd5b6001600160401b038335111561472a57600080fd5b61473784843585016145de565b91506001600160401b036020840135111561475157600080fd5b6020830135830184601f82011261476757600080fd5b614774613b888235613ad5565b81358082526020808301929160051b84010187101561479257600080fd5b602083015b6020843560051b85010181101561493b576001600160401b03813511156147bd57600080fd5b87603f8235860101126147cf57600080fd5b6147e2613b886020833587010135613ad5565b81358501602081810135808452908301929160059190911b016040018a101561480a57600080fd5b604083358701015b83358701602081013560051b0160400181101561492b576001600160401b038135111561483e57600080fd5b833587018135016040818d03603f1901121561485957600080fd5b614861613a83565b604082013581526001600160401b036060830135111561488057600080fd5b8c605f60608401358401011261489557600080fd5b60406060830135830101356148ac613b8882613ad5565b808282526020820191508f60608460051b60608801358801010111156148d157600080fd5b6060808601358601015b60608460051b60608801358801010181101561490b576148fb8135613f58565b80358352602092830192016148db565b508060208501525050508085525050602083019250602081019050614812565b5084525060209283019201614797565b508093505050509250929050565b60006020828403121561495b57600080fd5b610ac782613b0d565b602081526001600160a01b0382511660208201526020820151151560408201526001600160401b0360408301511660608201526000606083015160808084015261330d60a0840182613d01565b6000602082840312156149c357600080fd5b813561391d81613af8565b600082601f8301126149df57600080fd5b813560206149ef613b8883613ad5565b8083825260208201915060208460051b870101935086841115614a1157600080fd5b602086015b848110156142ac578035614a2981613af8565b8352918301918301614a16565b60006020808385031215614a4957600080fd5b82356001600160401b0380821115614a6057600080fd5b818501915085601f830112614a7457600080fd5b8135614a82613b8882613ad5565b81815260059190911b83018401908481019088831115614aa157600080fd5b8585015b83811015613cd057803585811115614abc57600080fd5b860160c0818c03601f19011215614ad35760008081fd5b614adb613a61565b8882013581526040614aee818401613ff8565b8a8301526060614aff818501613ff8565b8284015260809150614b12828501613b37565b9083015260a08381013589811115614b2a5760008081fd5b614b388f8d838801016149ce565b838501525060c0840135915088821115614b525760008081fd5b614b608e8c848701016149ce565b9083015250845250918601918601614aa5565b80356001600160e01b0381168114613b2457600080fd5b600082601f830112614b9b57600080fd5b81356020614bab613b8883613ad5565b82815260069290921b84018101918181019086841115614bca57600080fd5b8286015b848110156142ac5760408189031215614be75760008081fd5b614bef613a83565b614bf882613b0d565b8152614c05858301614b73565b81860152835291830191604001614bce565b600082601f830112614c2857600080fd5b81356020614c38613b8883613ad5565b82815260059290921b84018101918181019086841115614c5757600080fd5b8286015b848110156142ac5780356001600160401b0380821115614c7b5760008081fd5b9088019060a0828b03601f1901811315614c955760008081fd5b614c9d613a3f565b614ca8888501613b0d565b815260408085013584811115614cbe5760008081fd5b614ccc8e8b83890101613b69565b8a8401525060609350614ce0848601613b0d565b908201526080614cf1858201613b0d565b93820193909352920135908201528352918301918301614c5b565b600082601f830112614d1d57600080fd5b81356020614d2d613b8883613ad5565b82815260069290921b84018101918181019086841115614d4c57600080fd5b8286015b848110156142ac5760408189031215614d695760008081fd5b614d71613a83565b813581528482013585820152835291830191604001614d50565b60006020808385031215614d9e57600080fd5b82356001600160401b0380821115614db557600080fd5b9084019060608287031215614dc957600080fd5b614dd1613a1d565b823582811115614de057600080fd5b83016040818903811315614df357600080fd5b614dfb613a83565b823585811115614e0a57600080fd5b8301601f81018b13614e1b57600080fd5b8035614e29613b8882613ad5565b81815260069190911b8201890190898101908d831115614e4857600080fd5b928a01925b82841015614e985785848f031215614e655760008081fd5b614e6d613a83565b8435614e7881613af8565b8152614e85858d01614b73565b818d0152825292850192908a0190614e4d565b845250505082870135915084821115614eb057600080fd5b614ebc8a838501614b8a565b81880152835250508284013582811115614ed557600080fd5b614ee188828601614c17565b85830152506040830135935081841115614efa57600080fd5b614f0687858501614d0c565b60408201529695505050505050565b600082825180855260208086019550808260051b84010181860160005b84811015614fa657601f19868403018952815160a06001600160401b03808351168652868301518288880152614f6a83880182613d01565b60408581015184169089015260608086015190931692880192909252506080928301519290950191909152509783019790830190600101614f32565b5090979650505050505050565b60006040808352614fc76040840186614f15565b83810360208581019190915285518083528682019282019060005b8181101561500757845180518452840151848401529383019391850191600101614fe2565b509098975050505050505050565b634e487b7160e01b600052603260045260246000fd5b805160408084528151848201819052600092602091908201906060870190855b8181101561508257835180516001600160a01b031684528501516001600160e01b031685840152928401929185019160010161504b565b50508583015187820388850152805180835290840192506000918401905b808310156150db57835180516001600160401b031683528501516001600160e01b0316858301529284019260019290920191908501906150a0565b50979650505050505050565b602081526000610ac7602083018461502b565b60006020828403121561510c57600080fd5b815161391d81613b29565b600181811c9082168061512b57607f821691505b60208210810361514b57634e487b7160e01b600052602260045260246000fd5b50919050565b600080835461515f81615117565b60018281168015615177576001811461518c576151bb565b60ff19841687528215158302870194506151bb565b8760005260208060002060005b858110156151b25781548a820152908401908201615199565b50505082870194505b50929695505050505050565b600081546151d481615117565b8085526020600183811680156151f1576001811461520b57615239565b60ff1985168884015283151560051b880183019550615239565b866000528260002060005b858110156152315781548a8201860152908301908401615216565b890184019650505b505050505092915050565b6040815260006152576040830185613d01565b82810360208401526140d581856151c7565b634e487b7160e01b600052601160045260246000fd5b6001600160401b0381811683821601908082111561529f5761529f615269565b5092915050565b6040815260006152b96040830185614f15565b82810360208401526140d5818561502b565b6000602082840312156152dd57600080fd5b81356001600160401b038111156152f357600080fd5b61330d848285016145de565b81810381811115610aca57610aca615269565b634e487b7160e01b600052601260045260246000fd5b60006001600160401b038084168061534257615342615312565b92169190910692915050565b8082028115828204841417610aca57610aca615269565b80518252600060206001600160401b0381840151168185015260408084015160a0604087015261539860a0870182613d01565b9050606085015186820360608801526153b18282613d01565b608087810151898303918a01919091528051808352908601935060009250908501905b808310156150db57835180516001600160a01b03168352860151868301529285019260019290920191908401906153d4565b602081526000610ac76020830184615365565b60808152600061542c6080830187615365565b61ffff9590951660208301525060408101929092526001600160a01b0316606090910152919050565b60008060006060848603121561546a57600080fd5b835161547581613b29565b60208501519093506001600160401b0381111561549157600080fd5b8401601f810186136154a257600080fd5b80516154b0613b8882613b42565b8181528760208385010111156154c557600080fd5b6154d6826020830160208601613cdd565b809450505050604084015190509250925092565b6000602082840312156154fc57600080fd5b815161391d81613f58565b601f821115611272576000816000526020600020601f850160051c810160208610156155305750805b601f850160051c820191505b8181101561554f5782815560010161553c565b505050505050565b81516001600160401b03811115615570576155706139df565b6155848161557e8454615117565b84615507565b602080601f8311600181146155b957600084156155a15750858301515b600019600386901b1c1916600185901b17855561554f565b600085815260208120601f198616915b828110156155e8578886015182559484019460019091019084016155c9565b50858210156156065787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60208152600082546001600160a01b038116602084015260ff8160a01c16151560408401526001600160401b038160a81c16606084015250608080830152610ac760a08301600185016151c7565b80820180821115610aca57610aca615269565b60ff8181168382160190811115610aca57610aca615269565b8183823760009101908152919050565b828152606082602083013760800192915050565b60006001600160401b03808416806156ce576156ce615312565b92169190910492915050565b6000602082840312156156ec57600080fd5b813561391d81613f58565b6000808335601e1984360301811261570e57600080fd5b8301803591506001600160401b0382111561572857600080fd5b602001915036819003821315613d9257600080fd5b602081016005831061575157615751613f15565b91905290565b60ff818116838216029081169081811461529f5761529f615269565b600060a0820160ff881683526020878185015260a0604085015281875480845260c0860191508860005282600020935060005b818110156157cb5784546001600160a01b0316835260019485019492840192016157a6565b50508481036060860152865180825290820192508187019060005b8181101561580b5782516001600160a01b0316855293830193918301916001016157e6565b50505060ff851660808501525090505b9695505050505050565b60006001600160401b038086168352808516602084015250606060408301526140d56060830184613d01565b82815260406020820152600061330d6040830184613d01565b6001600160401b038481168252831660208201526060810161330d6040830184613f2b565b84815261589f6020820185613f2b565b6080604082015260006158b56080830185613d01565b905082606083015295945050505050565b6000602082840312156158d857600080fd5b815161391d81613af8565b6020815260008251610100806020850152615902610120850183613d01565b9150602085015161591e60408601826001600160401b03169052565b5060408501516001600160a01b03811660608601525060608501516080850152608085015161595860a08601826001600160a01b03169052565b5060a0850151601f19808685030160c08701526159758483613d01565b935060c08701519150808685030160e08701526159928483613d01565b935060e087015191508086850301838701525061581b8382613d01565b6000602082840312156159c157600080fd5b5051919050565b84815260006001600160401b0380861660208401528085166040840152506080606083015261581b6080830184613d01565b86815260c060208201526000615a1360c0830188613d01565b6001600160a01b03969096166040830152506001600160401b039384166060820152608081019290925290911660a09091015292915050565b600082825180855260208086019550808260051b84010181860160005b84811015614fa657601f19868403018952815160a08151818652615a8f82870182613d01565b9150508582015185820387870152615aa78282613d01565b91505060408083015186830382880152615ac18382613d01565b92505050606080830151818701525060808083015192508582038187015250615aea8183613d01565b9a86019a9450505090830190600101615a69565b602081526000610ac76020830184615a4c565b60008282518085526020808601955060208260051b8401016020860160005b84811015614fa657601f19868403018952615b4c838351613d01565b98840198925090830190600101615b30565b60008151808452602080850194506020840160005b8381101561405e57815163ffffffff1687529582019590820190600101615b73565b60608152600084518051606084015260208101516001600160401b0380821660808601528060408401511660a08601528060608401511660c08601528060808401511660e0860152505050602085015161014080610100850152615bfd6101a0850183613d01565b91506040870151605f198086850301610120870152615c1c8483613d01565b935060608901519150615c39838701836001600160a01b03169052565b608089015161016087015260a0890151925080868503016101808701525050615c628282615a4c565b9150508281036020840152615c778186615b11565b9050828103604084015261581b8185615b5e56fea164736f6c6343000818000a", } var OffRampABI = OffRampMetaData.ABI diff --git a/core/gethwrappers/ccip/generation/generated-wrapper-dependency-versions-do-not-edit.txt b/core/gethwrappers/ccip/generation/generated-wrapper-dependency-versions-do-not-edit.txt index 637299ca7d..cdcd337b8e 100644 --- a/core/gethwrappers/ccip/generation/generated-wrapper-dependency-versions-do-not-edit.txt +++ b/core/gethwrappers/ccip/generation/generated-wrapper-dependency-versions-do-not-edit.txt @@ -23,7 +23,7 @@ multi_aggregate_rate_limiter: ../../../contracts/solc/v0.8.24/MultiAggregateRate multi_ocr3_helper: ../../../contracts/solc/v0.8.24/MultiOCR3Helper/MultiOCR3Helper.abi ../../../contracts/solc/v0.8.24/MultiOCR3Helper/MultiOCR3Helper.bin 6b56e0114a4d50797d30a34aecc2641ef340451d0c3fcb9d729bba4df2435122 nonce_manager: ../../../contracts/solc/v0.8.24/NonceManager/NonceManager.abi ../../../contracts/solc/v0.8.24/NonceManager/NonceManager.bin 6f64e1083b356c06ee66b9138e398b9c97a4cd3e8c9ec38cf3010cebc79af536 ocr3_config_encoder: ../../../contracts/solc/v0.8.24/IOCR3ConfigEncoder/IOCR3ConfigEncoder.abi ../../../contracts/solc/v0.8.24/IOCR3ConfigEncoder/IOCR3ConfigEncoder.bin 9254b35a86f00fde7b7193a033ca58f6521a66e87b9cf9da6ce5660082e79f5d -offramp: ../../../contracts/solc/v0.8.24/OffRamp/OffRamp.abi ../../../contracts/solc/v0.8.24/OffRamp/OffRamp.bin cea181da730d1f8846c50bcbbcacc58de191644511d13f03a9362bb045fd1a08 +offramp: ../../../contracts/solc/v0.8.24/OffRamp/OffRamp.abi ../../../contracts/solc/v0.8.24/OffRamp/OffRamp.bin 56945d1dff7a37553ad6db6b0701159af4ad2d85fb49acf368f66881c382f08a onramp: ../../../contracts/solc/v0.8.24/OnRamp/OnRamp.abi ../../../contracts/solc/v0.8.24/OnRamp/OnRamp.bin 594439983f963f4158f9c5009dee7cba4ee56be61900bb1d5b9108eaeac3d6a6 ping_pong_demo: ../../../contracts/solc/v0.8.24/PingPongDemo/PingPongDemo.abi ../../../contracts/solc/v0.8.24/PingPongDemo/PingPongDemo.bin c1c2f8a65c7ffd971899cae7fe62f2da57d09e936151e2b92163c4bebe699d6b price_registry: ../../../contracts/solc/v0.8.24/PriceRegistry/PriceRegistry.abi ../../../contracts/solc/v0.8.24/PriceRegistry/PriceRegistry.bin e7781d600c1bb7aa4620106af7f6e146a109b97f4cb6a7d06c9e15773340ecb2