diff --git a/core/gethwrappers/ccip/generated/offramp/offramp.go b/core/gethwrappers/ccip/generated/offramp/offramp.go index 1aeab7d8921..9beddbea455 100644 --- a/core/gethwrappers/ccip/generated/offramp/offramp.go +++ b/core/gethwrappers/ccip/generated/offramp/offramp.go @@ -157,7 +157,7 @@ type OffRampStaticConfig struct { var OffRampMetaData = &bind.MetaData{ ABI: "[{\"type\":\"constructor\",\"inputs\":[{\"name\":\"staticConfig\",\"type\":\"tuple\",\"internalType\":\"structOffRamp.StaticConfig\",\"components\":[{\"name\":\"chainSelector\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"gasForCallExactCheck\",\"type\":\"uint16\",\"internalType\":\"uint16\"},{\"name\":\"rmnRemote\",\"type\":\"address\",\"internalType\":\"contractIRMNRemote\"},{\"name\":\"tokenAdminRegistry\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"nonceManager\",\"type\":\"address\",\"internalType\":\"address\"}]},{\"name\":\"dynamicConfig\",\"type\":\"tuple\",\"internalType\":\"structOffRamp.DynamicConfig\",\"components\":[{\"name\":\"feeQuoter\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"permissionLessExecutionThresholdSeconds\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"isRMNVerificationDisabled\",\"type\":\"bool\",\"internalType\":\"bool\"},{\"name\":\"messageInterceptor\",\"type\":\"address\",\"internalType\":\"address\"}]},{\"name\":\"sourceChainConfigs\",\"type\":\"tuple[]\",\"internalType\":\"structOffRamp.SourceChainConfigArgs[]\",\"components\":[{\"name\":\"router\",\"type\":\"address\",\"internalType\":\"contractIRouter\"},{\"name\":\"sourceChainSelector\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"isEnabled\",\"type\":\"bool\",\"internalType\":\"bool\"},{\"name\":\"onRamp\",\"type\":\"bytes\",\"internalType\":\"bytes\"}]}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"acceptOwnership\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"applySourceChainConfigUpdates\",\"inputs\":[{\"name\":\"sourceChainConfigUpdates\",\"type\":\"tuple[]\",\"internalType\":\"structOffRamp.SourceChainConfigArgs[]\",\"components\":[{\"name\":\"router\",\"type\":\"address\",\"internalType\":\"contractIRouter\"},{\"name\":\"sourceChainSelector\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"isEnabled\",\"type\":\"bool\",\"internalType\":\"bool\"},{\"name\":\"onRamp\",\"type\":\"bytes\",\"internalType\":\"bytes\"}]}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"ccipReceive\",\"inputs\":[{\"name\":\"\",\"type\":\"tuple\",\"internalType\":\"structClient.Any2EVMMessage\",\"components\":[{\"name\":\"messageId\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"sourceChainSelector\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"sender\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"data\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"destTokenAmounts\",\"type\":\"tuple[]\",\"internalType\":\"structClient.EVMTokenAmount[]\",\"components\":[{\"name\":\"token\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]}]}],\"outputs\":[],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"commit\",\"inputs\":[{\"name\":\"reportContext\",\"type\":\"bytes32[2]\",\"internalType\":\"bytes32[2]\"},{\"name\":\"report\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"rs\",\"type\":\"bytes32[]\",\"internalType\":\"bytes32[]\"},{\"name\":\"ss\",\"type\":\"bytes32[]\",\"internalType\":\"bytes32[]\"},{\"name\":\"rawVs\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"execute\",\"inputs\":[{\"name\":\"reportContext\",\"type\":\"bytes32[2]\",\"internalType\":\"bytes32[2]\"},{\"name\":\"report\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"executeSingleMessage\",\"inputs\":[{\"name\":\"message\",\"type\":\"tuple\",\"internalType\":\"structInternal.Any2EVMRampMessage\",\"components\":[{\"name\":\"header\",\"type\":\"tuple\",\"internalType\":\"structInternal.RampMessageHeader\",\"components\":[{\"name\":\"messageId\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"sourceChainSelector\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"destChainSelector\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"sequenceNumber\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"nonce\",\"type\":\"uint64\",\"internalType\":\"uint64\"}]},{\"name\":\"sender\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"data\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"receiver\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"gasLimit\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"tokenAmounts\",\"type\":\"tuple[]\",\"internalType\":\"structInternal.Any2EVMTokenTransfer[]\",\"components\":[{\"name\":\"sourcePoolAddress\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"destTokenAddress\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"destGasAmount\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"extraData\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"amount\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]}]},{\"name\":\"offchainTokenData\",\"type\":\"bytes[]\",\"internalType\":\"bytes[]\"},{\"name\":\"tokenGasOverrides\",\"type\":\"uint32[]\",\"internalType\":\"uint32[]\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"getAllSourceChainConfigs\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint64[]\",\"internalType\":\"uint64[]\"},{\"name\":\"\",\"type\":\"tuple[]\",\"internalType\":\"structOffRamp.SourceChainConfig[]\",\"components\":[{\"name\":\"router\",\"type\":\"address\",\"internalType\":\"contractIRouter\"},{\"name\":\"isEnabled\",\"type\":\"bool\",\"internalType\":\"bool\"},{\"name\":\"minSeqNr\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"onRamp\",\"type\":\"bytes\",\"internalType\":\"bytes\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getDynamicConfig\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"tuple\",\"internalType\":\"structOffRamp.DynamicConfig\",\"components\":[{\"name\":\"feeQuoter\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"permissionLessExecutionThresholdSeconds\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"isRMNVerificationDisabled\",\"type\":\"bool\",\"internalType\":\"bool\"},{\"name\":\"messageInterceptor\",\"type\":\"address\",\"internalType\":\"address\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getExecutionState\",\"inputs\":[{\"name\":\"sourceChainSelector\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"sequenceNumber\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint8\",\"internalType\":\"enumInternal.MessageExecutionState\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getLatestPriceSequenceNumber\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getMerkleRoot\",\"inputs\":[{\"name\":\"sourceChainSelector\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"root\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getSourceChainConfig\",\"inputs\":[{\"name\":\"sourceChainSelector\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"outputs\":[{\"name\":\"\",\"type\":\"tuple\",\"internalType\":\"structOffRamp.SourceChainConfig\",\"components\":[{\"name\":\"router\",\"type\":\"address\",\"internalType\":\"contractIRouter\"},{\"name\":\"isEnabled\",\"type\":\"bool\",\"internalType\":\"bool\"},{\"name\":\"minSeqNr\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"onRamp\",\"type\":\"bytes\",\"internalType\":\"bytes\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getStaticConfig\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"tuple\",\"internalType\":\"structOffRamp.StaticConfig\",\"components\":[{\"name\":\"chainSelector\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"gasForCallExactCheck\",\"type\":\"uint16\",\"internalType\":\"uint16\"},{\"name\":\"rmnRemote\",\"type\":\"address\",\"internalType\":\"contractIRMNRemote\"},{\"name\":\"tokenAdminRegistry\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"nonceManager\",\"type\":\"address\",\"internalType\":\"address\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"latestConfigDetails\",\"inputs\":[{\"name\":\"ocrPluginType\",\"type\":\"uint8\",\"internalType\":\"uint8\"}],\"outputs\":[{\"name\":\"ocrConfig\",\"type\":\"tuple\",\"internalType\":\"structMultiOCR3Base.OCRConfig\",\"components\":[{\"name\":\"configInfo\",\"type\":\"tuple\",\"internalType\":\"structMultiOCR3Base.ConfigInfo\",\"components\":[{\"name\":\"configDigest\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"F\",\"type\":\"uint8\",\"internalType\":\"uint8\"},{\"name\":\"n\",\"type\":\"uint8\",\"internalType\":\"uint8\"},{\"name\":\"isSignatureVerificationEnabled\",\"type\":\"bool\",\"internalType\":\"bool\"}]},{\"name\":\"signers\",\"type\":\"address[]\",\"internalType\":\"address[]\"},{\"name\":\"transmitters\",\"type\":\"address[]\",\"internalType\":\"address[]\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"manuallyExecute\",\"inputs\":[{\"name\":\"reports\",\"type\":\"tuple[]\",\"internalType\":\"structInternal.ExecutionReport[]\",\"components\":[{\"name\":\"sourceChainSelector\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"messages\",\"type\":\"tuple[]\",\"internalType\":\"structInternal.Any2EVMRampMessage[]\",\"components\":[{\"name\":\"header\",\"type\":\"tuple\",\"internalType\":\"structInternal.RampMessageHeader\",\"components\":[{\"name\":\"messageId\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"sourceChainSelector\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"destChainSelector\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"sequenceNumber\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"nonce\",\"type\":\"uint64\",\"internalType\":\"uint64\"}]},{\"name\":\"sender\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"data\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"receiver\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"gasLimit\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"tokenAmounts\",\"type\":\"tuple[]\",\"internalType\":\"structInternal.Any2EVMTokenTransfer[]\",\"components\":[{\"name\":\"sourcePoolAddress\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"destTokenAddress\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"destGasAmount\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"extraData\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"amount\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]}]},{\"name\":\"offchainTokenData\",\"type\":\"bytes[][]\",\"internalType\":\"bytes[][]\"},{\"name\":\"proofs\",\"type\":\"bytes32[]\",\"internalType\":\"bytes32[]\"},{\"name\":\"proofFlagBits\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"gasLimitOverrides\",\"type\":\"tuple[][]\",\"internalType\":\"structOffRamp.GasLimitOverride[][]\",\"components\":[{\"name\":\"receiverExecutionGasLimit\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"tokenGasOverrides\",\"type\":\"uint32[]\",\"internalType\":\"uint32[]\"}]}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"owner\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"setDynamicConfig\",\"inputs\":[{\"name\":\"dynamicConfig\",\"type\":\"tuple\",\"internalType\":\"structOffRamp.DynamicConfig\",\"components\":[{\"name\":\"feeQuoter\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"permissionLessExecutionThresholdSeconds\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"isRMNVerificationDisabled\",\"type\":\"bool\",\"internalType\":\"bool\"},{\"name\":\"messageInterceptor\",\"type\":\"address\",\"internalType\":\"address\"}]}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"setOCR3Configs\",\"inputs\":[{\"name\":\"ocrConfigArgs\",\"type\":\"tuple[]\",\"internalType\":\"structMultiOCR3Base.OCRConfigArgs[]\",\"components\":[{\"name\":\"configDigest\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"ocrPluginType\",\"type\":\"uint8\",\"internalType\":\"uint8\"},{\"name\":\"F\",\"type\":\"uint8\",\"internalType\":\"uint8\"},{\"name\":\"isSignatureVerificationEnabled\",\"type\":\"bool\",\"internalType\":\"bool\"},{\"name\":\"signers\",\"type\":\"address[]\",\"internalType\":\"address[]\"},{\"name\":\"transmitters\",\"type\":\"address[]\",\"internalType\":\"address[]\"}]}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"transferOwnership\",\"inputs\":[{\"name\":\"to\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"typeAndVersion\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"string\",\"internalType\":\"string\"}],\"stateMutability\":\"view\"},{\"type\":\"event\",\"name\":\"AlreadyAttempted\",\"inputs\":[{\"name\":\"sourceChainSelector\",\"type\":\"uint64\",\"indexed\":false,\"internalType\":\"uint64\"},{\"name\":\"sequenceNumber\",\"type\":\"uint64\",\"indexed\":false,\"internalType\":\"uint64\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"CommitReportAccepted\",\"inputs\":[{\"name\":\"merkleRoots\",\"type\":\"tuple[]\",\"indexed\":false,\"internalType\":\"structInternal.MerkleRoot[]\",\"components\":[{\"name\":\"sourceChainSelector\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"onRampAddress\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"minSeqNr\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"maxSeqNr\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"merkleRoot\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}]},{\"name\":\"priceUpdates\",\"type\":\"tuple\",\"indexed\":false,\"internalType\":\"structInternal.PriceUpdates\",\"components\":[{\"name\":\"tokenPriceUpdates\",\"type\":\"tuple[]\",\"internalType\":\"structInternal.TokenPriceUpdate[]\",\"components\":[{\"name\":\"sourceToken\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"usdPerToken\",\"type\":\"uint224\",\"internalType\":\"uint224\"}]},{\"name\":\"gasPriceUpdates\",\"type\":\"tuple[]\",\"internalType\":\"structInternal.GasPriceUpdate[]\",\"components\":[{\"name\":\"destChainSelector\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"usdPerUnitGas\",\"type\":\"uint224\",\"internalType\":\"uint224\"}]}]}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"ConfigSet\",\"inputs\":[{\"name\":\"ocrPluginType\",\"type\":\"uint8\",\"indexed\":false,\"internalType\":\"uint8\"},{\"name\":\"configDigest\",\"type\":\"bytes32\",\"indexed\":false,\"internalType\":\"bytes32\"},{\"name\":\"signers\",\"type\":\"address[]\",\"indexed\":false,\"internalType\":\"address[]\"},{\"name\":\"transmitters\",\"type\":\"address[]\",\"indexed\":false,\"internalType\":\"address[]\"},{\"name\":\"F\",\"type\":\"uint8\",\"indexed\":false,\"internalType\":\"uint8\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"DynamicConfigSet\",\"inputs\":[{\"name\":\"dynamicConfig\",\"type\":\"tuple\",\"indexed\":false,\"internalType\":\"structOffRamp.DynamicConfig\",\"components\":[{\"name\":\"feeQuoter\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"permissionLessExecutionThresholdSeconds\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"isRMNVerificationDisabled\",\"type\":\"bool\",\"internalType\":\"bool\"},{\"name\":\"messageInterceptor\",\"type\":\"address\",\"internalType\":\"address\"}]}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"ExecutionStateChanged\",\"inputs\":[{\"name\":\"sourceChainSelector\",\"type\":\"uint64\",\"indexed\":true,\"internalType\":\"uint64\"},{\"name\":\"sequenceNumber\",\"type\":\"uint64\",\"indexed\":true,\"internalType\":\"uint64\"},{\"name\":\"messageId\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"messageHash\",\"type\":\"bytes32\",\"indexed\":false,\"internalType\":\"bytes32\"},{\"name\":\"state\",\"type\":\"uint8\",\"indexed\":false,\"internalType\":\"enumInternal.MessageExecutionState\"},{\"name\":\"returnData\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"},{\"name\":\"gasUsed\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"OwnershipTransferRequested\",\"inputs\":[{\"name\":\"from\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"to\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"OwnershipTransferred\",\"inputs\":[{\"name\":\"from\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"to\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"RootRemoved\",\"inputs\":[{\"name\":\"root\",\"type\":\"bytes32\",\"indexed\":false,\"internalType\":\"bytes32\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"SkippedAlreadyExecutedMessage\",\"inputs\":[{\"name\":\"sourceChainSelector\",\"type\":\"uint64\",\"indexed\":false,\"internalType\":\"uint64\"},{\"name\":\"sequenceNumber\",\"type\":\"uint64\",\"indexed\":false,\"internalType\":\"uint64\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"SkippedReportExecution\",\"inputs\":[{\"name\":\"sourceChainSelector\",\"type\":\"uint64\",\"indexed\":false,\"internalType\":\"uint64\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"SourceChainConfigSet\",\"inputs\":[{\"name\":\"sourceChainSelector\",\"type\":\"uint64\",\"indexed\":true,\"internalType\":\"uint64\"},{\"name\":\"sourceConfig\",\"type\":\"tuple\",\"indexed\":false,\"internalType\":\"structOffRamp.SourceChainConfig\",\"components\":[{\"name\":\"router\",\"type\":\"address\",\"internalType\":\"contractIRouter\"},{\"name\":\"isEnabled\",\"type\":\"bool\",\"internalType\":\"bool\"},{\"name\":\"minSeqNr\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"onRamp\",\"type\":\"bytes\",\"internalType\":\"bytes\"}]}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"SourceChainSelectorAdded\",\"inputs\":[{\"name\":\"sourceChainSelector\",\"type\":\"uint64\",\"indexed\":false,\"internalType\":\"uint64\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"StaticConfigSet\",\"inputs\":[{\"name\":\"staticConfig\",\"type\":\"tuple\",\"indexed\":false,\"internalType\":\"structOffRamp.StaticConfig\",\"components\":[{\"name\":\"chainSelector\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"gasForCallExactCheck\",\"type\":\"uint16\",\"internalType\":\"uint16\"},{\"name\":\"rmnRemote\",\"type\":\"address\",\"internalType\":\"contractIRMNRemote\"},{\"name\":\"tokenAdminRegistry\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"nonceManager\",\"type\":\"address\",\"internalType\":\"address\"}]}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Transmitted\",\"inputs\":[{\"name\":\"ocrPluginType\",\"type\":\"uint8\",\"indexed\":true,\"internalType\":\"uint8\"},{\"name\":\"configDigest\",\"type\":\"bytes32\",\"indexed\":false,\"internalType\":\"bytes32\"},{\"name\":\"sequenceNumber\",\"type\":\"uint64\",\"indexed\":false,\"internalType\":\"uint64\"}],\"anonymous\":false},{\"type\":\"error\",\"name\":\"CanOnlySelfCall\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"CannotTransferToSelf\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"CommitOnRampMismatch\",\"inputs\":[{\"name\":\"reportOnRamp\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"configOnRamp\",\"type\":\"bytes\",\"internalType\":\"bytes\"}]},{\"type\":\"error\",\"name\":\"ConfigDigestMismatch\",\"inputs\":[{\"name\":\"expected\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"actual\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}]},{\"type\":\"error\",\"name\":\"CursedByRMN\",\"inputs\":[{\"name\":\"sourceChainSelector\",\"type\":\"uint64\",\"internalType\":\"uint64\"}]},{\"type\":\"error\",\"name\":\"EmptyBatch\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"EmptyReport\",\"inputs\":[{\"name\":\"sourceChainSelector\",\"type\":\"uint64\",\"internalType\":\"uint64\"}]},{\"type\":\"error\",\"name\":\"ExecutionError\",\"inputs\":[{\"name\":\"messageId\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"err\",\"type\":\"bytes\",\"internalType\":\"bytes\"}]},{\"type\":\"error\",\"name\":\"ForkedChain\",\"inputs\":[{\"name\":\"expected\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"actual\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"type\":\"error\",\"name\":\"InvalidConfig\",\"inputs\":[{\"name\":\"errorType\",\"type\":\"uint8\",\"internalType\":\"enumMultiOCR3Base.InvalidConfigErrorType\"}]},{\"type\":\"error\",\"name\":\"InvalidDataLength\",\"inputs\":[{\"name\":\"expected\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"got\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"type\":\"error\",\"name\":\"InvalidInterval\",\"inputs\":[{\"name\":\"sourceChainSelector\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"min\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"max\",\"type\":\"uint64\",\"internalType\":\"uint64\"}]},{\"type\":\"error\",\"name\":\"InvalidManualExecutionGasLimit\",\"inputs\":[{\"name\":\"sourceChainSelector\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"messageId\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"newLimit\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"type\":\"error\",\"name\":\"InvalidManualExecutionTokenGasOverride\",\"inputs\":[{\"name\":\"messageId\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"tokenIndex\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"oldLimit\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"tokenGasOverride\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"type\":\"error\",\"name\":\"InvalidMessageDestChainSelector\",\"inputs\":[{\"name\":\"messageDestChainSelector\",\"type\":\"uint64\",\"internalType\":\"uint64\"}]},{\"type\":\"error\",\"name\":\"InvalidNewState\",\"inputs\":[{\"name\":\"sourceChainSelector\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"sequenceNumber\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"newState\",\"type\":\"uint8\",\"internalType\":\"enumInternal.MessageExecutionState\"}]},{\"type\":\"error\",\"name\":\"InvalidOnRampUpdate\",\"inputs\":[{\"name\":\"sourceChainSelector\",\"type\":\"uint64\",\"internalType\":\"uint64\"}]},{\"type\":\"error\",\"name\":\"InvalidProof\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidRoot\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"LeavesCannotBeEmpty\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"ManualExecutionGasAmountCountMismatch\",\"inputs\":[{\"name\":\"messageId\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"sequenceNumber\",\"type\":\"uint64\",\"internalType\":\"uint64\"}]},{\"type\":\"error\",\"name\":\"ManualExecutionGasLimitMismatch\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"ManualExecutionNotYetEnabled\",\"inputs\":[{\"name\":\"sourceChainSelector\",\"type\":\"uint64\",\"internalType\":\"uint64\"}]},{\"type\":\"error\",\"name\":\"MessageValidationError\",\"inputs\":[{\"name\":\"errorReason\",\"type\":\"bytes\",\"internalType\":\"bytes\"}]},{\"type\":\"error\",\"name\":\"MustBeProposedOwner\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"NonUniqueSignatures\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"NotACompatiblePool\",\"inputs\":[{\"name\":\"notPool\",\"type\":\"address\",\"internalType\":\"address\"}]},{\"type\":\"error\",\"name\":\"OnlyCallableByOwner\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"OracleCannotBeZeroAddress\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"OwnerCannotBeZero\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"ReceiverError\",\"inputs\":[{\"name\":\"err\",\"type\":\"bytes\",\"internalType\":\"bytes\"}]},{\"type\":\"error\",\"name\":\"ReleaseOrMintBalanceMismatch\",\"inputs\":[{\"name\":\"amountReleased\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"balancePre\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"balancePost\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"type\":\"error\",\"name\":\"RootAlreadyCommitted\",\"inputs\":[{\"name\":\"sourceChainSelector\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"merkleRoot\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}]},{\"type\":\"error\",\"name\":\"RootNotCommitted\",\"inputs\":[{\"name\":\"sourceChainSelector\",\"type\":\"uint64\",\"internalType\":\"uint64\"}]},{\"type\":\"error\",\"name\":\"SignatureVerificationNotAllowedInExecutionPlugin\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"SignatureVerificationRequiredInCommitPlugin\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"SignaturesOutOfRegistration\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"SourceChainNotEnabled\",\"inputs\":[{\"name\":\"sourceChainSelector\",\"type\":\"uint64\",\"internalType\":\"uint64\"}]},{\"type\":\"error\",\"name\":\"SourceChainSelectorMismatch\",\"inputs\":[{\"name\":\"reportSourceChainSelector\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"messageSourceChainSelector\",\"type\":\"uint64\",\"internalType\":\"uint64\"}]},{\"type\":\"error\",\"name\":\"StaleCommitReport\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"StaticConfigCannotBeChanged\",\"inputs\":[{\"name\":\"ocrPluginType\",\"type\":\"uint8\",\"internalType\":\"uint8\"}]},{\"type\":\"error\",\"name\":\"TokenDataMismatch\",\"inputs\":[{\"name\":\"sourceChainSelector\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"sequenceNumber\",\"type\":\"uint64\",\"internalType\":\"uint64\"}]},{\"type\":\"error\",\"name\":\"TokenHandlingError\",\"inputs\":[{\"name\":\"target\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"err\",\"type\":\"bytes\",\"internalType\":\"bytes\"}]},{\"type\":\"error\",\"name\":\"UnauthorizedSigner\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"UnauthorizedTransmitter\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"UnexpectedTokenData\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"WrongMessageLength\",\"inputs\":[{\"name\":\"expected\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"actual\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"type\":\"error\",\"name\":\"WrongNumberOfSignatures\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"ZeroAddressNotAllowed\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"ZeroChainSelectorNotAllowed\",\"inputs\":[]}]", - Bin: "0x61014080604052346108485761634e803803809161001d828561087e565b833981019080820361014081126108485760a08112610848576040519060a082016001600160401b0381118382101761084d5760405261005c836108a1565b825260208301519261ffff84168403610848576020830193845260408101516001600160a01b0381168103610848576040840190815261009e606083016108b5565b946060850195865260806100b38185016108b5565b86820190815294609f19011261084857604051946100d086610863565b6100dc60a085016108b5565b865260c08401519463ffffffff86168603610848576020870195865261010460e086016108c9565b976040880198895261011961010087016108b5565b6060890190815261012087015190966001600160401b03821161084857018a601f820112156108485780519a6001600160401b038c1161084d578b60051b916020806040519e8f9061016d8388018361087e565b81520193820101908282116108485760208101935b828510610748575050505050331561073757600180546001600160a01b031916331790554660805284516001600160a01b0316158015610725575b8015610713575b6106f15782516001600160401b0316156107025782516001600160401b0390811660a090815286516001600160a01b0390811660c0528351811660e0528451811661010052865161ffff90811661012052604080519751909416875296519096166020860152955185169084015251831660608301525190911660808201527fb0fa1fb01508c5097c502ad056fd77018870c9be9a86d9e56b6b471862d7c5b79190a182516001600160a01b0316156106f1579151600480548351865160ff60c01b90151560c01b1663ffffffff60a01b60a09290921b919091166001600160a01b039485166001600160c81b0319909316831717179091558351600580549184166001600160a01b031990921691909117905560408051918252925163ffffffff166020820152935115159184019190915290511660608201527fcbb53bda7106a610de67df506ac86b65c44d5afac0fd2b11070dc2d61a6f2dee90608090a160005b815181101561066b576020600582901b8301810151908101516001600160401b031690600090821561065c5780516001600160a01b03161561064d57828252600860205260408220906060810151600183019361038585546108d6565b6105ee578354600160a81b600160e81b031916600160a81b1784556040518681527ff4c1390c70e5c0f491ae1ccbc06f9117cbbadf2767b247b3bc203280f24c0fb990602090a15b815180159081156105c3575b506105b4578151916001600160401b0383116105a0576103f986546108d6565b601f811161055b575b50602091601f84116001146104e2579260019897969492819260008051602061632e8339815191529795926104d7575b5050600019600383901b1c191690881b1783555b60408101518254915160a089811b8a9003801960ff60a01b1990951693151590911b60ff60a01b169290921792909216911617815561048484610993565b506104ce6040519283926020845254888060a01b038116602085015260ff8160a01c1615156040850152888060401b039060a81c16606084015260808084015260a0830190610910565b0390a201610328565b015190503880610432565b9190601f198416878452828420935b8181106105435750926001999897959392859260008051602061632e83398151915298968c951061052a575b505050811b018355610446565b015160001960f88460031b161c1916905538808061051d565b929360206001819287860151815501950193016104f1565b86835260208320601f850160051c81019160208610610596575b601f0160051c01905b81811061058b5750610402565b83815560010161057e565b9091508190610575565b634e487b7160e01b82526041600452602482fd5b6342bcdf7f60e11b8152600490fd5b905060208301206040516020810190838252602081526105e460408261087e565b51902014386103d9565b835460a81c6001600160401b0316600114158061061f575b156103cd57632105803760e11b81526004869052602490fd5b50604051610638816106318189610910565b038261087e565b60208151910120825160208401201415610606565b6342bcdf7f60e11b8252600482fd5b63c656089560e01b8252600482fd5b6040516159079081610a278239608051816136a2015260a0518181816104700152614200015260c0518181816104c601528181612cd001528181613124015261419a015260e0518181816104f501526149dd01526101005181818161052401526145c30152610120518181816104970152818161244a01528181614ad0015261563c0152f35b6342bcdf7f60e11b60005260046000fd5b63c656089560e01b60005260046000fd5b5081516001600160a01b0316156101c4565b5080516001600160a01b0316156101bd565b639b15e16f60e01b60005260046000fd5b84516001600160401b0381116108485782016080818603601f190112610848576040519061077582610863565b60208101516001600160a01b0381168103610848578252610798604082016108a1565b60208301526107a9606082016108c9565b604083015260808101516001600160401b03811161084857602091010185601f820112156108485780516001600160401b03811161084d57604051916107f9601f8301601f19166020018461087e565b81835287602083830101116108485760005b8281106108335750509181600060208096949581960101526060820152815201940193610182565b8060208092840101518282870101520161080b565b600080fd5b634e487b7160e01b600052604160045260246000fd5b608081019081106001600160401b0382111761084d57604052565b601f909101601f19168101906001600160401b0382119082101761084d57604052565b51906001600160401b038216820361084857565b51906001600160a01b038216820361084857565b5190811515820361084857565b90600182811c92168015610906575b60208310146108f057565b634e487b7160e01b600052602260045260246000fd5b91607f16916108e5565b60009291815491610920836108d6565b8083529260018116908115610976575060011461093c57505050565b60009081526020812093945091925b83831061095c575060209250010190565b60018160209294939454838587010152019101919061094b565b915050602093945060ff929192191683830152151560051b010190565b80600052600760205260406000205415600014610a20576006546801000000000000000081101561084d576001810180600655811015610a0a577ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f0181905560065460009182526007602052604090912055600190565b634e487b7160e01b600052603260045260246000fd5b5060009056fe6080604052600436101561001257600080fd5b60003560e01c806304666f9c1461015757806306285c6914610152578063181f5a771461014d5780633f4b04aa146101485780635215505b146101435780635e36480c1461013e5780635e7bb0081461013957806360987c20146101345780637437ff9f1461012f57806379ba50971461012a5780637edf52f41461012557806385572ffb146101205780638da5cb5b1461011b578063c673e58414610116578063ccd37ba314610111578063de5e0b9a1461010c578063e9d68a8e14610107578063f2fde38b14610102578063f58e03fc146100fd5763f716f99f146100f857600080fd5b6118b6565b611799565b61170e565b611673565b6115d7565b611553565b6114a8565b6113c0565b61138a565b6111c4565b611144565b61109b565b611020565b610e1b565b6108b0565b61076b565b61065e565b6105ff565b61043d565b61031f565b634e487b7160e01b600052604160045260246000fd5b608081019081106001600160401b0382111761018d57604052565b61015c565b60a081019081106001600160401b0382111761018d57604052565b604081019081106001600160401b0382111761018d57604052565b606081019081106001600160401b0382111761018d57604052565b90601f801991011681019081106001600160401b0382111761018d57604052565b6040519061021360c0836101e3565b565b6040519061021360a0836101e3565b60405190610213610100836101e3565b604051906102136040836101e3565b6001600160401b03811161018d5760051b60200190565b6001600160a01b0381160361026b57565b600080fd5b600435906001600160401b038216820361026b57565b35906001600160401b038216820361026b57565b8015150361026b57565b35906102138261029a565b6001600160401b03811161018d57601f01601f191660200190565b9291926102d6826102af565b916102e460405193846101e3565b82948184528183011161026b578281602093846000960137010152565b9080601f8301121561026b5781602061031c933591016102ca565b90565b3461026b57602036600319011261026b576004356001600160401b03811161026b573660238201121561026b5780600401359061035b82610243565b9061036960405192836101e3565b8282526024602083019360051b8201019036821161026b5760248101935b82851061039957610397846119f1565b005b84356001600160401b03811161026b5782016080602319823603011261026b57604051916103c683610172565b60248201356103d48161025a565b83526103e260448301610286565b602084015260648201356103f58161029a565b60408401526084820135926001600160401b03841161026b57610422602094936024869536920101610301565b6060820152815201940193610387565b600091031261026b57565b3461026b57600036600319011261026b57610456611c9d565b5061059e60405161046681610192565b6001600160401b037f000000000000000000000000000000000000000000000000000000000000000016815261ffff7f00000000000000000000000000000000000000000000000000000000000000001660208201526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001660408201526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001660608201526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001660808201526040519182918291909160806001600160a01b038160a08401956001600160401b03815116855261ffff6020820151166020860152826040820151166040860152826060820151166060860152015116910152565b0390f35b604051906105b16020836101e3565b60008252565b60005b8381106105ca5750506000910152565b81810151838201526020016105ba565b906020916105f3815180928185528580860191016105b7565b601f01601f1916010190565b3461026b57600036600319011261026b5761059e604080519061062281836101e3565b601182527f4f666652616d7020312e362e302d6465760000000000000000000000000000006020830152519182916020835260208301906105da565b3461026b57600036600319011261026b5760206001600160401b03600b5416604051908152f35b906080606061031c936001600160a01b0381511684526020810151151560208501526001600160401b03604082015116604085015201519181606082015201906105da565b6040810160408252825180915260206060830193019060005b81811061074c575050506020818303910152815180825260208201916020808360051b8301019401926000915b83831061071f57505050505090565b909192939460208061073d600193601f198682030187528951610685565b97019301930191939290610710565b82516001600160401b03168552602094850194909201916001016106e3565b3461026b57600036600319011261026b5760065461078881610243565b9061079660405192836101e3565b808252601f196107a582610243565b0160005b8181106108675750506107bb81611cef565b9060005b8181106107d757505061059e604051928392836106ca565b8061080d6107f56107e9600194614081565b6001600160401b031690565b6107ff8387611d49565b906001600160401b03169052565b61084b61084661082d6108208488611d49565b516001600160401b031690565b6001600160401b03166000526008602052604060002090565b611e35565b6108558287611d49565b526108608186611d49565b50016107bf565b602090610872611cc8565b828287010152016107a9565b634e487b7160e01b600052602160045260246000fd5b6004111561089e57565b61087e565b90600482101561089e5752565b3461026b57604036600319011261026b576108c9610270565b602435906001600160401b038216820361026b576020916108e991611ed1565b6108f660405180926108a3565bf35b91908260a091031261026b5760405161091081610192565b60806109558183958035855261092860208201610286565b602086015261093960408201610286565b604086015261094a60608201610286565b606086015201610286565b910152565b35906102138261025a565b63ffffffff81160361026b57565b359061021382610965565b81601f8201121561026b5780359061099582610243565b926109a360405194856101e3565b82845260208085019360051b8301019181831161026b5760208101935b8385106109cf57505050505090565b84356001600160401b03811161026b57820160a0818503601f19011261026b57604051916109fc83610192565b60208201356001600160401b03811161026b57856020610a1e92850101610301565b83526040820135610a2e8161025a565b6020840152610a3f60608301610973565b60408401526080820135926001600160401b03841161026b5760a083610a6c886020809881980101610301565b6060840152013560808201528152019401936109c0565b9190916101408184031261026b57610a99610204565b92610aa481836108f8565b845260a08201356001600160401b03811161026b5781610ac5918401610301565b602085015260c08201356001600160401b03811161026b5781610ae9918401610301565b6040850152610afa60e0830161095a565b606085015261010082013560808501526101208201356001600160401b03811161026b57610b28920161097e565b60a0830152565b9080601f8301121561026b578135610b4681610243565b92610b5460405194856101e3565b81845260208085019260051b8201019183831161026b5760208201905b838210610b8057505050505090565b81356001600160401b03811161026b57602091610ba287848094880101610a83565b815201910190610b71565b81601f8201121561026b57803590610bc482610243565b92610bd260405194856101e3565b82845260208085019360051b8301019181831161026b5760208101935b838510610bfe57505050505090565b84356001600160401b03811161026b57820183603f8201121561026b576020810135610c2981610243565b91610c3760405193846101e3565b8183526020808085019360051b830101019186831161026b5760408201905b838210610c70575050509082525060209485019401610bef565b81356001600160401b03811161026b57602091610c948a8480809589010101610301565b815201910190610c56565b929190610cab81610243565b93610cb960405195866101e3565b602085838152019160051b810192831161026b57905b828210610cdb57505050565b8135815260209182019101610ccf565b9080601f8301121561026b5781602061031c93359101610c9f565b81601f8201121561026b57803590610d1d82610243565b92610d2b60405194856101e3565b82845260208085019360051b8301019181831161026b5760208101935b838510610d5757505050505090565b84356001600160401b03811161026b57820160a0818503601f19011261026b57610d7f610215565b91610d8c60208301610286565b835260408201356001600160401b03811161026b57856020610db092850101610b2f565b602084015260608201356001600160401b03811161026b57856020610dd792850101610bad565b60408401526080820135926001600160401b03841161026b5760a083610e04886020809881980101610ceb565b606084015201356080820152815201940193610d48565b3461026b57604036600319011261026b576004356001600160401b03811161026b57610e4b903690600401610d06565b6024356001600160401b03811161026b573660238201121561026b57806004013591610e7683610243565b91610e8460405193846101e3565b8383526024602084019460051b8201019036821161026b5760248101945b828610610eb3576103978585611f19565b85356001600160401b03811161026b5782013660438201121561026b576024810135610ede81610243565b91610eec60405193846101e3565b818352602060248185019360051b830101019036821161026b5760448101925b828410610f26575050509082525060209586019501610ea2565b83356001600160401b03811161026b576024908301016040601f19823603011261026b5760405190610f57826101ad565b6020810135825260408101356001600160401b03811161026b57602091010136601f8201121561026b57803590610f8d82610243565b91610f9b60405193846101e3565b80835260208084019160051b8301019136831161026b57602001905b828210610fd65750505091816020938480940152815201930192610f0c565b602080918335610fe581610965565b815201910190610fb7565b9181601f8401121561026b578235916001600160401b03831161026b576020808501948460051b01011161026b57565b3461026b57606036600319011261026b576004356001600160401b03811161026b57611050903690600401610a83565b6024356001600160401b03811161026b5761106f903690600401610ff0565b91604435926001600160401b03841161026b57611093610397943690600401610ff0565b939092612325565b3461026b57600036600319011261026b576110b46125fb565b5061059e6040516110c481610172565b60ff6004546001600160a01b038116835263ffffffff8160a01c16602084015260c01c16151560408201526001600160a01b036005541660608201526040519182918291909160606001600160a01b0381608084019582815116855263ffffffff6020820151166020860152604081015115156040860152015116910152565b3461026b57600036600319011261026b576000546001600160a01b03811633036111b3576001600160a01b0319600154913382841617600155166000556001600160a01b033391167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a3005b63015aa1e360e11b60005260046000fd5b3461026b57608036600319011261026b5760006040516111e381610172565b6004356111ef8161025a565b81526024356111fd81610965565b602082015260443561120e8161029a565b604082015260643561121f8161025a565b606082015261122c61349f565b6001600160a01b038151161561137b576113758161128b6001600160a01b037fcbb53bda7106a610de67df506ac86b65c44d5afac0fd2b11070dc2d61a6f2dee9451166001600160a01b03166001600160a01b03196004541617600455565b60208101516004547fffffffffffffff0000000000ffffffffffffffffffffffffffffffffffffffff77ffffffff000000000000000000000000000000000000000078ff0000000000000000000000000000000000000000000000006040860151151560c01b169360a01b169116171760045561133161131560608301516001600160a01b031690565b6001600160a01b03166001600160a01b03196005541617600555565b6040519182918291909160606001600160a01b0381608084019582815116855263ffffffff6020820151166020860152604081015115156040860152015116910152565b0390a180f35b6342bcdf7f60e11b8252600482fd5b3461026b57602036600319011261026b576004356001600160401b03811161026b5760a090600319903603011261026b57600080fd5b3461026b57600036600319011261026b5760206001600160a01b0360015416604051908152f35b6004359060ff8216820361026b57565b359060ff8216820361026b57565b906020808351928381520192019060005b8181106114235750505090565b82516001600160a01b0316845260209384019390920191600101611416565b9061031c9160208152606082518051602084015260ff602082015116604084015260ff604082015116828401520151151560808201526040611493602084015160c060a085015260e0840190611405565b9201519060c0601f1982850301910152611405565b3461026b57602036600319011261026b5760ff6114c36113e7565b6060604080516114d2816101c8565b6114da6125fb565b8152826020820152015216600052600260205261059e6040600020600361154260405192611507846101c8565b61151081612620565b845260405161152d816115268160028601612659565b03826101e3565b60208501526115266040518094819301612659565b604082015260405191829182611442565b3461026b57604036600319011261026b5761156c610270565b6001600160401b036024359116600052600a6020526040600020906000526020526020604060002054604051908152f35b9060049160441161026b57565b9181601f8401121561026b578235916001600160401b03831161026b576020838186019501011161026b57565b3461026b5760c036600319011261026b576115f13661159d565b6044356001600160401b03811161026b576116109036906004016115aa565b6064929192356001600160401b03811161026b57611632903690600401610ff0565b60843594916001600160401b03861161026b57611656610397963690600401610ff0565b94909360a43596612c8b565b90602061031c928181520190610685565b3461026b57602036600319011261026b576001600160401b03611694610270565b61169c611cc8565b5016600052600860205261059e604060002060016116fd604051926116c084610172565b6001600160401b0381546001600160a01b038116865260ff8160a01c161515602087015260a81c1660408501526115266040518094819301611d97565b606082015260405191829182611662565b3461026b57602036600319011261026b576001600160a01b036004356117338161025a565b61173b61349f565b1633811461178857806001600160a01b031960005416176000556001600160a01b03600154167fed8889f560326eb138920d842192f0eb3dd22b4f139c87a2c57538e05bae1278600080a3005b636d6c4ee560e11b60005260046000fd5b3461026b57606036600319011261026b576117b33661159d565b6044356001600160401b03811161026b576117d29036906004016115aa565b9182820160208382031261026b578235906001600160401b03821161026b576117fc918401610d06565b60405190602061180c81846101e3565b60008352601f19810160005b818110611840575050506103979491611830916136e3565b61183861319a565b928392613a92565b60608582018401528201611818565b9080601f8301121561026b57813561186681610243565b9261187460405194856101e3565b81845260208085019260051b82010192831161026b57602001905b82821061189c5750505090565b6020809183356118ab8161025a565b81520191019061188f565b3461026b57602036600319011261026b576004356001600160401b03811161026b573660238201121561026b578060040135906118f282610243565b9061190060405192836101e3565b8282526024602083019360051b8201019036821161026b5760248101935b82851061192e57610397846131b6565b84356001600160401b03811161026b57820160c0602319823603011261026b57611956610204565b916024820135835261196a604483016113f7565b602084015261197b606483016113f7565b604084015261198c608483016102a4565b606084015260a48201356001600160401b03811161026b576119b4906024369185010161184f565b608084015260c4820135926001600160401b03841161026b576119e160209493602486953692010161184f565b60a082015281520194019361191e565b6119f961349f565b60005b8151811015611c9957611a0f8183611d49565b5190611a2560208301516001600160401b031690565b916001600160401b038316908115611c8857611a5a611a4e611a4e83516001600160a01b031690565b6001600160a01b031690565b15611bef57611a7c846001600160401b03166000526008602052604060002090565b906060810151916001810195611a928754611d5d565b611c1657611b057ff4c1390c70e5c0f491ae1ccbc06f9117cbbadf2767b247b3bc203280f24c0fb991611aeb84750100000000000000000000000000000000000000000067ffffffffffffffff60a81b19825416179055565b6040516001600160401b0390911681529081906020820190565b0390a15b82518015908115611c00575b50611bef57611bd0611bb4611be693611b517f49f51971edd25182e97182d6ea372a0488ce2ab639f6a3a7ab4df0d2636fe56b9660019a613541565b611ba7611b616040830151151590565b85547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff1690151560a01b74ff000000000000000000000000000000000000000016178555565b516001600160a01b031690565b82906001600160a01b03166001600160a01b0319825416179055565b611bd9846150a9565b5060405191829182613612565b0390a2016119fc565b6342bcdf7f60e11b60005260046000fd5b90506020840120611c0f6134c4565b1438611b15565b60016001600160401b03611c3584546001600160401b039060a81c1690565b16141580611c69575b611c485750611b09565b632105803760e11b6000526001600160401b031660045260246000fd5b6000fd5b50611c7387611e1a565b60208151910120845160208601201415611c3e565b63c656089560e01b60005260046000fd5b5050565b60405190611caa82610192565b60006080838281528260208201528260408201528260608201520152565b60405190611cd582610172565b606080836000815260006020820152600060408201520152565b90611cf982610243565b611d0660405191826101e3565b8281528092611d17601f1991610243565b0190602036910137565b634e487b7160e01b600052603260045260246000fd5b805115611d445760200190565b611d21565b8051821015611d445760209160051b010190565b90600182811c92168015611d8d575b6020831014611d7757565b634e487b7160e01b600052602260045260246000fd5b91607f1691611d6c565b60009291815491611da783611d5d565b8083529260018116908115611dfd5750600114611dc357505050565b60009081526020812093945091925b838310611de3575060209250010190565b600181602092949394548385870101520191019190611dd2565b915050602093945060ff929192191683830152151560051b010190565b90610213611e2e9260405193848092611d97565b03836101e3565b9060016060604051611e4681610172565b611e8f81956001600160401b0381546001600160a01b038116855260ff8160a01c161515602086015260a81c166040840152611e886040518096819301611d97565b03846101e3565b0152565b634e487b7160e01b600052601160045260246000fd5b908160051b9180830460201490151715611ebf57565b611e93565b91908203918211611ebf57565b611edd82607f9261365c565b9116906801fffffffffffffffe6001600160401b0383169260011b169180830460021490151715611ebf576003911c16600481101561089e5790565b611f216136a0565b8051825181036121185760005b818110611f4157505090610213916136e3565b611f4b8184611d49565b516020810190815151611f5e8488611d49565b5192835182036121185790916000925b808410611f82575050505050600101611f2e565b91949398611f94848b98939598611d49565b515198611fa2888851611d49565b5199806120cf575b5060a08a01988b6020611fc08b8d515193611d49565b51015151036120925760005b8a515181101561207d57612008611fff611ff58f6020611fed8f8793611d49565b510151611d49565b5163ffffffff1690565b63ffffffff1690565b8b81612019575b5050600101611fcc565b611fff604061202c856120389451611d49565b51015163ffffffff1690565b9081811061204757508b61200f565b8d51516040516348e617b360e01b81526004810191909152602481019390935260448301919091526064820152608490fd5b0390fd5b50985098509893949095600101929091611f6e565b611c658b516120ad606082519201516001600160401b031690565b6370a193fd60e01b6000526004919091526001600160401b0316602452604490565b60808b0151811015611faa57611c65908b6120f188516001600160401b031690565b905151633a98d46360e11b6000526001600160401b03909116600452602452604452606490565b6320f8fd5960e21b60005260046000fd5b60405190612136826101ad565b60006020838281520152565b604051906121516020836101e3565b600080835282815b82811061216557505050565b602090612170612129565b82828501015201612159565b805182526001600160401b03602082015116602083015260806121c36121b1604084015160a0604087015260a08601906105da565b606084015185820360608701526105da565b9101519160808183039101526020808351928381520192019060005b8181106121ec5750505090565b825180516001600160a01b0316855260209081015181860152604090940193909201916001016121df565b90602061031c92818152019061217c565b6040513d6000823e3d90fd5b3d1561225f573d90612245826102af565b9161225360405193846101e3565b82523d6000602084013e565b606090565b90602061031c9281815201906105da565b909160608284031261026b57815161228c8161029a565b9260208301516001600160401b03811161026b5783019080601f8301121561026b578151916122ba836102af565b916122c860405193846101e3565b8383526020848301011161026b576040926122e991602080850191016105b7565b92015190565b9293606092959461ffff6123136001600160a01b039460808852608088019061217c565b97166020860152604085015216910152565b509290913033036125ea57612338613796565b92612341612142565b9460a085015180516125a3575b505050505080519161236c602084519401516001600160401b031690565b906020830151916040840192612399845192612386610215565b9788526001600160401b03166020880152565b6040860152606085015260808401526001600160a01b036123c26005546001600160a01b031690565b1680612526575b505151158061251a575b8015612504575b80156124db575b611c99576124739181612418611a4e61240b61082d602060009751016001600160401b0390511690565b546001600160a01b031690565b9083612433606060808401519301516001600160a01b031690565b604051633cf9798360e01b815296879586948593917f000000000000000000000000000000000000000000000000000000000000000090600486016122ef565b03925af19081156124d6576000906000926124af575b50156124925750565b6040516302a35ba360e21b81529081906120799060048301612264565b90506124ce91503d806000833e6124c681836101e3565b810190612275565b509038612489565b612228565b506124ff6124fb6124f660608401516001600160a01b031690565b613953565b1590565b6123e1565b5060608101516001600160a01b03163b156123da565b506080810151156123d3565b803b1561026b57600060405180926308d450a160e01b825281838161254e8a60048301612217565b03925af19081612588575b5061258257612079612569612234565b6040516309c2532560e01b815291829160048301612264565b386123c9565b80612597600061259d936101e3565b80610432565b38612559565b85965060206125df9601516125c260608901516001600160a01b031690565b906125d960208a51016001600160401b0390511690565b9261383a565b90388080808061234e565b6306e34e6560e31b60005260046000fd5b6040519061260882610172565b60006060838281528260208201528260408201520152565b9060405161262d81610172565b606060ff600183958054855201548181166020850152818160081c16604085015260101c161515910152565b906020825491828152019160005260206000209060005b81811061267d5750505090565b82546001600160a01b0316845260209093019260019283019201612670565b90610213611e2e9260405193848092612659565b35906001600160e01b038216820361026b57565b81601f8201121561026b578035906126db82610243565b926126e960405194856101e3565b82845260208085019360061b8301019181831161026b57602001925b828410612713575050505090565b60408483031261026b576020604091825161272d816101ad565b61273687610286565b81526127438388016126b0565b83820152815201930192612705565b81601f8201121561026b5780359061276982610243565b9261277760405194856101e3565b82845260208085019360051b8301019181831161026b5760208101935b8385106127a357505050505090565b84356001600160401b03811161026b57820160a0818503601f19011261026b57604051916127d083610192565b6127dc60208301610286565b83526040820135926001600160401b03841161026b5760a083612806886020809881980101610301565b8584015261281660608201610286565b604084015261282760808201610286565b606084015201356080820152815201940193612794565b81601f8201121561026b5780359061285582610243565b9261286360405194856101e3565b82845260208085019360061b8301019181831161026b57602001925b82841061288d575050505090565b60408483031261026b57602060409182516128a7816101ad565b86358152828701358382015281520193019261287f565b60208183031261026b578035906001600160401b03821161026b570160608183031261026b57604051916128f1836101c8565b81356001600160401b03811161026b57820160408183031261026b576040519061291a826101ad565b80356001600160401b03811161026b57810183601f8201121561026b57803561294281610243565b9161295060405193846101e3565b81835260208084019260061b8201019086821161026b57602001915b8183106129e85750505082526020810135906001600160401b03821161026b57612998918491016126c4565b6020820152835260208201356001600160401b03811161026b57816129be918401612752565b602084015260408201356001600160401b03811161026b576129e0920161283e565b604082015290565b60408388031261026b5760206040918251612a02816101ad565b8535612a0d8161025a565b8152612a1a8387016126b0565b8382015281520192019161296c565b9080602083519182815201916020808360051b8301019401926000915b838310612a5557505050505090565b9091929394602080600192601f198582030186528851906001600160401b038251168152608080612a938585015160a08786015260a08501906105da565b936001600160401b0360408201511660408501526001600160401b036060820151166060850152015191015297019301930191939290612a46565b916001600160a01b03612aef92168352606060208401526060830190612a29565b9060408183039101526020808351928381520192019060005b818110612b155750505090565b8251805185526020908101518186015260409094019390920191600101612b08565b906020808351928381520192019060005b818110612b555750505090565b825180516001600160401b031685526020908101516001600160e01b03168186015260409094019390920191600101612b48565b9190604081019083519160408252825180915260206060830193019060005b818110612bc957505050602061031c93940151906020818403910152612b37565b825180516001600160a01b031686526020908101516001600160e01b03168187015260409095019490920191600101612ba8565b90602061031c928181520190612b89565b9081602091031261026b575161031c8161029a565b9091612c3a61031c936040845260408401906105da565b916020818403910152611d97565b6001600160401b036001911601906001600160401b038211611ebf57565b9091612c7d61031c93604084526040840190612a29565b916020818403910152612b89565b929693959190979497612ca0828201826128be565b98612cb46124fb60045460ff9060c01c1690565b613108575b895180515115908115916130f9575b50613020575b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316999860208a019860005b8a518051821015612fbe5781612d1791611d49565b518d612d2a82516001600160401b031690565b604051632cbc26bb60e01b815267ffffffffffffffff60801b608083901b1660048201529091602090829060249082905afa9081156124d657600091612f90575b50612f7357612d79906139a1565b60208201805160208151910120906001830191612d9583611e1a565b6020815191012003612f56575050805460408301516001600160401b039081169160a81c168114801590612f2e575b612edc57506080820151908115612ecb57612e1582612e06612ded86516001600160401b031690565b6001600160401b0316600052600a602052604060002090565b90600052602052604060002090565b54612e97578291612e7b612e9092612e42612e3d60606001999801516001600160401b031690565b612c48565b67ffffffffffffffff60a81b197cffffffffffffffff00000000000000000000000000000000000000000083549260a81b169116179055565b612e06612ded4294516001600160401b031690565b5501612d02565b50612eac611c6592516001600160401b031690565b6332cf0cbf60e01b6000526001600160401b0316600452602452604490565b63504570e360e01b60005260046000fd5b82611c6591612f066060612ef784516001600160401b031690565b9301516001600160401b031690565b636af0786b60e11b6000526001600160401b0392831660045290821660245216604452606490565b50612f466107e960608501516001600160401b031690565b6001600160401b03821611612dc4565b5161207960405192839263b80d8fa960e01b845260048401612c23565b637edeb53960e11b6000526001600160401b031660045260246000fd5b612fb1915060203d8111612fb7575b612fa981836101e3565b810190612c0e565b38612d6b565b503d612f9f565b505061301a9496989b507f35c02761bcd3ef995c6a601a1981f4ed3934dcbe5041e24e286c89f5531d17e46102139b613012949597999b5190519061300860405192839283612c66565b0390a13691610c9f565b943691610c9f565b93613d70565b613035602086015b356001600160401b031690565b600b546001600160401b03828116911610156130dd5761306b906001600160401b03166001600160401b0319600b541617600b55565b613083611a4e611a4e6004546001600160a01b031690565b8a5190803b1561026b57604051633937306f60e01b81529160009183918290849082906130b39060048301612bfd565b03925af180156124d6576130c8575b50612cce565b8061259760006130d7936101e3565b386130c2565b5060208a015151612cce57632261116760e01b60005260046000fd5b60209150015151151538612cc8565b60208a0151805161311a575b50612cb9565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169060408c0151823b1561026b57604051633854844f60e11b815292600092849283918291613176913060048501612ace565b03915afa80156124d6571561311457806125976000613194936101e3565b38613114565b604051906131a96020836101e3565b6000808352366020840137565b6131be61349f565b60005b8151811015611c99576131d48183611d49565b51906040820160ff6131e7825160ff1690565b161561348957602083015160ff169261320d8460ff166000526002602052604060002090565b91600183019182546132286132228260ff1690565b60ff1690565b61344e575061325561323d6060830151151590565b845462ff0000191690151560101b62ff000016178455565b60a081019182516101008151116133f657805115613438576003860161328361327d8261269c565b8a614e57565b6060840151613313575b947fab8b1b57514019638d7b5ce9c638fe71366fe8e2be1c40a7a80f1733d0e9f547946002946132ef6132df61330d9a966132d88760019f9c6132d36133059a8f614fb8565b613f84565b5160ff1690565b845460ff191660ff821617909455565b519081855551906040519586950190888661400a565b0390a161503a565b016131c1565b9794600287939597019661332f6133298961269c565b88614e57565b6080850151946101008651116134225785516133576132226133528a5160ff1690565b613f70565b101561340c5785518451116133f6576132ef6132df7fab8b1b57514019638d7b5ce9c638fe71366fe8e2be1c40a7a80f1733d0e9f547986132d88760019f6132d361330d9f9a8f6133de60029f6133d86133059f8f906132d384926133bd845160ff1690565b908054909161ff001990911660089190911b61ff0016179055565b82614eeb565b505050979c9f50975050969a5050509450945061328d565b631b3fab5160e11b600052600160045260246000fd5b631b3fab5160e11b600052600360045260246000fd5b631b3fab5160e11b600052600260045260246000fd5b631b3fab5160e11b600052600560045260246000fd5b60101c60ff166134696134646060840151151590565b151590565b90151514613255576321fd80df60e21b60005260ff861660045260246000fd5b631b3fab5160e11b600090815260045260246000fd5b6001600160a01b036001541633036134b357565b6315ae3a6f60e11b60005260046000fd5b604051602081019060008252602081526134df6040826101e3565b51902090565b8181106134f0575050565b600081556001016134e5565b9190601f811161350b57505050565b610213926000526020600020906020601f840160051c83019310613537575b601f0160051c01906134e5565b909150819061352a565b91909182516001600160401b03811161018d57613568816135628454611d5d565b846134fc565b6020601f82116001146135a957819061359a93949560009261359e575b50508160011b916000199060031b1c19161790565b9055565b015190503880613585565b601f198216906135be84600052602060002090565b9160005b8181106135fa575095836001959697106135e1575b505050811b019055565b015160001960f88460031b161c191690553880806135d7565b9192602060018192868b0151815501940192016135c2565b90600160a061031c93602081526001600160401b0384546001600160a01b038116602084015260ff81851c161515604084015260a81c166060820152608080820152019101611d97565b906001600160401b0361369c921660005260096020526701ffffffffffffff60406000209160071c166001600160401b0316600052602052604060002090565b5490565b7f00000000000000000000000000000000000000000000000000000000000000004681036136cb5750565b630f01ce8560e01b6000526004524660245260446000fd5b91909180511561378557825115926020916040519261370281856101e3565b60008452601f19810160005b8181106137615750505060005b8151811015613759578061374261373460019385611d49565b518815613748578690614149565b0161371b565b6137528387611d49565b5190614149565b505050509050565b829060405161376f816101ad565b600081526060838201528282890101520161370e565b63c2e5347d60e01b60005260046000fd5b6040519060c082018281106001600160401b0382111761018d57604052606060a0836137c0611c9d565b8152826020820152826040820152600083820152600060808201520152565b9190811015611d445760051b0190565b3561031c81610965565b9190811015611d445760051b81013590601e198136030182121561026b5701908135916001600160401b03831161026b57602001823603811361026b579190565b9092949193979681519661384d88610243565b9761385b604051998a6101e3565b80895261386a601f1991610243565b0160005b81811061393c57505060005b835181101561392f57806138c18c8a8a8a6138bb6138b4878d6138ad828f8f9d8f9e60019f816138dd575b505050611d49565b51976137f9565b36916102ca565b9361498e565b6138cb828c611d49565b526138d6818b611d49565b500161387a565b63ffffffff6138f56138f08585856137df565b6137ef565b16156138a5576139259261390c926138f0926137df565b60406139188585611d49565b51019063ffffffff169052565b8f8f9083916138a5565b5096985050505050505050565b602090613947612129565b82828d0101520161386e565b6139646385572ffb60e01b82614cf1565b908161397e575b81613974575090565b61031c9150614cc3565b905061398981614c48565b159061396b565b61396463aff2afbf60e01b82614cf1565b6001600160401b031680600052600860205260406000209060ff825460a01c16156139ca575090565b63ed053c5960e01b60005260045260246000fd5b6084019081608411611ebf57565b60a001908160a011611ebf57565b91908201809211611ebf57565b6003111561089e57565b600382101561089e5752565b90610213604051613a2d816101ad565b602060ff829554818116845260081c169101613a11565b8054821015611d445760005260206000200190600090565b60ff60019116019060ff8211611ebf57565b60ff601b9116019060ff8211611ebf57565b90606092604091835260208301370190565b6001600052600260205293613ac67fe90b7bceb6e7df5418fb78d8ee546e97c83a08bbccc01a0644d599ccd2a7c2e0612620565b93853594613ad3856139de565b6060820190613ae28251151590565b613d42575b803603613d2a57508151878103613d115750613b016136a0565b60016000526003602052613b50613b4b7fa15bc60c955c405d20d9149c709e2460f1c2d9a497496a7f46004d1772c3054c5b336001600160a01b0316600052602052604060002090565b613a1d565b60026020820151613b6081613a07565b613b6981613a07565b149081613ca9575b5015613c985751613bcf575b50505050507f198d6990ef96613a9026203077e422916918b03ff47f0be6bee7b02d8e139ef090613bb361302860019460200190565b604080519283526001600160401b0391909116602083015290a2565b613bf0613222613beb602085969799989a955194015160ff1690565b613a5c565b03613c87578151835103613c7657613c6e6000613bb39461302894613c3a7f198d6990ef96613a9026203077e422916918b03ff47f0be6bee7b02d8e139ef09960019b36916102ca565b60208151910120604051613c6581613c5789602083019586613a80565b03601f1981018352826101e3565b5190208a614d21565b948394613b7d565b63a75d88af60e01b60005260046000fd5b6371253a2560e01b60005260046000fd5b631b41e11d60e31b60005260046000fd5b60016000526002602052613d099150611a4e90613cf690613cf060037fe90b7bceb6e7df5418fb78d8ee546e97c83a08bbccc01a0644d599ccd2a7c2e05b01915160ff1690565b90613a44565b90546001600160a01b039160031b1c1690565b331438613b71565b6324f7d61360e21b600052600452602487905260446000fd5b638e1192e160e01b6000526004523660245260446000fd5b613d6b90613d65613d5b613d568751611ea9565b6139ec565b613d658851611ea9565b906139fa565b613ae7565b60008052600260205294909390929091613da97fac33ff75c19e70fe83507db0d683fd3465c996598dc972688b7ace676c89077b612620565b94863595613db6836139de565b6060820190613dc58251151590565b613f4d575b803603613d2a57508151888103613f345750613de46136a0565b600080526003602052613e19613b4b7f3617319a054d772f909f7c479a2cebe5066e836a939412e32403c99029b92eff613b33565b60026020820151613e2981613a07565b613e3281613a07565b149081613eeb575b5015613c985751613e7d575b5050505050507f198d6990ef96613a9026203077e422916918b03ff47f0be6bee7b02d8e139ef090613bb361302860009460200190565b613e99613222613beb602087989a999b96975194015160ff1690565b03613c87578351865103613c76576000967f198d6990ef96613a9026203077e422916918b03ff47f0be6bee7b02d8e139ef096613bb395613c3a613ee2946130289736916102ca565b94839438613e46565b600080526002602052613f2c9150611a4e90613cf690613cf060037fac33ff75c19e70fe83507db0d683fd3465c996598dc972688b7ace676c89077b613ce7565b331438613e3a565b6324f7d61360e21b600052600452602488905260446000fd5b613f6b90613d65613f61613d568951611ea9565b613d658a51611ea9565b613dca565b60ff166003029060ff8216918203611ebf57565b8151916001600160401b03831161018d5768010000000000000000831161018d576020908254848455808510613fed575b500190600052602060002060005b838110613fd05750505050565b60019060206001600160a01b038551169401938184015501613fc3565b6140049084600052858460002091820191016134e5565b38613fb5565b95949392909160ff61402f93168752602087015260a0604087015260a0860190612659565b84810360608601526020808351928381520192019060005b818110614062575050509060806102139294019060ff169052565b82516001600160a01b0316845260209384019390920191600101614047565b600654811015611d445760066000527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f015490565b6001600160401b0361031c94938160609416835216602082015281604082015201906105da565b60409061031c9392815281602082015201906105da565b9291906001600160401b0390816064951660045216602452600481101561089e57604452565b94939261413360609361414493885260208801906108a3565b6080604087015260808601906105da565b930152565b9061415b82516001600160401b031690565b8151604051632cbc26bb60e01b815267ffffffffffffffff60801b608084901b1660048201529015159391906001600160401b038216906020816024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9081156124d657600091614877575b50614835576020830191825151948515614805576040850180515187036147f4576141fd87611cef565b957f0000000000000000000000000000000000000000000000000000000000000000614233600161422d876139a1565b01611e1a565b6020815191012060405161429381613c576020820194868b876001600160401b036060929594938160808401977f2425b0b9f9054c76ff151b0a175b18f37a4a4e82013a72e9f15c9caa095ed21f85521660208401521660408201520152565b519020906001600160401b031660005b8a811061475c5750505080608060606142c39301519101519088866152ea565b97881561473e5760005b8881106142e05750505050505050505050565b5a6142ec828951611d49565b51805160600151614306906001600160401b031688611ed1565b61430f81610894565b8015908d828315938461472b575b156146e8576060881561466b5750614344602061433a898d611d49565b5101519242611ec4565b6004546143599060a01c63ffffffff16611fff565b108015614658575b1561463a57614370878b611d49565b5151614624575b84516080015161438f906001600160401b03166107e9565b61456c575b506143a0868951611d49565b5160a08501515181510361453057936144059695938c938f966143e58e958c926143df6143d960608951016001600160401b0390511690565b8961531c565b866154c3565b9a9080966143ff60608851016001600160401b0390511690565b906153a4565b6144de575b505061441582610894565b60028203614496575b60019661448c7f05665fe9ad095383d018353f4cbcba77e84db27dd215081bbf7cdf9ae6fbe48b936001600160401b0393519261447d6144748b61446c60608801516001600160401b031690565b96519b611d49565b51985a90611ec4565b9160405195869516988561411a565b0390a45b016142cd565b915091939492506144a682610894565b600382036144ba578b929493918a9161441e565b51606001516349362d1f60e11b600052611c6591906001600160401b0316896140f4565b6144e784610894565b6003840361440a5790929495506144ff919350610894565b61450f578b92918a91388061440a565b5151604051632b11b8d960e01b8152908190612079908790600484016140dd565b611c658b61454a60608851016001600160401b0390511690565b631cfe6d8b60e01b6000526001600160401b0391821660045216602452604490565b61457583610894565b614580575b38614394565b8351608001516001600160401b0316602080860151918c6145b560405194859384936370701e5760e11b8552600485016140b6565b038160006001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af19081156124d657600091614606575b5061457a575050505050600190614490565b61461e915060203d8111612fb757612fa981836101e3565b386145f4565b61462e878b611d49565b51516080860152614377565b6354e7e43160e11b6000526001600160401b038b1660045260246000fd5b5061466283610894565b60038314614361565b91508361467784610894565b15614377575060019594506146e092506146be91507f3ef2a99c550a751d4b0b261268f05a803dfb049ab43616a1ffb388f61fe651209351016001600160401b0390511690565b604080516001600160401b03808c168252909216602083015290918291820190565b0390a1614490565b5050505060019291506146e06146be60607f3b575419319662b2a6f5e2467d84521517a3382b908eb3d557bb3fdb0c50e23c9351016001600160401b0390511690565b5061473583610894565b6003831461431d565b633ee8bd3f60e11b6000526001600160401b03841660045260246000fd5b614767818a51611d49565b518051604001516001600160401b03168381036147d757508051602001516001600160401b03168981036147b45750906147a3846001936151e2565b6147ad828d611d49565b52016142a3565b636c95f1eb60e01b6000526001600160401b03808a166004521660245260446000fd5b631c21951160e11b6000526001600160401b031660045260246000fd5b6357e0e08360e01b60005260046000fd5b611c6561481986516001600160401b031690565b63676cf24b60e11b6000526001600160401b0316600452602490565b5092915050612f73576040516001600160401b039190911681527faab522ed53d887e56ed53dd37398a01aeef6a58e0fa77c2173beb9512d89493390602090a1565b614890915060203d602011612fb757612fa981836101e3565b386141d3565b9081602091031261026b575161031c8161025a565b9061031c916020815260e06149496149346148d4855161010060208701526101208601906105da565b60208601516001600160401b0316604086015260408601516001600160a01b031660608601526060860151608086015261491e608087015160a08701906001600160a01b03169052565b60a0860151858203601f190160c08701526105da565b60c0850151848203601f1901848601526105da565b92015190610100601f19828503019101526105da565b6040906001600160a01b0361031c949316815281602082015201906105da565b9081602091031261026b575190565b9193929361499a612129565b5060208301516001600160a01b031660405163bbe4f6db60e01b81526001600160a01b038216600482015290959092602084806024810103816001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165afa9384156124d657600094614c17575b506001600160a01b0384169586158015614c05575b614be757614acc614af592613c5792614a50614a49611fff60408c015163ffffffff1690565b8c89615604565b9690996080810151614a7e6060835193015193614a6b610224565b9687526001600160401b03166020870152565b6001600160a01b038a16604086015260608501526001600160a01b038d16608085015260a084015260c083015260e0820152604051633907753760e01b6020820152928391602483016148ab565b82857f000000000000000000000000000000000000000000000000000000000000000092615692565b94909115614bcb5750805160208103614bb2575090614b1e826020808a9551830101910161497f565b956001600160a01b03841603614b56575b5050505050614b4e614b3f610234565b6001600160a01b039093168352565b602082015290565b614b6993614b6391611ec4565b91615604565b50908082108015614b9f575b614b8157808481614b2f565b63a966e21f60e01b6000908152600493909352602452604452606490fd5b5082614bab8284611ec4565b1415614b75565b631e3be00960e21b600052602060045260245260446000fd5b612079604051928392634ff17cad60e11b84526004840161495f565b63ae9b4ce960e01b6000526001600160a01b03851660045260246000fd5b50614c126124fb86613990565b614a23565b614c3a91945060203d602011614c41575b614c3281836101e3565b810190614896565b9238614a0e565b503d614c28565b60405160208101916301ffc9a760e01b835263ffffffff60e01b602483015260248252614c766044836101e3565b6179185a10614cb2576020926000925191617530fa6000513d82614ca6575b5081614c9f575090565b9050151590565b60201115915038614c95565b63753fa58960e11b60005260046000fd5b60405160208101916301ffc9a760e01b83526301ffc9a760e01b602483015260248252614c766044836101e3565b6040519060208201926301ffc9a760e01b845263ffffffff60e01b16602483015260248252614c766044836101e3565b919390926000948051946000965b868810614d40575050505050505050565b6020881015611d445760206000614d58878b1a613a6e565b614d628b87611d49565b5190614d99614d718d8a611d49565b5160405193849389859094939260ff6060936080840197845216602083015260408201520152565b838052039060015afa156124d657614ddf613b4b600051614dc78960ff166000526003602052604060002090565b906001600160a01b0316600052602052604060002090565b9060016020830151614df081613a07565b614df981613a07565b03614e4657614e16614e0c835160ff1690565b60ff600191161b90565b8116614e3557614e2c614e0c6001935160ff1690565b17970196614d2f565b633d9ef1f160e21b60005260046000fd5b636518c33d60e11b60005260046000fd5b91909160005b8351811015614eb05760019060ff831660005260036020526000614ea9604082206001600160a01b03614e90858a611d49565b51166001600160a01b0316600052602052604060002090565b5501614e5d565b50509050565b8151815460ff191660ff919091161781559060200151600381101561089e57815461ff00191660089190911b61ff0016179055565b919060005b8151811015614eb057614f06611ba78284611d49565b90614f2f614f2583614dc78860ff166000526003602052604060002090565b5460081c60ff1690565b614f3881613a07565b614fa3576001600160a01b03821615614f9257614f8c600192614f87614f5c610234565b60ff8516815291614f708660208501613a11565b614dc78960ff166000526003602052604060002090565b614eb6565b01614ef0565b63d6c62c9b60e01b60005260046000fd5b631b3fab5160e11b6000526004805260246000fd5b919060005b8151811015614eb057614fd3611ba78284611d49565b90614ff2614f2583614dc78860ff166000526003602052604060002090565b614ffb81613a07565b614fa3576001600160a01b03821615614f9257615034600192614f8761501f610234565b60ff8516815291614f70600260208501613a11565b01614fbd565b60ff1680600052600260205260ff60016040600020015460101c16908015600014615088575015615077576001600160401b0319600b5416600b55565b6317bd8dd160e11b60005260046000fd5b6001146150925750565b61509857565b6307b8c74d60e51b60005260046000fd5b80600052600760205260406000205415600014615127576006546801000000000000000081101561018d57600181016006556000600654821015611d4457600690527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f01819055600654906000526007602052604060002055600190565b50600090565b9080602083519182815201916020808360051b8301019401926000915b83831061515957505050505090565b9091929394602080600192601f198582030186528851906080806151bc615189855160a0865260a08601906105da565b6001600160a01b0387870151168786015263ffffffff6040870151166040860152606086015185820360608701526105da565b9301519101529701930193019193929061514a565b90602061031c92818152019061512d565b6134df815180519061527661520160608601516001600160a01b031690565b613c5761521860608501516001600160401b031690565b936152316080808a01519201516001600160401b031690565b90604051958694602086019889936001600160401b036080946001600160a01b0382959998949960a089019a8952166020880152166040860152606085015216910152565b519020613c576020840151602081519101209360a06040820151602081519101209101516040516152af81613c576020820194856151d1565b51902090604051958694602086019889919260a093969594919660c08401976000855260208501526040840152606083015260808201520152565b926001600160401b03926152fd9261574f565b9116600052600a60205260406000209060005260205260406000205490565b607f8216906801fffffffffffffffe6001600160401b0383169260011b169180830460021490151715611ebf576153a1916001600160401b0361535f858461365c565b921660005260096020526701ffffffffffffff60406000209460071c169160036001831b921b19161792906001600160401b0316600052602052604060002090565b55565b9091607f83166801fffffffffffffffe6001600160401b0382169160011b169080820460021490151715611ebf576153dc848461365c565b600483101561089e576001600160401b036153a19416600052600960205260036701ffffffffffffff60406000209660071c1693831b921b19161792906001600160401b0316600052602052604060002090565b9080602083519182815201916020808360051b8301019401926000915b83831061545c57505050505090565b909192939460208061547a600193601f1986820301875289516105da565b9701930193019193929061544d565b906020808351928381520192019060005b8181106154a75750505090565b825163ffffffff1684526020938401939092019160010161549a565b91606092303b1561026b576155c560a0926155b36000956155a16040519889978897630304c3e160e51b89528260048a01526001600160401b0360808251805160648d01528260208201511660848d01528260408201511660a48d015282868201511660c48d015201511660e48a015261558261556d6155568b61014061010460208701519201526101a48d01906105da565b60408401518c8203606319016101248e01526105da565b938201516001600160a01b03166101448b0152565b60808101516101648a015201518782036063190161018489015261512d565b85810360031901602487015290615430565b83810360031901604485015290615489565b038183305af190816155ef575b506155e4576155df612234565b600391565b60029061031c6105a2565b8061259760006155fe936101e3565b386155d2565b6040516370a0823160e01b60208201526001600160a01b039091166024820152919291615661906156388160448101613c57565b84837f000000000000000000000000000000000000000000000000000000000000000092615692565b92909115614bcb5750805160208103614bb257509061568c8260208061031c9551830101910161497f565b93611ec4565b93919361569f60846102af565b946156ad60405196876101e3565b608486526156bb60846102af565b602087019590601f1901368737833b1561573e575a9080821061572d578291038060061c9003111561571c576000918291825a9560208451940192f1905a9003923d9060848211615713575b6000908287523e929190565b60849150615707565b6337c3be2960e01b60005260046000fd5b632be8ca8b60e21b60005260046000fd5b63030ed58f60e21b60005260046000fd5b80519282519084156158ab576101018511158061589f575b156157ce578185019460001986019561010087116157ce57861561588f5761578e87611cef565b9660009586978795885b8481106157f35750505050506001190180951493846157e9575b5050826157df575b5050156157ce576157ca91611d49565b5190565b6309bde33960e01b60005260046000fd5b14905038806157ba565b14925038806157b2565b6001811b8281160361588157868a101561586c5761581560018b019a85611d49565b51905b8c888c1015615858575061583060018c019b86611d49565b515b818d116157ce57615851828f9261584b906001966158bc565b92611d49565b5201615798565b60018d019c61586691611d49565b51615832565b61587a60018c019b8d611d49565b5190615818565b61587a600189019884611d49565b5050505090506157ca9150611d37565b50610101821115615767565b630469ac9960e21b60005260046000fd5b818110156158ce579061031c916158d3565b61031c915b906040519060208201926001845260408301526060820152606081526134df6080826101e356fea164736f6c634300081a000a49f51971edd25182e97182d6ea372a0488ce2ab639f6a3a7ab4df0d2636fe56b", + Bin: "0x610140806040523461084857616351803803809161001d828561087e565b833981019080820361014081126108485760a08112610848576040519060a082016001600160401b0381118382101761084d5760405261005c836108a1565b825260208301519261ffff84168403610848576020830193845260408101516001600160a01b0381168103610848576040840190815261009e606083016108b5565b946060850195865260806100b38185016108b5565b86820190815294609f19011261084857604051946100d086610863565b6100dc60a085016108b5565b865260c08401519463ffffffff86168603610848576020870195865261010460e086016108c9565b976040880198895261011961010087016108b5565b6060890190815261012087015190966001600160401b03821161084857018a601f820112156108485780519a6001600160401b038c1161084d578b60051b916020806040519e8f9061016d8388018361087e565b81520193820101908282116108485760208101935b828510610748575050505050331561073757600180546001600160a01b031916331790554660805284516001600160a01b0316158015610725575b8015610713575b6106f15782516001600160401b0316156107025782516001600160401b0390811660a090815286516001600160a01b0390811660c0528351811660e0528451811661010052865161ffff90811661012052604080519751909416875296519096166020860152955185169084015251831660608301525190911660808201527fb0fa1fb01508c5097c502ad056fd77018870c9be9a86d9e56b6b471862d7c5b79190a182516001600160a01b0316156106f1579151600480548351865160ff60c01b90151560c01b1663ffffffff60a01b60a09290921b919091166001600160a01b039485166001600160c81b0319909316831717179091558351600580549184166001600160a01b031990921691909117905560408051918252925163ffffffff166020820152935115159184019190915290511660608201527fcbb53bda7106a610de67df506ac86b65c44d5afac0fd2b11070dc2d61a6f2dee90608090a160005b815181101561066b576020600582901b8301810151908101516001600160401b031690600090821561065c5780516001600160a01b03161561064d57828252600860205260408220906060810151600183019361038585546108d6565b6105ee578354600160a81b600160e81b031916600160a81b1784556040518681527ff4c1390c70e5c0f491ae1ccbc06f9117cbbadf2767b247b3bc203280f24c0fb990602090a15b815180159081156105c3575b506105b4578151916001600160401b0383116105a0576103f986546108d6565b601f811161055b575b50602091601f84116001146104e257926001989796949281926000805160206163318339815191529795926104d7575b5050600019600383901b1c191690881b1783555b60408101518254915160a089811b8a9003801960ff60a01b1990951693151590911b60ff60a01b169290921792909216911617815561048484610993565b506104ce6040519283926020845254888060a01b038116602085015260ff8160a01c1615156040850152888060401b039060a81c16606084015260808084015260a0830190610910565b0390a201610328565b015190503880610432565b9190601f198416878452828420935b8181106105435750926001999897959392859260008051602061633183398151915298968c951061052a575b505050811b018355610446565b015160001960f88460031b161c1916905538808061051d565b929360206001819287860151815501950193016104f1565b86835260208320601f850160051c81019160208610610596575b601f0160051c01905b81811061058b5750610402565b83815560010161057e565b9091508190610575565b634e487b7160e01b82526041600452602482fd5b6342bcdf7f60e11b8152600490fd5b905060208301206040516020810190838252602081526105e460408261087e565b51902014386103d9565b835460a81c6001600160401b0316600114158061061f575b156103cd57632105803760e11b81526004869052602490fd5b50604051610638816106318189610910565b038261087e565b60208151910120825160208401201415610606565b6342bcdf7f60e11b8252600482fd5b63c656089560e01b8252600482fd5b60405161590a9081610a278239608051816136a4015260a0518181816104700152614203015260c0518181816104c601528181612cd201528181613126015261419d015260e0518181816104f501526149e001526101005181818161052401526145c60152610120518181816104970152818161244c01528181614ad3015261563f0152f35b6342bcdf7f60e11b60005260046000fd5b63c656089560e01b60005260046000fd5b5081516001600160a01b0316156101c4565b5080516001600160a01b0316156101bd565b639b15e16f60e01b60005260046000fd5b84516001600160401b0381116108485782016080818603601f190112610848576040519061077582610863565b60208101516001600160a01b0381168103610848578252610798604082016108a1565b60208301526107a9606082016108c9565b604083015260808101516001600160401b03811161084857602091010185601f820112156108485780516001600160401b03811161084d57604051916107f9601f8301601f19166020018461087e565b81835287602083830101116108485760005b8281106108335750509181600060208096949581960101526060820152815201940193610182565b8060208092840101518282870101520161080b565b600080fd5b634e487b7160e01b600052604160045260246000fd5b608081019081106001600160401b0382111761084d57604052565b601f909101601f19168101906001600160401b0382119082101761084d57604052565b51906001600160401b038216820361084857565b51906001600160a01b038216820361084857565b5190811515820361084857565b90600182811c92168015610906575b60208310146108f057565b634e487b7160e01b600052602260045260246000fd5b91607f16916108e5565b60009291815491610920836108d6565b8083529260018116908115610976575060011461093c57505050565b60009081526020812093945091925b83831061095c575060209250010190565b60018160209294939454838587010152019101919061094b565b915050602093945060ff929192191683830152151560051b010190565b80600052600760205260406000205415600014610a20576006546801000000000000000081101561084d576001810180600655811015610a0a577ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f0181905560065460009182526007602052604090912055600190565b634e487b7160e01b600052603260045260246000fd5b5060009056fe6080604052600436101561001257600080fd5b60003560e01c806304666f9c1461015757806306285c6914610152578063181f5a771461014d5780633f4b04aa146101485780635215505b146101435780635e36480c1461013e5780635e7bb0081461013957806360987c20146101345780637437ff9f1461012f57806379ba50971461012a5780637edf52f41461012557806385572ffb146101205780638da5cb5b1461011b578063c673e58414610116578063ccd37ba314610111578063de5e0b9a1461010c578063e9d68a8e14610107578063f2fde38b14610102578063f58e03fc146100fd5763f716f99f146100f857600080fd5b6118b6565b611799565b61170e565b611673565b6115d7565b611553565b6114a8565b6113c0565b61138a565b6111c4565b611144565b61109b565b611020565b610e1b565b6108b0565b61076b565b61065e565b6105ff565b61043d565b61031f565b634e487b7160e01b600052604160045260246000fd5b608081019081106001600160401b0382111761018d57604052565b61015c565b60a081019081106001600160401b0382111761018d57604052565b604081019081106001600160401b0382111761018d57604052565b606081019081106001600160401b0382111761018d57604052565b90601f801991011681019081106001600160401b0382111761018d57604052565b6040519061021360c0836101e3565b565b6040519061021360a0836101e3565b60405190610213610100836101e3565b604051906102136040836101e3565b6001600160401b03811161018d5760051b60200190565b6001600160a01b0381160361026b57565b600080fd5b600435906001600160401b038216820361026b57565b35906001600160401b038216820361026b57565b8015150361026b57565b35906102138261029a565b6001600160401b03811161018d57601f01601f191660200190565b9291926102d6826102af565b916102e460405193846101e3565b82948184528183011161026b578281602093846000960137010152565b9080601f8301121561026b5781602061031c933591016102ca565b90565b3461026b57602036600319011261026b576004356001600160401b03811161026b573660238201121561026b5780600401359061035b82610243565b9061036960405192836101e3565b8282526024602083019360051b8201019036821161026b5760248101935b82851061039957610397846119f1565b005b84356001600160401b03811161026b5782016080602319823603011261026b57604051916103c683610172565b60248201356103d48161025a565b83526103e260448301610286565b602084015260648201356103f58161029a565b60408401526084820135926001600160401b03841161026b57610422602094936024869536920101610301565b6060820152815201940193610387565b600091031261026b57565b3461026b57600036600319011261026b57610456611c9d565b5061059e60405161046681610192565b6001600160401b037f000000000000000000000000000000000000000000000000000000000000000016815261ffff7f00000000000000000000000000000000000000000000000000000000000000001660208201526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001660408201526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001660608201526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001660808201526040519182918291909160806001600160a01b038160a08401956001600160401b03815116855261ffff6020820151166020860152826040820151166040860152826060820151166060860152015116910152565b0390f35b604051906105b16020836101e3565b60008252565b60005b8381106105ca5750506000910152565b81810151838201526020016105ba565b906020916105f3815180928185528580860191016105b7565b601f01601f1916010190565b3461026b57600036600319011261026b5761059e604080519061062281836101e3565b601182527f4f666652616d7020312e362e302d6465760000000000000000000000000000006020830152519182916020835260208301906105da565b3461026b57600036600319011261026b5760206001600160401b03600b5416604051908152f35b906080606061031c936001600160a01b0381511684526020810151151560208501526001600160401b03604082015116604085015201519181606082015201906105da565b6040810160408252825180915260206060830193019060005b81811061074c575050506020818303910152815180825260208201916020808360051b8301019401926000915b83831061071f57505050505090565b909192939460208061073d600193601f198682030187528951610685565b97019301930191939290610710565b82516001600160401b03168552602094850194909201916001016106e3565b3461026b57600036600319011261026b5760065461078881610243565b9061079660405192836101e3565b808252601f196107a582610243565b0160005b8181106108675750506107bb81611cef565b9060005b8181106107d757505061059e604051928392836106ca565b8061080d6107f56107e9600194614084565b6001600160401b031690565b6107ff8387611d49565b906001600160401b03169052565b61084b61084661082d6108208488611d49565b516001600160401b031690565b6001600160401b03166000526008602052604060002090565b611e35565b6108558287611d49565b526108608186611d49565b50016107bf565b602090610872611cc8565b828287010152016107a9565b634e487b7160e01b600052602160045260246000fd5b6004111561089e57565b61087e565b90600482101561089e5752565b3461026b57604036600319011261026b576108c9610270565b602435906001600160401b038216820361026b576020916108e991611ed1565b6108f660405180926108a3565bf35b91908260a091031261026b5760405161091081610192565b60806109558183958035855261092860208201610286565b602086015261093960408201610286565b604086015261094a60608201610286565b606086015201610286565b910152565b35906102138261025a565b63ffffffff81160361026b57565b359061021382610965565b81601f8201121561026b5780359061099582610243565b926109a360405194856101e3565b82845260208085019360051b8301019181831161026b5760208101935b8385106109cf57505050505090565b84356001600160401b03811161026b57820160a0818503601f19011261026b57604051916109fc83610192565b60208201356001600160401b03811161026b57856020610a1e92850101610301565b83526040820135610a2e8161025a565b6020840152610a3f60608301610973565b60408401526080820135926001600160401b03841161026b5760a083610a6c886020809881980101610301565b6060840152013560808201528152019401936109c0565b9190916101408184031261026b57610a99610204565b92610aa481836108f8565b845260a08201356001600160401b03811161026b5781610ac5918401610301565b602085015260c08201356001600160401b03811161026b5781610ae9918401610301565b6040850152610afa60e0830161095a565b606085015261010082013560808501526101208201356001600160401b03811161026b57610b28920161097e565b60a0830152565b9080601f8301121561026b578135610b4681610243565b92610b5460405194856101e3565b81845260208085019260051b8201019183831161026b5760208201905b838210610b8057505050505090565b81356001600160401b03811161026b57602091610ba287848094880101610a83565b815201910190610b71565b81601f8201121561026b57803590610bc482610243565b92610bd260405194856101e3565b82845260208085019360051b8301019181831161026b5760208101935b838510610bfe57505050505090565b84356001600160401b03811161026b57820183603f8201121561026b576020810135610c2981610243565b91610c3760405193846101e3565b8183526020808085019360051b830101019186831161026b5760408201905b838210610c70575050509082525060209485019401610bef565b81356001600160401b03811161026b57602091610c948a8480809589010101610301565b815201910190610c56565b929190610cab81610243565b93610cb960405195866101e3565b602085838152019160051b810192831161026b57905b828210610cdb57505050565b8135815260209182019101610ccf565b9080601f8301121561026b5781602061031c93359101610c9f565b81601f8201121561026b57803590610d1d82610243565b92610d2b60405194856101e3565b82845260208085019360051b8301019181831161026b5760208101935b838510610d5757505050505090565b84356001600160401b03811161026b57820160a0818503601f19011261026b57610d7f610215565b91610d8c60208301610286565b835260408201356001600160401b03811161026b57856020610db092850101610b2f565b602084015260608201356001600160401b03811161026b57856020610dd792850101610bad565b60408401526080820135926001600160401b03841161026b5760a083610e04886020809881980101610ceb565b606084015201356080820152815201940193610d48565b3461026b57604036600319011261026b576004356001600160401b03811161026b57610e4b903690600401610d06565b6024356001600160401b03811161026b573660238201121561026b57806004013591610e7683610243565b91610e8460405193846101e3565b8383526024602084019460051b8201019036821161026b5760248101945b828610610eb3576103978585611f19565b85356001600160401b03811161026b5782013660438201121561026b576024810135610ede81610243565b91610eec60405193846101e3565b818352602060248185019360051b830101019036821161026b5760448101925b828410610f26575050509082525060209586019501610ea2565b83356001600160401b03811161026b576024908301016040601f19823603011261026b5760405190610f57826101ad565b6020810135825260408101356001600160401b03811161026b57602091010136601f8201121561026b57803590610f8d82610243565b91610f9b60405193846101e3565b80835260208084019160051b8301019136831161026b57602001905b828210610fd65750505091816020938480940152815201930192610f0c565b602080918335610fe581610965565b815201910190610fb7565b9181601f8401121561026b578235916001600160401b03831161026b576020808501948460051b01011161026b57565b3461026b57606036600319011261026b576004356001600160401b03811161026b57611050903690600401610a83565b6024356001600160401b03811161026b5761106f903690600401610ff0565b91604435926001600160401b03841161026b57611093610397943690600401610ff0565b939092612325565b3461026b57600036600319011261026b576110b46125fd565b5061059e6040516110c481610172565b60ff6004546001600160a01b038116835263ffffffff8160a01c16602084015260c01c16151560408201526001600160a01b036005541660608201526040519182918291909160606001600160a01b0381608084019582815116855263ffffffff6020820151166020860152604081015115156040860152015116910152565b3461026b57600036600319011261026b576000546001600160a01b03811633036111b3576001600160a01b0319600154913382841617600155166000556001600160a01b033391167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a3005b63015aa1e360e11b60005260046000fd5b3461026b57608036600319011261026b5760006040516111e381610172565b6004356111ef8161025a565b81526024356111fd81610965565b602082015260443561120e8161029a565b604082015260643561121f8161025a565b606082015261122c6134a1565b6001600160a01b038151161561137b576113758161128b6001600160a01b037fcbb53bda7106a610de67df506ac86b65c44d5afac0fd2b11070dc2d61a6f2dee9451166001600160a01b03166001600160a01b03196004541617600455565b60208101516004547fffffffffffffff0000000000ffffffffffffffffffffffffffffffffffffffff77ffffffff000000000000000000000000000000000000000078ff0000000000000000000000000000000000000000000000006040860151151560c01b169360a01b169116171760045561133161131560608301516001600160a01b031690565b6001600160a01b03166001600160a01b03196005541617600555565b6040519182918291909160606001600160a01b0381608084019582815116855263ffffffff6020820151166020860152604081015115156040860152015116910152565b0390a180f35b6342bcdf7f60e11b8252600482fd5b3461026b57602036600319011261026b576004356001600160401b03811161026b5760a090600319903603011261026b57600080fd5b3461026b57600036600319011261026b5760206001600160a01b0360015416604051908152f35b6004359060ff8216820361026b57565b359060ff8216820361026b57565b906020808351928381520192019060005b8181106114235750505090565b82516001600160a01b0316845260209384019390920191600101611416565b9061031c9160208152606082518051602084015260ff602082015116604084015260ff604082015116828401520151151560808201526040611493602084015160c060a085015260e0840190611405565b9201519060c0601f1982850301910152611405565b3461026b57602036600319011261026b5760ff6114c36113e7565b6060604080516114d2816101c8565b6114da6125fd565b8152826020820152015216600052600260205261059e6040600020600361154260405192611507846101c8565b61151081612622565b845260405161152d81611526816002860161265b565b03826101e3565b6020850152611526604051809481930161265b565b604082015260405191829182611442565b3461026b57604036600319011261026b5761156c610270565b6001600160401b036024359116600052600a6020526040600020906000526020526020604060002054604051908152f35b9060049160441161026b57565b9181601f8401121561026b578235916001600160401b03831161026b576020838186019501011161026b57565b3461026b5760c036600319011261026b576115f13661159d565b6044356001600160401b03811161026b576116109036906004016115aa565b6064929192356001600160401b03811161026b57611632903690600401610ff0565b60843594916001600160401b03861161026b57611656610397963690600401610ff0565b94909360a43596612c8d565b90602061031c928181520190610685565b3461026b57602036600319011261026b576001600160401b03611694610270565b61169c611cc8565b5016600052600860205261059e604060002060016116fd604051926116c084610172565b6001600160401b0381546001600160a01b038116865260ff8160a01c161515602087015260a81c1660408501526115266040518094819301611d97565b606082015260405191829182611662565b3461026b57602036600319011261026b576001600160a01b036004356117338161025a565b61173b6134a1565b1633811461178857806001600160a01b031960005416176000556001600160a01b03600154167fed8889f560326eb138920d842192f0eb3dd22b4f139c87a2c57538e05bae1278600080a3005b636d6c4ee560e11b60005260046000fd5b3461026b57606036600319011261026b576117b33661159d565b6044356001600160401b03811161026b576117d29036906004016115aa565b9182820160208382031261026b578235906001600160401b03821161026b576117fc918401610d06565b60405190602061180c81846101e3565b60008352601f19810160005b818110611840575050506103979491611830916136e5565b61183861319c565b928392613a95565b60608582018401528201611818565b9080601f8301121561026b57813561186681610243565b9261187460405194856101e3565b81845260208085019260051b82010192831161026b57602001905b82821061189c5750505090565b6020809183356118ab8161025a565b81520191019061188f565b3461026b57602036600319011261026b576004356001600160401b03811161026b573660238201121561026b578060040135906118f282610243565b9061190060405192836101e3565b8282526024602083019360051b8201019036821161026b5760248101935b82851061192e57610397846131b8565b84356001600160401b03811161026b57820160c0602319823603011261026b57611956610204565b916024820135835261196a604483016113f7565b602084015261197b606483016113f7565b604084015261198c608483016102a4565b606084015260a48201356001600160401b03811161026b576119b4906024369185010161184f565b608084015260c4820135926001600160401b03841161026b576119e160209493602486953692010161184f565b60a082015281520194019361191e565b6119f96134a1565b60005b8151811015611c9957611a0f8183611d49565b5190611a2560208301516001600160401b031690565b916001600160401b038316908115611c8857611a5a611a4e611a4e83516001600160a01b031690565b6001600160a01b031690565b15611bef57611a7c846001600160401b03166000526008602052604060002090565b906060810151916001810195611a928754611d5d565b611c1657611b057ff4c1390c70e5c0f491ae1ccbc06f9117cbbadf2767b247b3bc203280f24c0fb991611aeb84750100000000000000000000000000000000000000000067ffffffffffffffff60a81b19825416179055565b6040516001600160401b0390911681529081906020820190565b0390a15b82518015908115611c00575b50611bef57611bd0611bb4611be693611b517f49f51971edd25182e97182d6ea372a0488ce2ab639f6a3a7ab4df0d2636fe56b9660019a613543565b611ba7611b616040830151151590565b85547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff1690151560a01b74ff000000000000000000000000000000000000000016178555565b516001600160a01b031690565b82906001600160a01b03166001600160a01b0319825416179055565b611bd9846150ac565b5060405191829182613614565b0390a2016119fc565b6342bcdf7f60e11b60005260046000fd5b90506020840120611c0f6134c6565b1438611b15565b60016001600160401b03611c3584546001600160401b039060a81c1690565b16141580611c69575b611c485750611b09565b632105803760e11b6000526001600160401b031660045260246000fd5b6000fd5b50611c7387611e1a565b60208151910120845160208601201415611c3e565b63c656089560e01b60005260046000fd5b5050565b60405190611caa82610192565b60006080838281528260208201528260408201528260608201520152565b60405190611cd582610172565b606080836000815260006020820152600060408201520152565b90611cf982610243565b611d0660405191826101e3565b8281528092611d17601f1991610243565b0190602036910137565b634e487b7160e01b600052603260045260246000fd5b805115611d445760200190565b611d21565b8051821015611d445760209160051b010190565b90600182811c92168015611d8d575b6020831014611d7757565b634e487b7160e01b600052602260045260246000fd5b91607f1691611d6c565b60009291815491611da783611d5d565b8083529260018116908115611dfd5750600114611dc357505050565b60009081526020812093945091925b838310611de3575060209250010190565b600181602092949394548385870101520191019190611dd2565b915050602093945060ff929192191683830152151560051b010190565b90610213611e2e9260405193848092611d97565b03836101e3565b9060016060604051611e4681610172565b611e8f81956001600160401b0381546001600160a01b038116855260ff8160a01c161515602086015260a81c166040840152611e886040518096819301611d97565b03846101e3565b0152565b634e487b7160e01b600052601160045260246000fd5b908160051b9180830460201490151715611ebf57565b611e93565b91908203918211611ebf57565b611edd82607f9261365e565b9116906801fffffffffffffffe6001600160401b0383169260011b169180830460021490151715611ebf576003911c16600481101561089e5790565b611f216136a2565b8051825181036121185760005b818110611f4157505090610213916136e5565b611f4b8184611d49565b516020810190815151611f5e8488611d49565b5192835182036121185790916000925b808410611f82575050505050600101611f2e565b91949398611f94848b98939598611d49565b515198611fa2888851611d49565b5199806120cf575b5060a08a01988b6020611fc08b8d515193611d49565b51015151036120925760005b8a515181101561207d57612008611fff611ff58f6020611fed8f8793611d49565b510151611d49565b5163ffffffff1690565b63ffffffff1690565b8b81612019575b5050600101611fcc565b611fff604061202c856120389451611d49565b51015163ffffffff1690565b9081811061204757508b61200f565b8d51516040516348e617b360e01b81526004810191909152602481019390935260448301919091526064820152608490fd5b0390fd5b50985098509893949095600101929091611f6e565b611c658b516120ad606082519201516001600160401b031690565b6370a193fd60e01b6000526004919091526001600160401b0316602452604490565b60808b0151811015611faa57611c65908b6120f188516001600160401b031690565b905151633a98d46360e11b6000526001600160401b03909116600452602452604452606490565b6320f8fd5960e21b60005260046000fd5b60405190612136826101ad565b60006020838281520152565b604051906121516020836101e3565b600080835282815b82811061216557505050565b602090612170612129565b82828501015201612159565b805182526001600160401b03602082015116602083015260806121c36121b1604084015160a0604087015260a08601906105da565b606084015185820360608701526105da565b9101519160808183039101526020808351928381520192019060005b8181106121ec5750505090565b825180516001600160a01b0316855260209081015181860152604090940193909201916001016121df565b90602061031c92818152019061217c565b6040513d6000823e3d90fd5b3d1561225f573d90612245826102af565b9161225360405193846101e3565b82523d6000602084013e565b606090565b90602061031c9281815201906105da565b909160608284031261026b57815161228c8161029a565b9260208301516001600160401b03811161026b5783019080601f8301121561026b578151916122ba836102af565b916122c860405193846101e3565b8383526020848301011161026b576040926122e991602080850191016105b7565b92015190565b9293606092959461ffff6123136001600160a01b039460808852608088019061217c565b97166020860152604085015216910152565b93919290933033036125ec5761233a90613798565b92612343612142565b9460a085015180516125a5575b505050505080519161236e602084519401516001600160401b031690565b90602083015191604084019261239b845192612388610215565b9788526001600160401b03166020880152565b6040860152606085015260808401526001600160a01b036123c46005546001600160a01b031690565b1680612528575b505151158061251c575b8015612506575b80156124dd575b611c9957612475918161241a611a4e61240d61082d602060009751016001600160401b0390511690565b546001600160a01b031690565b9083612435606060808401519301516001600160a01b031690565b604051633cf9798360e01b815296879586948593917f000000000000000000000000000000000000000000000000000000000000000090600486016122ef565b03925af19081156124d8576000906000926124b1575b50156124945750565b6040516302a35ba360e21b81529081906120799060048301612264565b90506124d091503d806000833e6124c881836101e3565b810190612275565b50903861248b565b612228565b506125016124fd6124f860608401516001600160a01b031690565b613956565b1590565b6123e3565b5060608101516001600160a01b03163b156123dc565b506080810151156123d5565b803b1561026b57600060405180926308d450a160e01b82528183816125508a60048301612217565b03925af1908161258a575b506125845761207961256b612234565b6040516309c2532560e01b815291829160048301612264565b386123cb565b80612599600061259f936101e3565b80610432565b3861255b565b85965060206125e19601516125c460608901516001600160a01b031690565b906125db60208a51016001600160401b0390511690565b9261383d565b903880808080612350565b6306e34e6560e31b60005260046000fd5b6040519061260a82610172565b60006060838281528260208201528260408201520152565b9060405161262f81610172565b606060ff600183958054855201548181166020850152818160081c16604085015260101c161515910152565b906020825491828152019160005260206000209060005b81811061267f5750505090565b82546001600160a01b0316845260209093019260019283019201612672565b90610213611e2e926040519384809261265b565b35906001600160e01b038216820361026b57565b81601f8201121561026b578035906126dd82610243565b926126eb60405194856101e3565b82845260208085019360061b8301019181831161026b57602001925b828410612715575050505090565b60408483031261026b576020604091825161272f816101ad565b61273887610286565b81526127458388016126b2565b83820152815201930192612707565b81601f8201121561026b5780359061276b82610243565b9261277960405194856101e3565b82845260208085019360051b8301019181831161026b5760208101935b8385106127a557505050505090565b84356001600160401b03811161026b57820160a0818503601f19011261026b57604051916127d283610192565b6127de60208301610286565b83526040820135926001600160401b03841161026b5760a083612808886020809881980101610301565b8584015261281860608201610286565b604084015261282960808201610286565b606084015201356080820152815201940193612796565b81601f8201121561026b5780359061285782610243565b9261286560405194856101e3565b82845260208085019360061b8301019181831161026b57602001925b82841061288f575050505090565b60408483031261026b57602060409182516128a9816101ad565b863581528287013583820152815201930192612881565b60208183031261026b578035906001600160401b03821161026b570160608183031261026b57604051916128f3836101c8565b81356001600160401b03811161026b57820160408183031261026b576040519061291c826101ad565b80356001600160401b03811161026b57810183601f8201121561026b57803561294481610243565b9161295260405193846101e3565b81835260208084019260061b8201019086821161026b57602001915b8183106129ea5750505082526020810135906001600160401b03821161026b5761299a918491016126c6565b6020820152835260208201356001600160401b03811161026b57816129c0918401612754565b602084015260408201356001600160401b03811161026b576129e29201612840565b604082015290565b60408388031261026b5760206040918251612a04816101ad565b8535612a0f8161025a565b8152612a1c8387016126b2565b8382015281520192019161296e565b9080602083519182815201916020808360051b8301019401926000915b838310612a5757505050505090565b9091929394602080600192601f198582030186528851906001600160401b038251168152608080612a958585015160a08786015260a08501906105da565b936001600160401b0360408201511660408501526001600160401b036060820151166060850152015191015297019301930191939290612a48565b916001600160a01b03612af192168352606060208401526060830190612a2b565b9060408183039101526020808351928381520192019060005b818110612b175750505090565b8251805185526020908101518186015260409094019390920191600101612b0a565b906020808351928381520192019060005b818110612b575750505090565b825180516001600160401b031685526020908101516001600160e01b03168186015260409094019390920191600101612b4a565b9190604081019083519160408252825180915260206060830193019060005b818110612bcb57505050602061031c93940151906020818403910152612b39565b825180516001600160a01b031686526020908101516001600160e01b03168187015260409095019490920191600101612baa565b90602061031c928181520190612b8b565b9081602091031261026b575161031c8161029a565b9091612c3c61031c936040845260408401906105da565b916020818403910152611d97565b6001600160401b036001911601906001600160401b038211611ebf57565b9091612c7f61031c93604084526040840190612a2b565b916020818403910152612b8b565b929693959190979497612ca2828201826128c0565b98612cb66124fd60045460ff9060c01c1690565b61310a575b895180515115908115916130fb575b50613022575b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316999860208a019860005b8a518051821015612fc05781612d1991611d49565b518d612d2c82516001600160401b031690565b604051632cbc26bb60e01b815267ffffffffffffffff60801b608083901b1660048201529091602090829060249082905afa9081156124d857600091612f92575b50612f7557612d7b906139a4565b60208201805160208151910120906001830191612d9783611e1a565b6020815191012003612f58575050805460408301516001600160401b039081169160a81c168114801590612f30575b612ede57506080820151908115612ecd57612e1782612e08612def86516001600160401b031690565b6001600160401b0316600052600a602052604060002090565b90600052602052604060002090565b54612e99578291612e7d612e9292612e44612e3f60606001999801516001600160401b031690565b612c4a565b67ffffffffffffffff60a81b197cffffffffffffffff00000000000000000000000000000000000000000083549260a81b169116179055565b612e08612def4294516001600160401b031690565b5501612d04565b50612eae611c6592516001600160401b031690565b6332cf0cbf60e01b6000526001600160401b0316600452602452604490565b63504570e360e01b60005260046000fd5b82611c6591612f086060612ef984516001600160401b031690565b9301516001600160401b031690565b636af0786b60e11b6000526001600160401b0392831660045290821660245216604452606490565b50612f486107e960608501516001600160401b031690565b6001600160401b03821611612dc6565b5161207960405192839263b80d8fa960e01b845260048401612c25565b637edeb53960e11b6000526001600160401b031660045260246000fd5b612fb3915060203d8111612fb9575b612fab81836101e3565b810190612c10565b38612d6d565b503d612fa1565b505061301c9496989b507f35c02761bcd3ef995c6a601a1981f4ed3934dcbe5041e24e286c89f5531d17e46102139b613014949597999b5190519061300a60405192839283612c68565b0390a13691610c9f565b943691610c9f565b93613d73565b613037602086015b356001600160401b031690565b600b546001600160401b03828116911610156130df5761306d906001600160401b03166001600160401b0319600b541617600b55565b613085611a4e611a4e6004546001600160a01b031690565b8a5190803b1561026b57604051633937306f60e01b81529160009183918290849082906130b59060048301612bff565b03925af180156124d8576130ca575b50612cd0565b8061259960006130d9936101e3565b386130c4565b5060208a015151612cd057632261116760e01b60005260046000fd5b60209150015151151538612cca565b60208a0151805161311c575b50612cbb565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169060408c0151823b1561026b57604051633854844f60e11b815292600092849283918291613178913060048501612ad0565b03915afa80156124d8571561311657806125996000613196936101e3565b38613116565b604051906131ab6020836101e3565b6000808352366020840137565b6131c06134a1565b60005b8151811015611c99576131d68183611d49565b51906040820160ff6131e9825160ff1690565b161561348b57602083015160ff169261320f8460ff166000526002602052604060002090565b916001830191825461322a6132248260ff1690565b60ff1690565b613450575061325761323f6060830151151590565b845462ff0000191690151560101b62ff000016178455565b60a081019182516101008151116133f85780511561343a576003860161328561327f8261269e565b8a614e5a565b6060840151613315575b947fab8b1b57514019638d7b5ce9c638fe71366fe8e2be1c40a7a80f1733d0e9f547946002946132f16132e161330f9a966132da8760019f9c6132d56133079a8f614fbb565b613f87565b5160ff1690565b845460ff191660ff821617909455565b519081855551906040519586950190888661400d565b0390a161503d565b016131c3565b9794600287939597019661333161332b8961269e565b88614e5a565b6080850151946101008651116134245785516133596132246133548a5160ff1690565b613f73565b101561340e5785518451116133f8576132f16132e17fab8b1b57514019638d7b5ce9c638fe71366fe8e2be1c40a7a80f1733d0e9f547986132da8760019f6132d561330f9f9a8f6133e060029f6133da6133079f8f906132d584926133bf845160ff1690565b908054909161ff001990911660089190911b61ff0016179055565b82614eee565b505050979c9f50975050969a5050509450945061328f565b631b3fab5160e11b600052600160045260246000fd5b631b3fab5160e11b600052600360045260246000fd5b631b3fab5160e11b600052600260045260246000fd5b631b3fab5160e11b600052600560045260246000fd5b60101c60ff1661346b6134666060840151151590565b151590565b90151514613257576321fd80df60e21b60005260ff861660045260246000fd5b631b3fab5160e11b600090815260045260246000fd5b6001600160a01b036001541633036134b557565b6315ae3a6f60e11b60005260046000fd5b604051602081019060008252602081526134e16040826101e3565b51902090565b8181106134f2575050565b600081556001016134e7565b9190601f811161350d57505050565b610213926000526020600020906020601f840160051c83019310613539575b601f0160051c01906134e7565b909150819061352c565b91909182516001600160401b03811161018d5761356a816135648454611d5d565b846134fe565b6020601f82116001146135ab57819061359c9394956000926135a0575b50508160011b916000199060031b1c19161790565b9055565b015190503880613587565b601f198216906135c084600052602060002090565b9160005b8181106135fc575095836001959697106135e3575b505050811b019055565b015160001960f88460031b161c191690553880806135d9565b9192602060018192868b0151815501940192016135c4565b90600160a061031c93602081526001600160401b0384546001600160a01b038116602084015260ff81851c161515604084015260a81c166060820152608080820152019101611d97565b906001600160401b0361369e921660005260096020526701ffffffffffffff60406000209160071c166001600160401b0316600052602052604060002090565b5490565b7f00000000000000000000000000000000000000000000000000000000000000004681036136cd5750565b630f01ce8560e01b6000526004524660245260446000fd5b91909180511561378757825115926020916040519261370481856101e3565b60008452601f19810160005b8181106137635750505060005b815181101561375b578061374461373660019385611d49565b51881561374a57869061414c565b0161371d565b6137548387611d49565b519061414c565b505050509050565b8290604051613771816101ad565b6000815260608382015282828901015201613710565b63c2e5347d60e01b60005260046000fd5b60405160c081018181106001600160401b0382111761018d5760609160a0916040526137c2611c9d565b815282602082015282604082015260008382015260006080820152015290565b9190811015611d445760051b0190565b3561031c81610965565b9190811015611d445760051b81013590601e198136030182121561026b5701908135916001600160401b03831161026b57602001823603811361026b579190565b9092949193979681519661385088610243565b9761385e604051998a6101e3565b80895261386d601f1991610243565b0160005b81811061393f57505060005b835181101561393257806138c48c8a8a8a6138be6138b7878d6138b0828f8f9d8f9e60019f816138e0575b505050611d49565b51976137fc565b36916102ca565b93614991565b6138ce828c611d49565b526138d9818b611d49565b500161387d565b63ffffffff6138f86138f38585856137e2565b6137f2565b16156138a8576139289261390f926138f3926137e2565b604061391b8585611d49565b51019063ffffffff169052565b8f8f9083916138a8565b5096985050505050505050565b60209061394a612129565b82828d01015201613871565b6139676385572ffb60e01b82614cf4565b9081613981575b81613977575090565b61031c9150614cc6565b905061398c81614c4b565b159061396e565b61396763aff2afbf60e01b82614cf4565b6001600160401b031680600052600860205260406000209060ff825460a01c16156139cd575090565b63ed053c5960e01b60005260045260246000fd5b6084019081608411611ebf57565b60a001908160a011611ebf57565b91908201809211611ebf57565b6003111561089e57565b600382101561089e5752565b90610213604051613a30816101ad565b602060ff829554818116845260081c169101613a14565b8054821015611d445760005260206000200190600090565b60ff60019116019060ff8211611ebf57565b60ff601b9116019060ff8211611ebf57565b90606092604091835260208301370190565b6001600052600260205293613ac97fe90b7bceb6e7df5418fb78d8ee546e97c83a08bbccc01a0644d599ccd2a7c2e0612622565b93853594613ad6856139e1565b6060820190613ae58251151590565b613d45575b803603613d2d57508151878103613d145750613b046136a2565b60016000526003602052613b53613b4e7fa15bc60c955c405d20d9149c709e2460f1c2d9a497496a7f46004d1772c3054c5b336001600160a01b0316600052602052604060002090565b613a20565b60026020820151613b6381613a0a565b613b6c81613a0a565b149081613cac575b5015613c9b5751613bd2575b50505050507f198d6990ef96613a9026203077e422916918b03ff47f0be6bee7b02d8e139ef090613bb661302a60019460200190565b604080519283526001600160401b0391909116602083015290a2565b613bf3613224613bee602085969799989a955194015160ff1690565b613a5f565b03613c8a578151835103613c7957613c716000613bb69461302a94613c3d7f198d6990ef96613a9026203077e422916918b03ff47f0be6bee7b02d8e139ef09960019b36916102ca565b60208151910120604051613c6881613c5a89602083019586613a83565b03601f1981018352826101e3565b5190208a614d24565b948394613b80565b63a75d88af60e01b60005260046000fd5b6371253a2560e01b60005260046000fd5b631b41e11d60e31b60005260046000fd5b60016000526002602052613d0c9150611a4e90613cf990613cf360037fe90b7bceb6e7df5418fb78d8ee546e97c83a08bbccc01a0644d599ccd2a7c2e05b01915160ff1690565b90613a47565b90546001600160a01b039160031b1c1690565b331438613b74565b6324f7d61360e21b600052600452602487905260446000fd5b638e1192e160e01b6000526004523660245260446000fd5b613d6e90613d68613d5e613d598751611ea9565b6139ef565b613d688851611ea9565b906139fd565b613aea565b60008052600260205294909390929091613dac7fac33ff75c19e70fe83507db0d683fd3465c996598dc972688b7ace676c89077b612622565b94863595613db9836139e1565b6060820190613dc88251151590565b613f50575b803603613d2d57508151888103613f375750613de76136a2565b600080526003602052613e1c613b4e7f3617319a054d772f909f7c479a2cebe5066e836a939412e32403c99029b92eff613b36565b60026020820151613e2c81613a0a565b613e3581613a0a565b149081613eee575b5015613c9b5751613e80575b5050505050507f198d6990ef96613a9026203077e422916918b03ff47f0be6bee7b02d8e139ef090613bb661302a60009460200190565b613e9c613224613bee602087989a999b96975194015160ff1690565b03613c8a578351865103613c79576000967f198d6990ef96613a9026203077e422916918b03ff47f0be6bee7b02d8e139ef096613bb695613c3d613ee59461302a9736916102ca565b94839438613e49565b600080526002602052613f2f9150611a4e90613cf990613cf360037fac33ff75c19e70fe83507db0d683fd3465c996598dc972688b7ace676c89077b613cea565b331438613e3d565b6324f7d61360e21b600052600452602488905260446000fd5b613f6e90613d68613f64613d598951611ea9565b613d688a51611ea9565b613dcd565b60ff166003029060ff8216918203611ebf57565b8151916001600160401b03831161018d5768010000000000000000831161018d576020908254848455808510613ff0575b500190600052602060002060005b838110613fd35750505050565b60019060206001600160a01b038551169401938184015501613fc6565b6140079084600052858460002091820191016134e7565b38613fb8565b95949392909160ff61403293168752602087015260a0604087015260a086019061265b565b84810360608601526020808351928381520192019060005b818110614065575050509060806102139294019060ff169052565b82516001600160a01b031684526020938401939092019160010161404a565b600654811015611d445760066000527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f015490565b6001600160401b0361031c94938160609416835216602082015281604082015201906105da565b60409061031c9392815281602082015201906105da565b9291906001600160401b0390816064951660045216602452600481101561089e57604452565b94939261413660609361414793885260208801906108a3565b6080604087015260808601906105da565b930152565b9061415e82516001600160401b031690565b8151604051632cbc26bb60e01b815267ffffffffffffffff60801b608084901b1660048201529015159391906001600160401b038216906020816024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9081156124d85760009161487a575b50614838576020830191825151948515614808576040850180515187036147f75761420087611cef565b957f00000000000000000000000000000000000000000000000000000000000000006142366001614230876139a4565b01611e1a565b6020815191012060405161429681613c5a6020820194868b876001600160401b036060929594938160808401977f2425b0b9f9054c76ff151b0a175b18f37a4a4e82013a72e9f15c9caa095ed21f85521660208401521660408201520152565b519020906001600160401b031660005b8a811061475f5750505080608060606142c69301519101519088866152ed565b9788156147415760005b8881106142e35750505050505050505050565b5a6142ef828951611d49565b51805160600151614309906001600160401b031688611ed1565b61431281610894565b8015908d828315938461472e575b156146eb576060881561466e5750614347602061433d898d611d49565b5101519242611ec4565b60045461435c9060a01c63ffffffff16611fff565b10801561465b575b1561463d57614373878b611d49565b5151614627575b845160800151614392906001600160401b03166107e9565b61456f575b506143a3868951611d49565b5160a08501515181510361453357936144089695938c938f966143e88e958c926143e26143dc60608951016001600160401b0390511690565b8961531f565b866154c6565b9a90809661440260608851016001600160401b0390511690565b906153a7565b6144e1575b505061441882610894565b60028203614499575b60019661448f7f05665fe9ad095383d018353f4cbcba77e84db27dd215081bbf7cdf9ae6fbe48b936001600160401b039351926144806144778b61446f60608801516001600160401b031690565b96519b611d49565b51985a90611ec4565b9160405195869516988561411d565b0390a45b016142d0565b915091939492506144a982610894565b600382036144bd578b929493918a91614421565b51606001516349362d1f60e11b600052611c6591906001600160401b0316896140f7565b6144ea84610894565b6003840361440d579092949550614502919350610894565b614512578b92918a91388061440d565b5151604051632b11b8d960e01b8152908190612079908790600484016140e0565b611c658b61454d60608851016001600160401b0390511690565b631cfe6d8b60e01b6000526001600160401b0391821660045216602452604490565b61457883610894565b614583575b38614397565b8351608001516001600160401b0316602080860151918c6145b860405194859384936370701e5760e11b8552600485016140b9565b038160006001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af19081156124d857600091614609575b5061457d575050505050600190614493565b614621915060203d8111612fb957612fab81836101e3565b386145f7565b614631878b611d49565b5151608086015261437a565b6354e7e43160e11b6000526001600160401b038b1660045260246000fd5b5061466583610894565b60038314614364565b91508361467a84610894565b1561437a575060019594506146e392506146c191507f3ef2a99c550a751d4b0b261268f05a803dfb049ab43616a1ffb388f61fe651209351016001600160401b0390511690565b604080516001600160401b03808c168252909216602083015290918291820190565b0390a1614493565b5050505060019291506146e36146c160607f3b575419319662b2a6f5e2467d84521517a3382b908eb3d557bb3fdb0c50e23c9351016001600160401b0390511690565b5061473883610894565b60038314614320565b633ee8bd3f60e11b6000526001600160401b03841660045260246000fd5b61476a818a51611d49565b518051604001516001600160401b03168381036147da57508051602001516001600160401b03168981036147b75750906147a6846001936151e5565b6147b0828d611d49565b52016142a6565b636c95f1eb60e01b6000526001600160401b03808a166004521660245260446000fd5b631c21951160e11b6000526001600160401b031660045260246000fd5b6357e0e08360e01b60005260046000fd5b611c6561481c86516001600160401b031690565b63676cf24b60e11b6000526001600160401b0316600452602490565b5092915050612f75576040516001600160401b039190911681527faab522ed53d887e56ed53dd37398a01aeef6a58e0fa77c2173beb9512d89493390602090a1565b614893915060203d602011612fb957612fab81836101e3565b386141d6565b9081602091031261026b575161031c8161025a565b9061031c916020815260e061494c6149376148d7855161010060208701526101208601906105da565b60208601516001600160401b0316604086015260408601516001600160a01b0316606086015260608601516080860152614921608087015160a08701906001600160a01b03169052565b60a0860151858203601f190160c08701526105da565b60c0850151848203601f1901848601526105da565b92015190610100601f19828503019101526105da565b6040906001600160a01b0361031c949316815281602082015201906105da565b9081602091031261026b575190565b9193929361499d612129565b5060208301516001600160a01b031660405163bbe4f6db60e01b81526001600160a01b038216600482015290959092602084806024810103816001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165afa9384156124d857600094614c1a575b506001600160a01b0384169586158015614c08575b614bea57614acf614af892613c5a92614a53614a4c611fff60408c015163ffffffff1690565b8c89615607565b9690996080810151614a816060835193015193614a6e610224565b9687526001600160401b03166020870152565b6001600160a01b038a16604086015260608501526001600160a01b038d16608085015260a084015260c083015260e0820152604051633907753760e01b6020820152928391602483016148ae565b82857f000000000000000000000000000000000000000000000000000000000000000092615695565b94909115614bce5750805160208103614bb5575090614b21826020808a95518301019101614982565b956001600160a01b03841603614b59575b5050505050614b51614b42610234565b6001600160a01b039093168352565b602082015290565b614b6c93614b6691611ec4565b91615607565b50908082108015614ba2575b614b8457808481614b32565b63a966e21f60e01b6000908152600493909352602452604452606490fd5b5082614bae8284611ec4565b1415614b78565b631e3be00960e21b600052602060045260245260446000fd5b612079604051928392634ff17cad60e11b845260048401614962565b63ae9b4ce960e01b6000526001600160a01b03851660045260246000fd5b50614c156124fd86613993565b614a26565b614c3d91945060203d602011614c44575b614c3581836101e3565b810190614899565b9238614a11565b503d614c2b565b60405160208101916301ffc9a760e01b835263ffffffff60e01b602483015260248252614c796044836101e3565b6179185a10614cb5576020926000925191617530fa6000513d82614ca9575b5081614ca2575090565b9050151590565b60201115915038614c98565b63753fa58960e11b60005260046000fd5b60405160208101916301ffc9a760e01b83526301ffc9a760e01b602483015260248252614c796044836101e3565b6040519060208201926301ffc9a760e01b845263ffffffff60e01b16602483015260248252614c796044836101e3565b919390926000948051946000965b868810614d43575050505050505050565b6020881015611d445760206000614d5b878b1a613a71565b614d658b87611d49565b5190614d9c614d748d8a611d49565b5160405193849389859094939260ff6060936080840197845216602083015260408201520152565b838052039060015afa156124d857614de2613b4e600051614dca8960ff166000526003602052604060002090565b906001600160a01b0316600052602052604060002090565b9060016020830151614df381613a0a565b614dfc81613a0a565b03614e4957614e19614e0f835160ff1690565b60ff600191161b90565b8116614e3857614e2f614e0f6001935160ff1690565b17970196614d32565b633d9ef1f160e21b60005260046000fd5b636518c33d60e11b60005260046000fd5b91909160005b8351811015614eb35760019060ff831660005260036020526000614eac604082206001600160a01b03614e93858a611d49565b51166001600160a01b0316600052602052604060002090565b5501614e60565b50509050565b8151815460ff191660ff919091161781559060200151600381101561089e57815461ff00191660089190911b61ff0016179055565b919060005b8151811015614eb357614f09611ba78284611d49565b90614f32614f2883614dca8860ff166000526003602052604060002090565b5460081c60ff1690565b614f3b81613a0a565b614fa6576001600160a01b03821615614f9557614f8f600192614f8a614f5f610234565b60ff8516815291614f738660208501613a14565b614dca8960ff166000526003602052604060002090565b614eb9565b01614ef3565b63d6c62c9b60e01b60005260046000fd5b631b3fab5160e11b6000526004805260246000fd5b919060005b8151811015614eb357614fd6611ba78284611d49565b90614ff5614f2883614dca8860ff166000526003602052604060002090565b614ffe81613a0a565b614fa6576001600160a01b03821615614f9557615037600192614f8a615022610234565b60ff8516815291614f73600260208501613a14565b01614fc0565b60ff1680600052600260205260ff60016040600020015460101c1690801560001461508b57501561507a576001600160401b0319600b5416600b55565b6317bd8dd160e11b60005260046000fd5b6001146150955750565b61509b57565b6307b8c74d60e51b60005260046000fd5b8060005260076020526040600020541560001461512a576006546801000000000000000081101561018d57600181016006556000600654821015611d4457600690527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f01819055600654906000526007602052604060002055600190565b50600090565b9080602083519182815201916020808360051b8301019401926000915b83831061515c57505050505090565b9091929394602080600192601f198582030186528851906080806151bf61518c855160a0865260a08601906105da565b6001600160a01b0387870151168786015263ffffffff6040870151166040860152606086015185820360608701526105da565b9301519101529701930193019193929061514d565b90602061031c928181520190615130565b6134e1815180519061527961520460608601516001600160a01b031690565b613c5a61521b60608501516001600160401b031690565b936152346080808a01519201516001600160401b031690565b90604051958694602086019889936001600160401b036080946001600160a01b0382959998949960a089019a8952166020880152166040860152606085015216910152565b519020613c5a6020840151602081519101209360a06040820151602081519101209101516040516152b281613c5a6020820194856151d4565b51902090604051958694602086019889919260a093969594919660c08401976000855260208501526040840152606083015260808201520152565b926001600160401b039261530092615752565b9116600052600a60205260406000209060005260205260406000205490565b607f8216906801fffffffffffffffe6001600160401b0383169260011b169180830460021490151715611ebf576153a4916001600160401b03615362858461365e565b921660005260096020526701ffffffffffffff60406000209460071c169160036001831b921b19161792906001600160401b0316600052602052604060002090565b55565b9091607f83166801fffffffffffffffe6001600160401b0382169160011b169080820460021490151715611ebf576153df848461365e565b600483101561089e576001600160401b036153a49416600052600960205260036701ffffffffffffff60406000209660071c1693831b921b19161792906001600160401b0316600052602052604060002090565b9080602083519182815201916020808360051b8301019401926000915b83831061545f57505050505090565b909192939460208061547d600193601f1986820301875289516105da565b97019301930191939290615450565b906020808351928381520192019060005b8181106154aa5750505090565b825163ffffffff1684526020938401939092019160010161549d565b91606092303b1561026b576155c860a0926155b66000956155a46040519889978897630304c3e160e51b89528260048a01526001600160401b0360808251805160648d01528260208201511660848d01528260408201511660a48d015282868201511660c48d015201511660e48a01526155856155706155598b61014061010460208701519201526101a48d01906105da565b60408401518c8203606319016101248e01526105da565b938201516001600160a01b03166101448b0152565b60808101516101648a0152015187820360631901610184890152615130565b85810360031901602487015290615433565b8381036003190160448501529061548c565b038183305af190816155f2575b506155e7576155e2612234565b600391565b60029061031c6105a2565b806125996000615601936101e3565b386155d5565b6040516370a0823160e01b60208201526001600160a01b0390911660248201529192916156649061563b8160448101613c5a565b84837f000000000000000000000000000000000000000000000000000000000000000092615695565b92909115614bce5750805160208103614bb557509061568f8260208061031c95518301019101614982565b93611ec4565b9391936156a260846102af565b946156b060405196876101e3565b608486526156be60846102af565b602087019590601f1901368737833b15615741575a90808210615730578291038060061c9003111561571f576000918291825a9560208451940192f1905a9003923d9060848211615716575b6000908287523e929190565b6084915061570a565b6337c3be2960e01b60005260046000fd5b632be8ca8b60e21b60005260046000fd5b63030ed58f60e21b60005260046000fd5b80519282519084156158ae57610101851115806158a2575b156157d1578185019460001986019561010087116157d15786156158925761579187611cef565b9660009586978795885b8481106157f65750505050506001190180951493846157ec575b5050826157e2575b5050156157d1576157cd91611d49565b5190565b6309bde33960e01b60005260046000fd5b14905038806157bd565b14925038806157b5565b6001811b8281160361588457868a101561586f5761581860018b019a85611d49565b51905b8c888c101561585b575061583360018c019b86611d49565b515b818d116157d157615854828f9261584e906001966158bf565b92611d49565b520161579b565b60018d019c61586991611d49565b51615835565b61587d60018c019b8d611d49565b519061581b565b61587d600189019884611d49565b5050505090506157cd9150611d37565b5061010182111561576a565b630469ac9960e21b60005260046000fd5b818110156158d1579061031c916158d6565b61031c915b906040519060208201926001845260408301526060820152606081526134e16080826101e356fea164736f6c634300081a000a49f51971edd25182e97182d6ea372a0488ce2ab639f6a3a7ab4df0d2636fe56b", } var OffRampABI = OffRampMetaData.ABI diff --git a/core/gethwrappers/ccip/generated/onramp/onramp.go b/core/gethwrappers/ccip/generated/onramp/onramp.go index 67575cdbb5b..b864e2c76d6 100644 --- a/core/gethwrappers/ccip/generated/onramp/onramp.go +++ b/core/gethwrappers/ccip/generated/onramp/onramp.go @@ -101,7 +101,7 @@ type OnRampStaticConfig struct { var OnRampMetaData = &bind.MetaData{ ABI: "[{\"type\":\"constructor\",\"inputs\":[{\"name\":\"staticConfig\",\"type\":\"tuple\",\"internalType\":\"structOnRamp.StaticConfig\",\"components\":[{\"name\":\"chainSelector\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"rmnRemote\",\"type\":\"address\",\"internalType\":\"contractIRMNRemote\"},{\"name\":\"nonceManager\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"tokenAdminRegistry\",\"type\":\"address\",\"internalType\":\"address\"}]},{\"name\":\"dynamicConfig\",\"type\":\"tuple\",\"internalType\":\"structOnRamp.DynamicConfig\",\"components\":[{\"name\":\"feeQuoter\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"reentrancyGuardEntered\",\"type\":\"bool\",\"internalType\":\"bool\"},{\"name\":\"messageInterceptor\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"feeAggregator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"allowlistAdmin\",\"type\":\"address\",\"internalType\":\"address\"}]},{\"name\":\"destChainConfigArgs\",\"type\":\"tuple[]\",\"internalType\":\"structOnRamp.DestChainConfigArgs[]\",\"components\":[{\"name\":\"destChainSelector\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"router\",\"type\":\"address\",\"internalType\":\"contractIRouter\"},{\"name\":\"allowlistEnabled\",\"type\":\"bool\",\"internalType\":\"bool\"}]}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"acceptOwnership\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"applyAllowlistUpdates\",\"inputs\":[{\"name\":\"allowlistConfigArgsItems\",\"type\":\"tuple[]\",\"internalType\":\"structOnRamp.AllowlistConfigArgs[]\",\"components\":[{\"name\":\"destChainSelector\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"allowlistEnabled\",\"type\":\"bool\",\"internalType\":\"bool\"},{\"name\":\"addedAllowlistedSenders\",\"type\":\"address[]\",\"internalType\":\"address[]\"},{\"name\":\"removedAllowlistedSenders\",\"type\":\"address[]\",\"internalType\":\"address[]\"}]}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"applyDestChainConfigUpdates\",\"inputs\":[{\"name\":\"destChainConfigArgs\",\"type\":\"tuple[]\",\"internalType\":\"structOnRamp.DestChainConfigArgs[]\",\"components\":[{\"name\":\"destChainSelector\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"router\",\"type\":\"address\",\"internalType\":\"contractIRouter\"},{\"name\":\"allowlistEnabled\",\"type\":\"bool\",\"internalType\":\"bool\"}]}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"forwardFromRouter\",\"inputs\":[{\"name\":\"destChainSelector\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"message\",\"type\":\"tuple\",\"internalType\":\"structClient.EVM2AnyMessage\",\"components\":[{\"name\":\"receiver\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"data\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"tokenAmounts\",\"type\":\"tuple[]\",\"internalType\":\"structClient.EVMTokenAmount[]\",\"components\":[{\"name\":\"token\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"feeToken\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"extraArgs\",\"type\":\"bytes\",\"internalType\":\"bytes\"}]},{\"name\":\"feeTokenAmount\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"originalSender\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"getAllowedSendersList\",\"inputs\":[{\"name\":\"destChainSelector\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"outputs\":[{\"name\":\"isEnabled\",\"type\":\"bool\",\"internalType\":\"bool\"},{\"name\":\"configuredAddresses\",\"type\":\"address[]\",\"internalType\":\"address[]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getDestChainConfig\",\"inputs\":[{\"name\":\"destChainSelector\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"outputs\":[{\"name\":\"sequenceNumber\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"allowlistEnabled\",\"type\":\"bool\",\"internalType\":\"bool\"},{\"name\":\"router\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getDynamicConfig\",\"inputs\":[],\"outputs\":[{\"name\":\"dynamicConfig\",\"type\":\"tuple\",\"internalType\":\"structOnRamp.DynamicConfig\",\"components\":[{\"name\":\"feeQuoter\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"reentrancyGuardEntered\",\"type\":\"bool\",\"internalType\":\"bool\"},{\"name\":\"messageInterceptor\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"feeAggregator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"allowlistAdmin\",\"type\":\"address\",\"internalType\":\"address\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getExpectedNextSequenceNumber\",\"inputs\":[{\"name\":\"destChainSelector\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getFee\",\"inputs\":[{\"name\":\"destChainSelector\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"message\",\"type\":\"tuple\",\"internalType\":\"structClient.EVM2AnyMessage\",\"components\":[{\"name\":\"receiver\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"data\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"tokenAmounts\",\"type\":\"tuple[]\",\"internalType\":\"structClient.EVMTokenAmount[]\",\"components\":[{\"name\":\"token\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"feeToken\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"extraArgs\",\"type\":\"bytes\",\"internalType\":\"bytes\"}]}],\"outputs\":[{\"name\":\"feeTokenAmount\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getPoolBySourceToken\",\"inputs\":[{\"name\":\"\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"sourceToken\",\"type\":\"address\",\"internalType\":\"contractIERC20\"}],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIPoolV1\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getStaticConfig\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"tuple\",\"internalType\":\"structOnRamp.StaticConfig\",\"components\":[{\"name\":\"chainSelector\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"rmnRemote\",\"type\":\"address\",\"internalType\":\"contractIRMNRemote\"},{\"name\":\"nonceManager\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"tokenAdminRegistry\",\"type\":\"address\",\"internalType\":\"address\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getSupportedTokens\",\"inputs\":[{\"name\":\"\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"outputs\":[{\"name\":\"\",\"type\":\"address[]\",\"internalType\":\"address[]\"}],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"owner\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"setDynamicConfig\",\"inputs\":[{\"name\":\"dynamicConfig\",\"type\":\"tuple\",\"internalType\":\"structOnRamp.DynamicConfig\",\"components\":[{\"name\":\"feeQuoter\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"reentrancyGuardEntered\",\"type\":\"bool\",\"internalType\":\"bool\"},{\"name\":\"messageInterceptor\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"feeAggregator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"allowlistAdmin\",\"type\":\"address\",\"internalType\":\"address\"}]}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"transferOwnership\",\"inputs\":[{\"name\":\"to\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"typeAndVersion\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"string\",\"internalType\":\"string\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"withdrawFeeTokens\",\"inputs\":[{\"name\":\"feeTokens\",\"type\":\"address[]\",\"internalType\":\"address[]\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"event\",\"name\":\"AllowListAdminSet\",\"inputs\":[{\"name\":\"allowlistAdmin\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"AllowListSendersAdded\",\"inputs\":[{\"name\":\"destChainSelector\",\"type\":\"uint64\",\"indexed\":true,\"internalType\":\"uint64\"},{\"name\":\"senders\",\"type\":\"address[]\",\"indexed\":false,\"internalType\":\"address[]\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"AllowListSendersRemoved\",\"inputs\":[{\"name\":\"destChainSelector\",\"type\":\"uint64\",\"indexed\":true,\"internalType\":\"uint64\"},{\"name\":\"senders\",\"type\":\"address[]\",\"indexed\":false,\"internalType\":\"address[]\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"CCIPMessageSent\",\"inputs\":[{\"name\":\"destChainSelector\",\"type\":\"uint64\",\"indexed\":true,\"internalType\":\"uint64\"},{\"name\":\"sequenceNumber\",\"type\":\"uint64\",\"indexed\":true,\"internalType\":\"uint64\"},{\"name\":\"message\",\"type\":\"tuple\",\"indexed\":false,\"internalType\":\"structInternal.EVM2AnyRampMessage\",\"components\":[{\"name\":\"header\",\"type\":\"tuple\",\"internalType\":\"structInternal.RampMessageHeader\",\"components\":[{\"name\":\"messageId\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"sourceChainSelector\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"destChainSelector\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"sequenceNumber\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"nonce\",\"type\":\"uint64\",\"internalType\":\"uint64\"}]},{\"name\":\"sender\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"data\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"receiver\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"extraArgs\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"feeToken\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"feeTokenAmount\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"feeValueJuels\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"tokenAmounts\",\"type\":\"tuple[]\",\"internalType\":\"structInternal.EVM2AnyTokenTransfer[]\",\"components\":[{\"name\":\"sourcePoolAddress\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"destTokenAddress\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"extraData\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"amount\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"destExecData\",\"type\":\"bytes\",\"internalType\":\"bytes\"}]}]}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"ConfigSet\",\"inputs\":[{\"name\":\"staticConfig\",\"type\":\"tuple\",\"indexed\":false,\"internalType\":\"structOnRamp.StaticConfig\",\"components\":[{\"name\":\"chainSelector\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"rmnRemote\",\"type\":\"address\",\"internalType\":\"contractIRMNRemote\"},{\"name\":\"nonceManager\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"tokenAdminRegistry\",\"type\":\"address\",\"internalType\":\"address\"}]},{\"name\":\"dynamicConfig\",\"type\":\"tuple\",\"indexed\":false,\"internalType\":\"structOnRamp.DynamicConfig\",\"components\":[{\"name\":\"feeQuoter\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"reentrancyGuardEntered\",\"type\":\"bool\",\"internalType\":\"bool\"},{\"name\":\"messageInterceptor\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"feeAggregator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"allowlistAdmin\",\"type\":\"address\",\"internalType\":\"address\"}]}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"DestChainConfigSet\",\"inputs\":[{\"name\":\"destChainSelector\",\"type\":\"uint64\",\"indexed\":true,\"internalType\":\"uint64\"},{\"name\":\"sequenceNumber\",\"type\":\"uint64\",\"indexed\":false,\"internalType\":\"uint64\"},{\"name\":\"router\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"contractIRouter\"},{\"name\":\"allowlistEnabled\",\"type\":\"bool\",\"indexed\":false,\"internalType\":\"bool\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"FeeTokenWithdrawn\",\"inputs\":[{\"name\":\"feeAggregator\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"feeToken\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"OwnershipTransferRequested\",\"inputs\":[{\"name\":\"from\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"to\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"OwnershipTransferred\",\"inputs\":[{\"name\":\"from\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"to\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"error\",\"name\":\"CannotSendZeroTokens\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"CannotTransferToSelf\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"CursedByRMN\",\"inputs\":[{\"name\":\"destChainSelector\",\"type\":\"uint64\",\"internalType\":\"uint64\"}]},{\"type\":\"error\",\"name\":\"GetSupportedTokensFunctionalityRemovedCheckAdminRegistry\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidAllowListRequest\",\"inputs\":[{\"name\":\"destChainSelector\",\"type\":\"uint64\",\"internalType\":\"uint64\"}]},{\"type\":\"error\",\"name\":\"InvalidConfig\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidDestChainConfig\",\"inputs\":[{\"name\":\"destChainSelector\",\"type\":\"uint64\",\"internalType\":\"uint64\"}]},{\"type\":\"error\",\"name\":\"MustBeCalledByRouter\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"MustBeProposedOwner\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"OnlyCallableByOwner\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"OnlyCallableByOwnerOrAllowlistAdmin\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"OwnerCannotBeZero\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"ReentrancyGuardReentrantCall\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"RouterMustSetOriginalSender\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"SenderNotAllowed\",\"inputs\":[{\"name\":\"sender\",\"type\":\"address\",\"internalType\":\"address\"}]},{\"type\":\"error\",\"name\":\"UnsupportedToken\",\"inputs\":[{\"name\":\"token\",\"type\":\"address\",\"internalType\":\"address\"}]}]", - Bin: "0x6101006040523461055f57613c078038038061001a81610599565b92833981019080820390610140821261055f576080821261055f5761003d61057a565b90610047816105be565b82526020810151906001600160a01b038216820361055f5760208301918252610072604082016105d2565b926040810193845260a0610088606084016105d2565b6060830190815295607f19011261055f5760405160a081016001600160401b03811182821017610564576040526100c1608084016105d2565b81526100cf60a084016105e6565b602082019081526100e260c085016105d2565b91604081019283526100f660e086016105d2565b936060820194855261010b61010087016105d2565b6080830190815261012087015190966001600160401b03821161055f57018a601f8201121561055f578051906001600160401b0382116105645760209b8c6060610159828660051b01610599565b9e8f8681520194028301019181831161055f57602001925b8284106104f1575050505033156104e057600180546001600160a01b0319163317905580516001600160401b03161580156104ce575b80156104bc575b80156104aa575b61047d57516001600160401b0316608081905295516001600160a01b0390811660a08190529751811660c08190529851811660e08190528251909116158015610498575b801561048e575b61047d57815160028054855160ff60a01b90151560a01b166001600160a01b039384166001600160a81b0319909216919091171790558451600380549183166001600160a01b03199283161790558651600480549184169183169190911790558751600580549190931691161790557fc7372d2d886367d7bb1b0e0708a5436f2c91d6963de210eb2dc1ec2ecd6d21f19861012098606061029f61057a565b8a8152602080820193845260408083019586529290910194855281519a8b5291516001600160a01b03908116928b019290925291518116918901919091529051811660608801529051811660808701529051151560a08601529051811660c08501529051811660e0840152905116610100820152a16000905b805182101561040b5761032b82826105f3565b51916001600160401b0361033f82846105f3565b5151169283156103f65760008481526006602090815260409182902081840151815494840151600160401b600160e81b03198616604883901b600160481b600160e81b031617901515851b68ff000000000000000016179182905583516001600160401b0390951685526001600160a01b031691840191909152811c60ff1615159082015291926001927fd5ad72bc37dc7a80a8b9b9df20500046fd7341adb1be2258a540466fdd7dcef590606090a20190610318565b8363c35aa79d60e01b60005260045260246000fd5b6040516135e9908161061e82396080518181816103e301528181610b60015281816120910152612829015260a0518181816120ca015281816125e70152612862015260c051818181610f2301528181612106015261289e015260e051818181612142015281816128da0152612eb80152f35b6306b7c75960e31b60005260046000fd5b5082511515610200565b5084516001600160a01b0316156101f9565b5088516001600160a01b0316156101b5565b5087516001600160a01b0316156101ae565b5086516001600160a01b0316156101a7565b639b15e16f60e01b60005260046000fd5b60608483031261055f5760405190606082016001600160401b0381118382101761056457604052610521856105be565b82526020850151906001600160a01b038216820361055f578260209283606095015261054f604088016105e6565b6040820152815201930192610171565b600080fd5b634e487b7160e01b600052604160045260246000fd5b60405190608082016001600160401b0381118382101761056457604052565b6040519190601f01601f191682016001600160401b0381118382101761056457604052565b51906001600160401b038216820361055f57565b51906001600160a01b038216820361055f57565b5190811515820361055f57565b80518210156106075760209160051b010190565b634e487b7160e01b600052603260045260246000fdfe608080604052600436101561001357600080fd5b600090813560e01c90816306285c69146127c357508063181f5a771461274457806320487ded1461250b5780632716072b1461225b57806327e936f114611e5557806348a98aa414611dd25780635cb80c5d14611aee5780636def4ce714611a5f5780637437ff9f1461194257806379ba50971461185d5780638da5cb5b1461180b5780639041be3d1461175e578063972b461214611690578063c9b146b3146112c7578063df0aa9e91461022c578063f2fde38b1461013f5763fbca3b74146100dc57600080fd5b3461013c5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261013c57600490610116612acf565b507f9e7177c8000000000000000000000000000000000000000000000000000000008152fd5b80fd5b503461013c5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261013c5773ffffffffffffffffffffffffffffffffffffffff61018c612b25565b610194613286565b1633811461020457807fffffffffffffffffffffffff000000000000000000000000000000000000000083541617825573ffffffffffffffffffffffffffffffffffffffff600154167fed8889f560326eb138920d842192f0eb3dd22b4f139c87a2c57538e05bae12788380a380f35b6004827fdad89dca000000000000000000000000000000000000000000000000000000008152fd5b503461013c5760807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261013c57610264612acf565b67ffffffffffffffff602435116112c35760a07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc602435360301126112c3576102ab612b48565b60025460ff8160a01c1661129b577fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16740100000000000000000000000000000000000000001760025567ffffffffffffffff8216835260066020526040832073ffffffffffffffffffffffffffffffffffffffff82161561127357805460ff8160401c16611205575b60481c73ffffffffffffffffffffffffffffffffffffffff1633036111dd5773ffffffffffffffffffffffffffffffffffffffff6003541680611165575b50805467ffffffffffffffff811667ffffffffffffffff8114611138579067ffffffffffffffff60017fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000009493011692839116179055604051906103d582612999565b84825267ffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016602083015267ffffffffffffffff8416604083015260608201528360808201526104366024803501602435600401613066565b61044560046024350180613066565b610453606460243501612f72565b936104686044602435016024356004016130b7565b9490507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe06104ae61049887612b00565b966104a660405198896129ee565b808852612b00565b018a5b8181106111215750506105029392916104f691604051986104d18a6129b5565b895273ffffffffffffffffffffffffffffffffffffffff8a1660208a01523691613137565b60408701523691613137565b606084015273ffffffffffffffffffffffffffffffffffffffff60209260405161052c85826129ee565b88815260808601521660a084015260443560c08401528560e08401526101008301526105626044602435016024356004016130b7565b61056e81969296612b00565b9061057c60405192836129ee565b8082528382018097368360061b82011161111d5780915b8360061b820183106110e65750505050865b6105b96044602435016024356004016130b7565b905081101561092f576105cc8183613023565b51906105e76105e060046024350180613066565b3691613137565b916105f061310b565b5085810151156109075773ffffffffffffffffffffffffffffffffffffffff61061b81835116612e59565b16928315801561085d575b61081a57908a6106d392888873ffffffffffffffffffffffffffffffffffffffff8d838701518280895116926040519761065f89612999565b885267ffffffffffffffff87890196168652816040890191168152606088019283526080880193845267ffffffffffffffff6040519b8c998a997f9a4575b9000000000000000000000000000000000000000000000000000000008b5260048b01525160a060248b015260c48a0190612a8c565b965116604488015251166064860152516084850152511660a4830152038183885af191821561080f578b92610768575b5060019382849289806107619651930151910151916040519361072585612999565b84528a8401526040830152606082015260405161074289826129ee565b8c815260808201526101008901519061075b8383613023565b52613023565b50016105a5565b91503d808c843e61077981846129ee565b82019187818403126108075780519067ffffffffffffffff821161080b57019360408584031261080757604051916107b0836129d2565b855167ffffffffffffffff811161080357846107cd91880161316e565b8352888601519267ffffffffffffffff8411610803576107f56107619587956001990161316e565b8a8201529350915093610703565b8d80fd5b8b80fd5b8c80fd5b6040513d8d823e3d90fd5b60248b73ffffffffffffffffffffffffffffffffffffffff8451167fbf16aab6000000000000000000000000000000000000000000000000000000008252600452fd5b506040517f01ffc9a70000000000000000000000000000000000000000000000000000000081527faff2afbf0000000000000000000000000000000000000000000000000000000060048201528781602481885afa9081156108fc578c916108c7575b5015610626565b90508781813d83116108f5575b6108de81836129ee565b81010312610807576108ef90612c07565b386108c0565b503d6108d4565b6040513d8e823e3d90fd5b60048a7f5cf04449000000000000000000000000000000000000000000000000000000008152fd5b5090867f430d138c00000000000000000000000000000000000000000000000000000000819383979873ffffffffffffffffffffffffffffffffffffffff600254169187610a20610984606460243501612f72565b6109f08c61010073ffffffffffffffffffffffffffffffffffffffff6109b4608460243501602435600401613066565b92909301519467ffffffffffffffff6040519e8f9d8e521660048d01521660248b015260443560448b015260c060648b015260c48a0191612c64565b907ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc8883030160848901526131b0565b917ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc8684030160a48701525191828152019190855b898282106110ab575050505082809103915afa9586156110a05782839084938599610fa6575b5060e087015215610eb45750815b67ffffffffffffffff6080865101911690526080840152805b61010084015151811015610ad85780610abd60019288613023565b516080610acf83610100890151613023565b51015201610aa2565b508360405191610ae7836129b5565b610aef612f93565b835283830181815260408401906060825260608501936060855260808601936060855260a087019481865260c0880182815260e08901918383526101008a0193606085528b604051818101907f130ac867e79e2789f923760a88743d292acdf7002139a588206e2260f73f732182527f000000000000000000000000000000000000000000000000000000000000000067ffffffffffffffff16604082015267ffffffffffffffff8916606082015230608082015260808152610bb360a0826129ee565b519020885173ffffffffffffffffffffffffffffffffffffffff168d51606081015167ffffffffffffffff16906080015167ffffffffffffffff168d5173ffffffffffffffffffffffffffffffffffffffff168851916040519387850195865260408501526060840152608083015260a082015260a08152610c3660c0826129ee565b5190208c518381519101208b51848151910120908951604051808781019288845260408201610c64916131b0565b037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081018252610c9490826129ee565b5190209287518681519101209460405196870197885260408701526060860152608085015260a084015260c083015260e082015260e08152610cd8610100826129ee565b5190208a515289516060015167ffffffffffffffff16986040519788978d89528d8d51908151818c015281015167ffffffffffffffff1660408b0152604081015167ffffffffffffffff1660608b0152606081015167ffffffffffffffff1660808b01526080015167ffffffffffffffff1660a08a01525173ffffffffffffffffffffffffffffffffffffffff1660c08901525160e088016101a090526101c08801610d8391612a8c565b9051908781037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe001610100890152610dba91612a8c565b9051908681037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe001610120880152610df191612a8c565b965173ffffffffffffffffffffffffffffffffffffffff16610140860152516101608501525161018084015251908285037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0016101a084015267ffffffffffffffff1693610e5e916131b0565b037f192442a2b2adb6a7948f097023cb6b57d29d3a7a5dd33e6666d33c39cc456f3291a36002547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff166002555151604051908152f35b73ffffffffffffffffffffffffffffffffffffffff604051917fea458c0c00000000000000000000000000000000000000000000000000000000835267ffffffffffffffff8816600484015216602482015283816044818673ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165af1908115610f9b578391610f59575b50610a89565b90508381813d8311610f94575b610f7081836129ee565b81010312610f90575167ffffffffffffffff81168103610f905787610f53565b8280fd5b503d610f66565b6040513d85823e3d90fd5b9850505090503d8083883e610fbb81886129ee565b860190608087830312610f9057865196610fd6858201612c07565b97604082015167ffffffffffffffff81116110985784610ff791840161316e565b9160608101519067ffffffffffffffff821161109c570184601f8201121561109857805161102481612b00565b9561103260405197886129ee565b818752888088019260051b8401019281841161109457898101925b8484106110635750505050509790929789610a7b565b835167ffffffffffffffff8111611090578b916110858584809487010161316e565b81520193019261104d565b8a80fd5b8880fd5b8580fd5b8680fd5b6040513d84823e3d90fd5b8351805173ffffffffffffffffffffffffffffffffffffffff1686528101518186015289975088965060409094019390920191600101610a55565b604083360312611090578660409182516110ff816129d2565b61110886612b6b565b81528286013583820152815201920191610593565b8980fd5b60209061112c61310b565b82828a010152016104b1565b6024867f4e487b710000000000000000000000000000000000000000000000000000000081526011600452fd5b803b156111d9578460405180927fe0a0e5060000000000000000000000000000000000000000000000000000000082528183816111ab6024356004018b60048401612ca3565b03925af180156111ce571561037357846111c7919592956129ee565b9238610373565b6040513d87823e3d90fd5b8480fd5b6004847f1c0a3529000000000000000000000000000000000000000000000000000000008152fd5b73ffffffffffffffffffffffffffffffffffffffff831660009081526002830160205260409020546103355760248573ffffffffffffffffffffffffffffffffffffffff857fd0d2597600000000000000000000000000000000000000000000000000000000835216600452fd5b6004847fa4ec7479000000000000000000000000000000000000000000000000000000008152fd5b6004847f3ee5aeb5000000000000000000000000000000000000000000000000000000008152fd5b5080fd5b503461013c5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261013c5760043567ffffffffffffffff81116112c357611317903690600401612b8c565b73ffffffffffffffffffffffffffffffffffffffff600154163303611648575b919081907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8181360301915b84811015611644578060051b820135838112156111d9578201916080833603126111d957604051946113938661294e565b61139c84612aeb565b86526113aa60208501612b18565b9660208701978852604085013567ffffffffffffffff8111610f90576113d39036908701612fbe565b9460408801958652606081013567ffffffffffffffff8111611640576113fb91369101612fbe565b60608801908152875167ffffffffffffffff1683526006602052604080842099518a547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff169015159182901b68ff000000000000000016178a55909590815151611518575b5095976001019550815b855180518210156114a957906114a273ffffffffffffffffffffffffffffffffffffffff61149a83600195613023565b51168961337a565b500161146a565b505095909694506001929193519081516114c9575b505001939293611362565b61150e67ffffffffffffffff7fc237ec1921f855ccd5e9a5af9733f2d58943a5a8501ec5988e305d7a4d42158692511692604051918291602083526020830190612bbd565b0390a238806114be565b9893959296919094979860001461160957600184019591875b865180518210156115ae5761155b8273ffffffffffffffffffffffffffffffffffffffff92613023565b5116801561157757906115706001928a6132e9565b5001611531565b60248a67ffffffffffffffff8e51167f463258ff000000000000000000000000000000000000000000000000000000008252600452fd5b50509692955090929796937f330939f6eafe8bb516716892fe962ff19770570838686e6579dbc1cc51fc32816115ff67ffffffffffffffff8a51169251604051918291602083526020830190612bbd565b0390a23880611460565b60248767ffffffffffffffff8b51167f463258ff000000000000000000000000000000000000000000000000000000008252600452fd5b8380fd5b8380f35b73ffffffffffffffffffffffffffffffffffffffff60055416330315611337576004837f905d7d9b000000000000000000000000000000000000000000000000000000008152fd5b503461013c5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261013c5767ffffffffffffffff6116d1612acf565b16808252600660205260ff604083205460401c16908252600660205260016040832001916040518093849160208254918281520191845260208420935b818110611745575050611723925003836129ee565b61174160405192839215158352604060208401526040830190612bbd565b0390f35b845483526001948501948794506020909301920161170e565b503461013c5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261013c5767ffffffffffffffff61179f612acf565b1681526006602052600167ffffffffffffffff604083205416019067ffffffffffffffff82116117de5760208267ffffffffffffffff60405191168152f35b807f4e487b7100000000000000000000000000000000000000000000000000000000602492526011600452fd5b503461013c57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261013c57602073ffffffffffffffffffffffffffffffffffffffff60015416604051908152f35b503461013c57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261013c57805473ffffffffffffffffffffffffffffffffffffffff8116330361191a577fffffffffffffffffffffffff000000000000000000000000000000000000000060015491338284161760015516825573ffffffffffffffffffffffffffffffffffffffff3391167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08380a380f35b6004827f02b543c6000000000000000000000000000000000000000000000000000000008152fd5b503461013c57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261013c57611979612f93565b5060a060405161198881612999565b60ff60025473ffffffffffffffffffffffffffffffffffffffff81168352831c161515602082015273ffffffffffffffffffffffffffffffffffffffff60035416604082015273ffffffffffffffffffffffffffffffffffffffff60045416606082015273ffffffffffffffffffffffffffffffffffffffff600554166080820152611a5d604051809273ffffffffffffffffffffffffffffffffffffffff60808092828151168552602081015115156020860152826040820151166040860152826060820151166060860152015116910152565bf35b503461013c5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261013c57604060609167ffffffffffffffff611aa5612acf565b1681526006602052205473ffffffffffffffffffffffffffffffffffffffff6040519167ffffffffffffffff8116835260ff8160401c161515602084015260481c166040820152f35b503461013c5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261013c5760043567ffffffffffffffff81116112c357611b3e903690600401612b8c565b9073ffffffffffffffffffffffffffffffffffffffff6004541690835b83811015611dce5773ffffffffffffffffffffffffffffffffffffffff611b868260051b8401612f72565b1690604051917f70a08231000000000000000000000000000000000000000000000000000000008352306004840152602083602481845afa928315611dc3578793611d90575b5082611bde575b506001915001611b5b565b8460405193611c9960208601957fa9059cbb00000000000000000000000000000000000000000000000000000000875283602482015282604482015260448152611c296064826129ee565b8a80604098895193611c3b8b866129ee565b602085527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65646020860152519082895af13d15611d88573d90611c7c82612a2f565b91611c898a5193846129ee565b82523d8d602084013e5b8661350c565b805180611cd5575b505060207f508d7d183612c18fc339b42618912b9fa3239f631dd7ec0671f950200a0fa66e9160019651908152a338611bd3565b819294959693509060209181010312611094576020611cf49101612c07565b15611d055792919085903880611ca1565b608490517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f742073756363656564000000000000000000000000000000000000000000006064820152fd5b606090611c93565b9092506020813d8211611dbb575b81611dab602093836129ee565b8101031261109c57519138611bcc565b3d9150611d9e565b6040513d89823e3d90fd5b8480f35b503461013c5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261013c57611e0a612acf565b506024359073ffffffffffffffffffffffffffffffffffffffff8216820361013c576020611e3783612e59565b73ffffffffffffffffffffffffffffffffffffffff60405191168152f35b503461013c5760a07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261013c57604051611e9181612999565b611e99612b25565b81526024358015158103610f90576020820190815260443573ffffffffffffffffffffffffffffffffffffffff811681036116405760408301908152611edd612b48565b90606084019182526084359273ffffffffffffffffffffffffffffffffffffffff841684036110985760808501938452611f15613286565b73ffffffffffffffffffffffffffffffffffffffff85511615801561223c575b8015612232575b61220a579273ffffffffffffffffffffffffffffffffffffffff859381809461012097827fc7372d2d886367d7bb1b0e0708a5436f2c91d6963de210eb2dc1ec2ecd6d21f19a51167fffffffffffffffffffffffff000000000000000000000000000000000000000060025416176002555115157fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff74ff00000000000000000000000000000000000000006002549260a01b1691161760025551167fffffffffffffffffffffffff0000000000000000000000000000000000000000600354161760035551167fffffffffffffffffffffffff0000000000000000000000000000000000000000600454161760045551167fffffffffffffffffffffffff00000000000000000000000000000000000000006005541617600555612206604051916120868361294e565b67ffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016835273ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016602084015273ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016604084015273ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001660608401526121b6604051809473ffffffffffffffffffffffffffffffffffffffff6060809267ffffffffffffffff8151168552826020820151166020860152826040820151166040860152015116910152565b608083019073ffffffffffffffffffffffffffffffffffffffff60808092828151168552602081015115156020860152826040820151166040860152826060820151166060860152015116910152565ba180f35b6004867f35be3ac8000000000000000000000000000000000000000000000000000000008152fd5b5080511515611f3c565b5073ffffffffffffffffffffffffffffffffffffffff83511615611f35565b503461013c5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261013c576004359067ffffffffffffffff821161013c573660238301121561013c5781600401356122b781612b00565b926122c560405194856129ee565b818452602460606020860193028201019036821161164057602401915b818310612463575050506122f4613286565b805b825181101561245f576123098184613023565b5167ffffffffffffffff61231d8386613023565b51511690811561243357907fd5ad72bc37dc7a80a8b9b9df20500046fd7341adb1be2258a540466fdd7dcef5606060019493838752600660205260ff604088206123f4604060208501519483547fffffff0000000000000000000000000000000000000000ffffffffffffffffff7cffffffffffffffffffffffffffffffffffffffff0000000000000000008860481b1691161784550151151582907fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff68ff0000000000000000835492151560401b169116179055565b5473ffffffffffffffffffffffffffffffffffffffff6040519367ffffffffffffffff8316855216602084015260401c1615156040820152a2016122f6565b602484837fc35aa79d000000000000000000000000000000000000000000000000000000008252600452fd5b5080f35b606083360312611640576040516060810181811067ffffffffffffffff8211176124de5760405261249384612aeb565b8152602084013573ffffffffffffffffffffffffffffffffffffffff811681036110985791816060936020809401526124ce60408701612b18565b60408201528152019201916122e2565b6024867f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b503461013c5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261013c57612543612acf565b60243567ffffffffffffffff8111610f905760a07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc8236030112610f90576040517f2cbc26bb00000000000000000000000000000000000000000000000000000000815277ffffffffffffffff000000000000000000000000000000008360801b16600482015260208160248173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa9081156127395784916126ff575b506126c9576126769160209173ffffffffffffffffffffffffffffffffffffffff60025416906040518095819482937fd8694ccd0000000000000000000000000000000000000000000000000000000084526004019060048401612ca3565b03915afa9081156110a0578291612693575b602082604051908152f35b90506020813d6020116126c1575b816126ae602093836129ee565b810103126112c357602091505138612688565b3d91506126a1565b60248367ffffffffffffffff847ffdbd6a7200000000000000000000000000000000000000000000000000000000835216600452fd5b90506020813d602011612731575b8161271a602093836129ee565b810103126116405761272b90612c07565b38612617565b3d915061270d565b6040513d86823e3d90fd5b503461013c57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261013c57506117416040516127856040826129ee565b601081527f4f6e52616d7020312e362e302d646576000000000000000000000000000000006020820152604051918291602083526020830190612a8c565b9050346112c357817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126112c357806127ff60609261294e565b8281528260208201528260408201520152608060405161281e8161294e565b67ffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016815273ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016602082015273ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016604082015273ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000166060820152611a5d604051809273ffffffffffffffffffffffffffffffffffffffff6060809267ffffffffffffffff8151168552826020820151166020860152826040820151166040860152015116910152565b6080810190811067ffffffffffffffff82111761296a57604052565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60a0810190811067ffffffffffffffff82111761296a57604052565b610120810190811067ffffffffffffffff82111761296a57604052565b6040810190811067ffffffffffffffff82111761296a57604052565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff82111761296a57604052565b67ffffffffffffffff811161296a57601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b60005b838110612a7c5750506000910152565b8181015183820152602001612a6c565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f602093612ac881518092818752878088019101612a69565b0116010190565b6004359067ffffffffffffffff82168203612ae657565b600080fd5b359067ffffffffffffffff82168203612ae657565b67ffffffffffffffff811161296a5760051b60200190565b35908115158203612ae657565b6004359073ffffffffffffffffffffffffffffffffffffffff82168203612ae657565b6064359073ffffffffffffffffffffffffffffffffffffffff82168203612ae657565b359073ffffffffffffffffffffffffffffffffffffffff82168203612ae657565b9181601f84011215612ae65782359167ffffffffffffffff8311612ae6576020808501948460051b010111612ae657565b906020808351928381520192019060005b818110612bdb5750505090565b825173ffffffffffffffffffffffffffffffffffffffff16845260209384019390920191600101612bce565b51908115158203612ae657565b90357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe182360301811215612ae657016020813591019167ffffffffffffffff8211612ae6578136038313612ae657565b601f82602094937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0938186528686013760008582860101520116010190565b9067ffffffffffffffff9093929316815260406020820152612d19612cdc612ccb8580612c14565b60a0604086015260e0850191612c64565b612ce96020860186612c14565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0858403016060860152612c64565b9060408401357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe185360301811215612ae65784016020813591019267ffffffffffffffff8211612ae6578160061b36038413612ae6578281037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0016080840152818152602001929060005b818110612e1a57505050612de78473ffffffffffffffffffffffffffffffffffffffff612dd76060612e17979801612b6b565b1660a08401526080810190612c14565b9160c07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc082860301910152612c64565b90565b90919360408060019273ffffffffffffffffffffffffffffffffffffffff612e4189612b6b565b16815260208881013590820152019501929101612da4565b73ffffffffffffffffffffffffffffffffffffffff604051917fbbe4f6db00000000000000000000000000000000000000000000000000000000835216600482015260208160248173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa908115612f6657600091612f03575b5073ffffffffffffffffffffffffffffffffffffffff1690565b6020813d602011612f5e575b81612f1c602093836129ee565b810103126112c357519073ffffffffffffffffffffffffffffffffffffffff8216820361013c575073ffffffffffffffffffffffffffffffffffffffff612ee9565b3d9150612f0f565b6040513d6000823e3d90fd5b3573ffffffffffffffffffffffffffffffffffffffff81168103612ae65790565b60405190612fa082612999565b60006080838281528260208201528260408201528260608201520152565b9080601f83011215612ae6578135612fd581612b00565b92612fe360405194856129ee565b81845260208085019260051b820101928311612ae657602001905b82821061300b5750505090565b6020809161301884612b6b565b815201910190612ffe565b80518210156130375760209160051b010190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9035907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe181360301821215612ae6570180359067ffffffffffffffff8211612ae657602001918136038313612ae657565b9035907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe181360301821215612ae6570180359067ffffffffffffffff8211612ae657602001918160061b36038313612ae657565b6040519061311882612999565b6060608083600081528260208201528260408201526000838201520152565b92919261314382612a2f565b9161315160405193846129ee565b829481845281830111612ae6578281602093846000960137010152565b81601f82011215612ae657805161318481612a2f565b9261319260405194856129ee565b81845260208284010111612ae657612e179160208085019101612a69565b9080602083519182815201916020808360051b8301019401926000915b8383106131dc57505050505090565b9091929394602080613277837fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0866001960301875289519073ffffffffffffffffffffffffffffffffffffffff8251168152608061325c61324a8685015160a08886015260a0850190612a8c565b60408501518482036040860152612a8c565b92606081015160608401520151906080818403910152612a8c565b970193019301919392906131cd565b73ffffffffffffffffffffffffffffffffffffffff6001541633036132a757565b7f2b5c74de0000000000000000000000000000000000000000000000000000000060005260046000fd5b80548210156130375760005260206000200190600090565b6000828152600182016020526040902054613373578054906801000000000000000082101561296a578261335c6133278460018096018555846132d1565b81939154907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9060031b92831b921b19161790565b905580549260005201602052604060002055600190565b5050600090565b9060018201918160005282602052604060002054801515600014613503577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81018181116134d4578254907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82019182116134d45781810361349d575b5050508054801561346e577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff019061342f82826132d1565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82549160031b1b191690555560005260205260006040812055600190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b6134bd6134ad61332793866132d1565b90549060031b1c928392866132d1565b9055600052836020526040600020553880806133f7565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b50505050600090565b919290156135875750815115613520575090565b3b156135295790565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152fd5b82519091501561359a5750805190602001fd5b6135d8906040519182917f08c379a0000000000000000000000000000000000000000000000000000000008352602060048401526024830190612a8c565b0390fdfea164736f6c634300081a000a", + Bin: "0x6101006040523461055f57613c2b8038038061001a81610599565b92833981019080820390610140821261055f576080821261055f5761003d61057a565b90610047816105be565b82526020810151906001600160a01b038216820361055f5760208301918252610072604082016105d2565b926040810193845260a0610088606084016105d2565b6060830190815295607f19011261055f5760405160a081016001600160401b03811182821017610564576040526100c1608084016105d2565b81526100cf60a084016105e6565b602082019081526100e260c085016105d2565b91604081019283526100f660e086016105d2565b936060820194855261010b61010087016105d2565b6080830190815261012087015190966001600160401b03821161055f57018a601f8201121561055f578051906001600160401b0382116105645760209b8c6060610159828660051b01610599565b9e8f8681520194028301019181831161055f57602001925b8284106104f1575050505033156104e057600180546001600160a01b0319163317905580516001600160401b03161580156104ce575b80156104bc575b80156104aa575b61047d57516001600160401b0316608081905295516001600160a01b0390811660a08190529751811660c08190529851811660e08190528251909116158015610498575b801561048e575b61047d57815160028054855160ff60a01b90151560a01b166001600160a01b039384166001600160a81b0319909216919091171790558451600380549183166001600160a01b03199283161790558651600480549184169183169190911790558751600580549190931691161790557fc7372d2d886367d7bb1b0e0708a5436f2c91d6963de210eb2dc1ec2ecd6d21f19861012098606061029f61057a565b8a8152602080820193845260408083019586529290910194855281519a8b5291516001600160a01b03908116928b019290925291518116918901919091529051811660608801529051811660808701529051151560a08601529051811660c08501529051811660e0840152905116610100820152a16000905b805182101561040b5761032b82826105f3565b51916001600160401b0361033f82846105f3565b5151169283156103f65760008481526006602090815260409182902081840151815494840151600160401b600160e81b03198616604883901b600160481b600160e81b031617901515851b68ff000000000000000016179182905583516001600160401b0390951685526001600160a01b031691840191909152811c60ff1615159082015291926001927fd5ad72bc37dc7a80a8b9b9df20500046fd7341adb1be2258a540466fdd7dcef590606090a20190610318565b8363c35aa79d60e01b60005260045260246000fd5b60405161360d908161061e82396080518181816103e301528181610b64015281816120aa015261284d015260a0518181816120e3015281816126000152612886015260c051818181610f270152818161211f01526128c2015260e05181818161215b015281816128fe0152612edc0152f35b6306b7c75960e31b60005260046000fd5b5082511515610200565b5084516001600160a01b0316156101f9565b5088516001600160a01b0316156101b5565b5087516001600160a01b0316156101ae565b5086516001600160a01b0316156101a7565b639b15e16f60e01b60005260046000fd5b60608483031261055f5760405190606082016001600160401b0381118382101761056457604052610521856105be565b82526020850151906001600160a01b038216820361055f578260209283606095015261054f604088016105e6565b6040820152815201930192610171565b600080fd5b634e487b7160e01b600052604160045260246000fd5b60405190608082016001600160401b0381118382101761056457604052565b6040519190601f01601f191682016001600160401b0381118382101761056457604052565b51906001600160401b038216820361055f57565b51906001600160a01b038216820361055f57565b5190811515820361055f57565b80518210156106075760209160051b010190565b634e487b7160e01b600052603260045260246000fdfe608080604052600436101561001357600080fd5b600090813560e01c90816306285c69146127e757508063181f5a771461276857806320487ded146125245780632716072b1461227457806327e936f114611e6e57806348a98aa414611deb5780635cb80c5d14611b035780636def4ce714611a745780637437ff9f1461195757806379ba5097146118725780638da5cb5b146118205780639041be3d14611773578063972b4612146116a5578063c9b146b3146112d8578063df0aa9e91461022c578063f2fde38b1461013f5763fbca3b74146100dc57600080fd5b3461013c5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261013c57600490610116612af3565b507f9e7177c8000000000000000000000000000000000000000000000000000000008152fd5b80fd5b503461013c5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261013c5773ffffffffffffffffffffffffffffffffffffffff61018c612b49565b6101946132aa565b1633811461020457807fffffffffffffffffffffffff000000000000000000000000000000000000000083541617825573ffffffffffffffffffffffffffffffffffffffff600154167fed8889f560326eb138920d842192f0eb3dd22b4f139c87a2c57538e05bae12788380a380f35b6004827fdad89dca000000000000000000000000000000000000000000000000000000008152fd5b503461013c5760807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261013c57610264612af3565b67ffffffffffffffff602435116112d45760a07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc602435360301126112d4576102ab612b6c565b60025460ff8160a01c166112ac577fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16740100000000000000000000000000000000000000001760025567ffffffffffffffff8216835260066020526040832073ffffffffffffffffffffffffffffffffffffffff82161561128457805460ff8160401c16611216575b60481c73ffffffffffffffffffffffffffffffffffffffff1633036111ee5773ffffffffffffffffffffffffffffffffffffffff6003541680611181575b50805467ffffffffffffffff811667ffffffffffffffff8114611154579067ffffffffffffffff60017fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000009493011692839116179055604051906103d5826129bd565b84825267ffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016602083015267ffffffffffffffff841660408301526060820152836080820152610436602480350160243560040161308a565b6104456004602435018061308a565b610453606460243501612f96565b936104686044602435016024356004016130db565b9490507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe06104ae61049887612b24565b966104a66040519889612a12565b808852612b24565b018a5b81811061113d5750506105029392916104f691604051986104d18a6129d9565b895273ffffffffffffffffffffffffffffffffffffffff8a1660208a0152369161315b565b6040870152369161315b565b606084015273ffffffffffffffffffffffffffffffffffffffff60209260405161052c8582612a12565b88815260808601521660a084015260443560c08401528560e08401526101008301526105626044602435016024356004016130db565b61056e81969296612b24565b9061057c6040519283612a12565b8082528382018097368360061b8201116110b45780915b8360061b820183106111025750505050865b6105b96044602435016024356004016130db565b905081101561093f576105cc8183613047565b516105e66105df6004602435018061308a565b369161315b565b906105ef61312f565b5085810151156109175773ffffffffffffffffffffffffffffffffffffffff61061a81835116612e7d565b16918215801561086d575b61082a57908a6106d4949392888873ffffffffffffffffffffffffffffffffffffffff8d8387015182808951169260405197610660896129bd565b885267ffffffffffffffff87890196168652816040890191168152606088019283526080880193845267ffffffffffffffff6040519d8e998a997f9a4575b9000000000000000000000000000000000000000000000000000000008b5260048b01525160a060248b015260c48a0190612ab0565b965116604488015251166064860152516084850152511660a4830152038183865af193841561081f578b94610769575b50610762918484928980600198519301519101519160405193610726856129bd565b84528a840152604083015260608201526040516107438982612a12565b8c815260808201526101008901519061075c8383613047565b52613047565b50016105a5565b93503d91828c863e61077b8386612a12565b8785848101031261081b5784519167ffffffffffffffff83116108175760408387018588010312610817576040516107b2816129f6565b8387015167ffffffffffffffff8111610813576107d69086890190868a0101613192565b81528984880101519467ffffffffffffffff861161081357876107629688966108059360019b01920101613192565b8a8201529550915091610704565b8e80fd5b8c80fd5b8b80fd5b6040513d8d823e3d90fd5b60248b73ffffffffffffffffffffffffffffffffffffffff8451167fbf16aab6000000000000000000000000000000000000000000000000000000008252600452fd5b506040517f01ffc9a70000000000000000000000000000000000000000000000000000000081527faff2afbf0000000000000000000000000000000000000000000000000000000060048201528781602481875afa90811561090c578c916108d7575b5015610625565b90508781813d8311610905575b6108ee8183612a12565b8101031261081b576108ff90612c2b565b386108d0565b503d6108e4565b6040513d8e823e3d90fd5b60048a7f5cf04449000000000000000000000000000000000000000000000000000000008152fd5b50867f430d138c00000000000000000000000000000000000000000000000000000000839282979873ffffffffffffffffffffffffffffffffffffffff600254169187610a2f610993606460243501612f96565b6109ff8c61010073ffffffffffffffffffffffffffffffffffffffff6109c360846024350160243560040161308a565b92909301519467ffffffffffffffff6040519e8f9d8e521660048d01521660248b015260443560448b015260c060648b015260c48a0191612c88565b907ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc8883030160848901526131d4565b917ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc8684030160a48701525191828152019190855b898282106110c7575050505082809103915afa9586156110bc5785869087938899610faa575b5060e087015215610eb85750845b67ffffffffffffffff6080865101911690526080840152835b61010084015151811015610ae75780610acc60019288613047565b516080610ade83610100890151613047565b51015201610ab1565b5090926060610100604051610afb816129d9565b610b03612fb7565b8152838782015282604082015282808201528260808201528360a08201528360c08201528360e08201520152604051848101907f130ac867e79e2789f923760a88743d292acdf7002139a588206e2260f73f7321825267ffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016604082015267ffffffffffffffff8416606082015230608082015260808152610bae60a082612a12565b51902073ffffffffffffffffffffffffffffffffffffffff602085015116845167ffffffffffffffff6080816060840151169201511673ffffffffffffffffffffffffffffffffffffffff60a08801511660c088015191604051938a850195865260408501526060840152608083015260a082015260a08152610c3260c082612a12565b51902060608501518681519101206040860151878151910120610100870151604051610c9881610c6c8c8201948d865260408301906131d4565b037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08101835282612a12565b51902091608088015189815191012093604051958a870197885260408701526060860152608085015260a084015260c083015260e082015260e08152610ce061010082612a12565b51902082515267ffffffffffffffff60608351015116907f192442a2b2adb6a7948f097023cb6b57d29d3a7a5dd33e6666d33c39cc456f3260405185815267ffffffffffffffff608086518051898501528289820151166040850152826040820151166060850152826060820151168285015201511660a082015273ffffffffffffffffffffffffffffffffffffffff60208601511660c082015280610e83610e0a610dd5610da060408a01516101a060e08701526101c0860190612ab0565b60608a01517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe086830301610100870152612ab0565b60808901517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe085830301610120860152612ab0565b73ffffffffffffffffffffffffffffffffffffffff60a08901511661014084015260c088015161016084015260e088015161018084015267ffffffffffffffff610100890151967fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0858403016101a086015216956131d4565b0390a37fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff600254166002555151604051908152f35b73ffffffffffffffffffffffffffffffffffffffff604051917fea458c0c00000000000000000000000000000000000000000000000000000000835267ffffffffffffffff8516600484015216602482015283816044818973ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165af1908115610f9f578691610f5d575b50610a98565b90508381813d8311610f98575b610f748183612a12565b81010312610f94575167ffffffffffffffff81168103610f945787610f57565b8580fd5b503d610f6a565b6040513d88823e3d90fd5b9850505090503d908186883e610fc08288612a12565b6080878381010312610f9457865196610fda858201612c2b565b97604082015167ffffffffffffffff81116110b857610ffe90858401908401613192565b9160608101519467ffffffffffffffff86116110b457808201601f8784010112156110b457858201519161103183612b24565b9661103f6040519889612a12565b838852898801928083018b8660051b848601010111610817578a82840101935b8b8660051b8486010101851061107f575050505050509790929789610a8a565b845167ffffffffffffffff8111610813578c80926110a7829383878a0191898b010101613192565b815201950194905061105f565b8980fd5b8880fd5b6040513d87823e3d90fd5b8351805173ffffffffffffffffffffffffffffffffffffffff168652810151818601528c975088965060409094019390920191600101610a64565b6040833603126111395786604091825161111b816129f6565b61112486612b8f565b81528286013583820152815201920191610593565b8a80fd5b60209061114861312f565b82828a010152016104b1565b6024867f4e487b710000000000000000000000000000000000000000000000000000000081526011600452fd5b803b156111ea578460405180927fe0a0e5060000000000000000000000000000000000000000000000000000000082528183816111c76024356004018b60048401612cc7565b03925af180156110bc571561037357846111e391959295612a12565b9238610373565b8480fd5b6004847f1c0a3529000000000000000000000000000000000000000000000000000000008152fd5b73ffffffffffffffffffffffffffffffffffffffff831660009081526002830160205260409020546103355760248573ffffffffffffffffffffffffffffffffffffffff857fd0d2597600000000000000000000000000000000000000000000000000000000835216600452fd5b6004847fa4ec7479000000000000000000000000000000000000000000000000000000008152fd5b6004847f3ee5aeb5000000000000000000000000000000000000000000000000000000008152fd5b5080fd5b503461013c5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261013c5760043567ffffffffffffffff81116112d457611328903690600401612bb0565b73ffffffffffffffffffffffffffffffffffffffff60015416330361165d575b919081907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8181360301915b84811015611659578060051b820135838112156111ea578201916080833603126111ea57604051946113a486612972565b6113ad84612b0f565b86526113bb60208501612b3c565b9660208701978852604085013567ffffffffffffffff8111611655576113e49036908701612fe2565b9460408801958652606081013567ffffffffffffffff81116116515761140c91369101612fe2565b60608801908152875167ffffffffffffffff1683526006602052604080842099518a547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff169015159182901b68ff000000000000000016178a55909590815151611529575b5095976001019550815b855180518210156114ba57906114b373ffffffffffffffffffffffffffffffffffffffff6114ab83600195613047565b51168961339e565b500161147b565b505095909694506001929193519081516114da575b505001939293611373565b61151f67ffffffffffffffff7fc237ec1921f855ccd5e9a5af9733f2d58943a5a8501ec5988e305d7a4d42158692511692604051918291602083526020830190612be1565b0390a238806114cf565b9893959296919094979860001461161a57600184019591875b865180518210156115bf5761156c8273ffffffffffffffffffffffffffffffffffffffff92613047565b5116801561158857906115816001928a61330d565b5001611542565b60248a67ffffffffffffffff8e51167f463258ff000000000000000000000000000000000000000000000000000000008252600452fd5b50509692955090929796937f330939f6eafe8bb516716892fe962ff19770570838686e6579dbc1cc51fc328161161067ffffffffffffffff8a51169251604051918291602083526020830190612be1565b0390a23880611471565b60248767ffffffffffffffff8b51167f463258ff000000000000000000000000000000000000000000000000000000008252600452fd5b8380fd5b8280fd5b8380f35b73ffffffffffffffffffffffffffffffffffffffff60055416330315611348576004837f905d7d9b000000000000000000000000000000000000000000000000000000008152fd5b503461013c5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261013c5767ffffffffffffffff6116e6612af3565b16808252600660205260ff604083205460401c16908252600660205260016040832001916040518093849160208254918281520191845260208420935b81811061175a57505061173892500383612a12565b61175660405192839215158352604060208401526040830190612be1565b0390f35b8454835260019485019487945060209093019201611723565b503461013c5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261013c5767ffffffffffffffff6117b4612af3565b1681526006602052600167ffffffffffffffff604083205416019067ffffffffffffffff82116117f35760208267ffffffffffffffff60405191168152f35b807f4e487b7100000000000000000000000000000000000000000000000000000000602492526011600452fd5b503461013c57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261013c57602073ffffffffffffffffffffffffffffffffffffffff60015416604051908152f35b503461013c57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261013c57805473ffffffffffffffffffffffffffffffffffffffff8116330361192f577fffffffffffffffffffffffff000000000000000000000000000000000000000060015491338284161760015516825573ffffffffffffffffffffffffffffffffffffffff3391167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08380a380f35b6004827f02b543c6000000000000000000000000000000000000000000000000000000008152fd5b503461013c57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261013c5761198e612fb7565b5060a060405161199d816129bd565b60ff60025473ffffffffffffffffffffffffffffffffffffffff81168352831c161515602082015273ffffffffffffffffffffffffffffffffffffffff60035416604082015273ffffffffffffffffffffffffffffffffffffffff60045416606082015273ffffffffffffffffffffffffffffffffffffffff600554166080820152611a72604051809273ffffffffffffffffffffffffffffffffffffffff60808092828151168552602081015115156020860152826040820151166040860152826060820151166060860152015116910152565bf35b503461013c5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261013c57604060609167ffffffffffffffff611aba612af3565b1681526006602052205473ffffffffffffffffffffffffffffffffffffffff6040519167ffffffffffffffff8116835260ff8160401c161515602084015260481c166040820152f35b503461013c5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261013c5760043567ffffffffffffffff81116112d457611b53903690600401612bb0565b9073ffffffffffffffffffffffffffffffffffffffff6004541690835b83811015611de75773ffffffffffffffffffffffffffffffffffffffff611b9b8260051b8401612f96565b1690604051917f70a08231000000000000000000000000000000000000000000000000000000008352306004840152602083602481845afa928315611ddc578793611da5575b5082611bf3575b506001915001611b70565b8460405193611cae60208601957fa9059cbb00000000000000000000000000000000000000000000000000000000875283602482015282604482015260448152611c3e606482612a12565b8a80604098895193611c508b86612a12565b602085527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65646020860152519082895af13d15611d9d573d90611c9182612a53565b91611c9e8a519384612a12565b82523d8d602084013e5b86613530565b805180611cea575b505060207f508d7d183612c18fc339b42618912b9fa3239f631dd7ec0671f950200a0fa66e9160019651908152a338611be8565b8192949596935090602091810103126110b8576020611d099101612c2b565b15611d1a5792919085903880611cb6565b608490517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f742073756363656564000000000000000000000000000000000000000000006064820152fd5b606090611ca8565b9092506020813d8211611dd4575b81611dc060209383612a12565b81010312611dd057519138611be1565b8680fd5b3d9150611db3565b6040513d89823e3d90fd5b8480f35b503461013c5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261013c57611e23612af3565b506024359073ffffffffffffffffffffffffffffffffffffffff8216820361013c576020611e5083612e7d565b73ffffffffffffffffffffffffffffffffffffffff60405191168152f35b503461013c5760a07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261013c57604051611eaa816129bd565b611eb2612b49565b81526024358015158103611655576020820190815260443573ffffffffffffffffffffffffffffffffffffffff811681036116515760408301908152611ef6612b6c565b90606084019182526084359273ffffffffffffffffffffffffffffffffffffffff84168403610f945760808501938452611f2e6132aa565b73ffffffffffffffffffffffffffffffffffffffff855116158015612255575b801561224b575b612223579273ffffffffffffffffffffffffffffffffffffffff859381809461012097827fc7372d2d886367d7bb1b0e0708a5436f2c91d6963de210eb2dc1ec2ecd6d21f19a51167fffffffffffffffffffffffff000000000000000000000000000000000000000060025416176002555115157fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff74ff00000000000000000000000000000000000000006002549260a01b1691161760025551167fffffffffffffffffffffffff0000000000000000000000000000000000000000600354161760035551167fffffffffffffffffffffffff0000000000000000000000000000000000000000600454161760045551167fffffffffffffffffffffffff0000000000000000000000000000000000000000600554161760055561221f6040519161209f83612972565b67ffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016835273ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016602084015273ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016604084015273ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001660608401526121cf604051809473ffffffffffffffffffffffffffffffffffffffff6060809267ffffffffffffffff8151168552826020820151166020860152826040820151166040860152015116910152565b608083019073ffffffffffffffffffffffffffffffffffffffff60808092828151168552602081015115156020860152826040820151166040860152826060820151166060860152015116910152565ba180f35b6004867f35be3ac8000000000000000000000000000000000000000000000000000000008152fd5b5080511515611f55565b5073ffffffffffffffffffffffffffffffffffffffff83511615611f4e565b503461013c5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261013c576004359067ffffffffffffffff821161013c573660238301121561013c5781600401356122d081612b24565b926122de6040519485612a12565b818452602460606020860193028201019036821161165157602401915b81831061247c5750505061230d6132aa565b805b8251811015612478576123228184613047565b5167ffffffffffffffff6123368386613047565b51511690811561244c57907fd5ad72bc37dc7a80a8b9b9df20500046fd7341adb1be2258a540466fdd7dcef5606060019493838752600660205260ff6040882061240d604060208501519483547fffffff0000000000000000000000000000000000000000ffffffffffffffffff7cffffffffffffffffffffffffffffffffffffffff0000000000000000008860481b1691161784550151151582907fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff68ff0000000000000000835492151560401b169116179055565b5473ffffffffffffffffffffffffffffffffffffffff6040519367ffffffffffffffff8316855216602084015260401c1615156040820152a20161230f565b602484837fc35aa79d000000000000000000000000000000000000000000000000000000008252600452fd5b5080f35b606083360312611651576040516060810181811067ffffffffffffffff8211176124f7576040526124ac84612b0f565b8152602084013573ffffffffffffffffffffffffffffffffffffffff81168103610f945791816060936020809401526124e760408701612b3c565b60408201528152019201916122fb565b6024867f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b503461013c5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261013c5761255c612af3565b60243567ffffffffffffffff81116116555760a07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc8236030112611655576040517f2cbc26bb00000000000000000000000000000000000000000000000000000000815277ffffffffffffffff000000000000000000000000000000008360801b16600482015260208160248173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa90811561275d578491612723575b506126ed5761268f9160209173ffffffffffffffffffffffffffffffffffffffff60025416906040518095819482937fd8694ccd0000000000000000000000000000000000000000000000000000000084526004019060048401612cc7565b03915afa9081156126e25782916126ac575b602082604051908152f35b90506020813d6020116126da575b816126c760209383612a12565b810103126112d4576020915051386126a1565b3d91506126ba565b6040513d84823e3d90fd5b60248367ffffffffffffffff847ffdbd6a7200000000000000000000000000000000000000000000000000000000835216600452fd5b90506020813d602011612755575b8161273e60209383612a12565b810103126116515761274f90612c2b565b38612630565b3d9150612731565b6040513d86823e3d90fd5b503461013c57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261013c57506117566040516127a9604082612a12565b601081527f4f6e52616d7020312e362e302d646576000000000000000000000000000000006020820152604051918291602083526020830190612ab0565b9050346112d457817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126112d45780612823606092612972565b8281528260208201528260408201520152608060405161284281612972565b67ffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016815273ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016602082015273ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016604082015273ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000166060820152611a72604051809273ffffffffffffffffffffffffffffffffffffffff6060809267ffffffffffffffff8151168552826020820151166020860152826040820151166040860152015116910152565b6080810190811067ffffffffffffffff82111761298e57604052565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60a0810190811067ffffffffffffffff82111761298e57604052565b610120810190811067ffffffffffffffff82111761298e57604052565b6040810190811067ffffffffffffffff82111761298e57604052565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff82111761298e57604052565b67ffffffffffffffff811161298e57601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b60005b838110612aa05750506000910152565b8181015183820152602001612a90565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f602093612aec81518092818752878088019101612a8d565b0116010190565b6004359067ffffffffffffffff82168203612b0a57565b600080fd5b359067ffffffffffffffff82168203612b0a57565b67ffffffffffffffff811161298e5760051b60200190565b35908115158203612b0a57565b6004359073ffffffffffffffffffffffffffffffffffffffff82168203612b0a57565b6064359073ffffffffffffffffffffffffffffffffffffffff82168203612b0a57565b359073ffffffffffffffffffffffffffffffffffffffff82168203612b0a57565b9181601f84011215612b0a5782359167ffffffffffffffff8311612b0a576020808501948460051b010111612b0a57565b906020808351928381520192019060005b818110612bff5750505090565b825173ffffffffffffffffffffffffffffffffffffffff16845260209384019390920191600101612bf2565b51908115158203612b0a57565b90357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe182360301811215612b0a57016020813591019167ffffffffffffffff8211612b0a578136038313612b0a57565b601f82602094937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0938186528686013760008582860101520116010190565b9067ffffffffffffffff9093929316815260406020820152612d3d612d00612cef8580612c38565b60a0604086015260e0850191612c88565b612d0d6020860186612c38565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0858403016060860152612c88565b9060408401357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe185360301811215612b0a5784016020813591019267ffffffffffffffff8211612b0a578160061b36038413612b0a578281037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0016080840152818152602001929060005b818110612e3e57505050612e0b8473ffffffffffffffffffffffffffffffffffffffff612dfb6060612e3b979801612b8f565b1660a08401526080810190612c38565b9160c07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc082860301910152612c88565b90565b90919360408060019273ffffffffffffffffffffffffffffffffffffffff612e6589612b8f565b16815260208881013590820152019501929101612dc8565b73ffffffffffffffffffffffffffffffffffffffff604051917fbbe4f6db00000000000000000000000000000000000000000000000000000000835216600482015260208160248173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa908115612f8a57600091612f27575b5073ffffffffffffffffffffffffffffffffffffffff1690565b6020813d602011612f82575b81612f4060209383612a12565b810103126112d457519073ffffffffffffffffffffffffffffffffffffffff8216820361013c575073ffffffffffffffffffffffffffffffffffffffff612f0d565b3d9150612f33565b6040513d6000823e3d90fd5b3573ffffffffffffffffffffffffffffffffffffffff81168103612b0a5790565b60405190612fc4826129bd565b60006080838281528260208201528260408201528260608201520152565b9080601f83011215612b0a578135612ff981612b24565b926130076040519485612a12565b81845260208085019260051b820101928311612b0a57602001905b82821061302f5750505090565b6020809161303c84612b8f565b815201910190613022565b805182101561305b5760209160051b010190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9035907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe181360301821215612b0a570180359067ffffffffffffffff8211612b0a57602001918136038313612b0a57565b9035907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe181360301821215612b0a570180359067ffffffffffffffff8211612b0a57602001918160061b36038313612b0a57565b6040519061313c826129bd565b6060608083600081528260208201528260408201526000838201520152565b92919261316782612a53565b916131756040519384612a12565b829481845281830111612b0a578281602093846000960137010152565b81601f82011215612b0a5780516131a881612a53565b926131b66040519485612a12565b81845260208284010111612b0a57612e3b9160208085019101612a8d565b9080602083519182815201916020808360051b8301019401926000915b83831061320057505050505090565b909192939460208061329b837fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0866001960301875289519073ffffffffffffffffffffffffffffffffffffffff8251168152608061328061326e8685015160a08886015260a0850190612ab0565b60408501518482036040860152612ab0565b92606081015160608401520151906080818403910152612ab0565b970193019301919392906131f1565b73ffffffffffffffffffffffffffffffffffffffff6001541633036132cb57565b7f2b5c74de0000000000000000000000000000000000000000000000000000000060005260046000fd5b805482101561305b5760005260206000200190600090565b6000828152600182016020526040902054613397578054906801000000000000000082101561298e578261338061334b8460018096018555846132f5565b81939154907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9060031b92831b921b19161790565b905580549260005201602052604060002055600190565b5050600090565b9060018201918160005282602052604060002054801515600014613527577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81018181116134f8578254907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82019182116134f8578181036134c1575b50505080548015613492577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff019061345382826132f5565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82549160031b1b191690555560005260205260006040812055600190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b6134e16134d161334b93866132f5565b90549060031b1c928392866132f5565b90556000528360205260406000205538808061341b565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b50505050600090565b919290156135ab5750815115613544575090565b3b1561354d5790565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152fd5b8251909150156135be5750805190602001fd5b6135fc906040519182917f08c379a0000000000000000000000000000000000000000000000000000000008352602060048401526024830190612ab0565b0390fdfea164736f6c634300081a000a", } var OnRampABI = OnRampMetaData.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 0fbeeaca695..e8b5c75a4d9 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 @@ -15,8 +15,8 @@ mock_usdc_token_transmitter: ../../../contracts/solc/ccip/MockE2EUSDCTransmitter multi_aggregate_rate_limiter: ../../../contracts/solc/ccip/MultiAggregateRateLimiter/MultiAggregateRateLimiter.sol/MultiAggregateRateLimiter.abi.json ../../../contracts/solc/ccip/MultiAggregateRateLimiter/MultiAggregateRateLimiter.sol/MultiAggregateRateLimiter.bin d462b10c87ad74b73502c3c97a7fc53771b915adb9a0fbee781e744f3827d179 multi_ocr3_helper: ../../../contracts/solc/ccip/MultiOCR3Helper/MultiOCR3Helper.sol/MultiOCR3Helper.abi.json ../../../contracts/solc/ccip/MultiOCR3Helper/MultiOCR3Helper.sol/MultiOCR3Helper.bin 6fa79484ac09342282df342055494853521ea5332adaee0b709c6e21bcd17869 nonce_manager: ../../../contracts/solc/ccip/NonceManager/NonceManager.sol/NonceManager.abi.json ../../../contracts/solc/ccip/NonceManager/NonceManager.sol/NonceManager.bin ac76c64749ce07dd2ec1b9346d3401dcc5538253e516aecc4767c4308817ea59 -offramp: ../../../contracts/solc/ccip/OffRamp/OffRamp.sol/OffRamp.abi.json ../../../contracts/solc/ccip/OffRamp/OffRamp.sol/OffRamp.bin ed2373a9d755e233e1c1d2e5a89b071553902c2e85ddc9d9e5afec37387d576f -onramp: ../../../contracts/solc/ccip/OnRamp/OnRamp.sol/OnRamp.abi.json ../../../contracts/solc/ccip/OnRamp/OnRamp.sol/OnRamp.bin 3a6de9ac3df3d8a084757f91edf87e986880ed0247166f68c0dbf39c2346b418 +offramp: ../../../contracts/solc/ccip/OffRamp/OffRamp.sol/OffRamp.abi.json ../../../contracts/solc/ccip/OffRamp/OffRamp.sol/OffRamp.bin 4d6f96c46798e09a7cfebd5f568f4ace69f3b9edc5c02fd31e7d646f2c4fdc48 +onramp: ../../../contracts/solc/ccip/OnRamp/OnRamp.sol/OnRamp.abi.json ../../../contracts/solc/ccip/OnRamp/OnRamp.sol/OnRamp.bin 13e18920ef6c7e7d9b8f983b5031e70a60cc440e217d66600b6835277082690c ping_pong_demo: ../../../contracts/solc/ccip/PingPongDemo/PingPongDemo.sol/PingPongDemo.abi.json ../../../contracts/solc/ccip/PingPongDemo/PingPongDemo.sol/PingPongDemo.bin c87b6e1a8961a9dd2fab1eced0df12d0c1ef47bb1b2511f372b7e33443a20683 registry_module_owner_custom: ../../../contracts/solc/ccip/RegistryModuleOwnerCustom/RegistryModuleOwnerCustom.sol/RegistryModuleOwnerCustom.abi.json ../../../contracts/solc/ccip/RegistryModuleOwnerCustom/RegistryModuleOwnerCustom.sol/RegistryModuleOwnerCustom.bin ce04722cdea2e96d791e48c6a99f64559125d34cd24e19cfd5281892d2ed8ef0 report_codec: ../../../contracts/solc/ccip/ReportCodec/ReportCodec.sol/ReportCodec.abi.json ../../../contracts/solc/ccip/ReportCodec/ReportCodec.sol/ReportCodec.bin 5e66322fdcd40d601e1a55cfccfb9abe066b90297084d2db4f55dfe3ae7d0af2