From 6177ab92b707da784f35f610c39451bfdf9f136d Mon Sep 17 00:00:00 2001 From: "app-token-issuer-infra-releng[bot]" <120227048+app-token-issuer-infra-releng[bot]@users.noreply.github.com> Date: Wed, 7 Aug 2024 15:17:16 +0000 Subject: [PATCH] Update gethwrappers --- .../ccip/generated/evm_2_evm_offramp/evm_2_evm_offramp.go | 2 +- .../generated-wrapper-dependency-versions-do-not-edit.txt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/core/gethwrappers/ccip/generated/evm_2_evm_offramp/evm_2_evm_offramp.go b/core/gethwrappers/ccip/generated/evm_2_evm_offramp/evm_2_evm_offramp.go index b6da21c690..63cbcbde71 100644 --- a/core/gethwrappers/ccip/generated/evm_2_evm_offramp/evm_2_evm_offramp.go +++ b/core/gethwrappers/ccip/generated/evm_2_evm_offramp/evm_2_evm_offramp.go @@ -110,7 +110,7 @@ type RateLimiterTokenBucket struct { var EVM2EVMOffRampMetaData = &bind.MetaData{ ABI: "[{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"commitStore\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"chainSelector\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"onRamp\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"prevOffRamp\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"rmnProxy\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tokenAdminRegistry\",\"type\":\"address\"}],\"internalType\":\"structEVM2EVMOffRamp.StaticConfig\",\"name\":\"staticConfig\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"bool\",\"name\":\"isEnabled\",\"type\":\"bool\"},{\"internalType\":\"uint128\",\"name\":\"capacity\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"rate\",\"type\":\"uint128\"}],\"internalType\":\"structRateLimiter.Config\",\"name\":\"rateLimiterConfig\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"capacity\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"requested\",\"type\":\"uint256\"}],\"name\":\"AggregateValueMaxCapacityExceeded\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"minWaitInSeconds\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"available\",\"type\":\"uint256\"}],\"name\":\"AggregateValueRateLimitReached\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"sequenceNumber\",\"type\":\"uint64\"}],\"name\":\"AlreadyExecuted\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"BucketOverfilled\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CanOnlySelfCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CommitStoreAlreadyInUse\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"expected\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"actual\",\"type\":\"bytes32\"}],\"name\":\"ConfigDigestMismatch\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CursedByRMN\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"messageId\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"sequenceNumber\",\"type\":\"uint64\"}],\"name\":\"DestinationGasAmountCountMismatch\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"EmptyReport\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"err\",\"type\":\"bytes\"}],\"name\":\"ExecutionError\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"expected\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"actual\",\"type\":\"uint256\"}],\"name\":\"ForkedChain\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"enumOCR2BaseNoChecks.InvalidConfigErrorType\",\"name\":\"errorType\",\"type\":\"uint8\"}],\"name\":\"InvalidConfig\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"expected\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"got\",\"type\":\"uint256\"}],\"name\":\"InvalidDataLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"destGasAmount\",\"type\":\"uint256\"}],\"name\":\"InvalidDestGasAmount\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"encodedAddress\",\"type\":\"bytes\"}],\"name\":\"InvalidEVMAddress\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"newLimit\",\"type\":\"uint256\"}],\"name\":\"InvalidManualExecutionGasLimit\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidMessageId\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"sequenceNumber\",\"type\":\"uint64\"},{\"internalType\":\"enumInternal.MessageExecutionState\",\"name\":\"newState\",\"type\":\"uint8\"}],\"name\":\"InvalidNewState\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"}],\"name\":\"InvalidSourceChain\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ManualExecutionGasLimitMismatch\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ManualExecutionNotYetEnabled\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"maxSize\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"actualSize\",\"type\":\"uint256\"}],\"name\":\"MessageTooLarge\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"notPool\",\"type\":\"address\"}],\"name\":\"NotACompatiblePool\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OnlyCallableByAdminOrOwner\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OracleCannotBeZeroAddress\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"PriceNotFoundForToken\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"err\",\"type\":\"bytes\"}],\"name\":\"ReceiverError\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"RootNotCommitted\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"sequenceNumber\",\"type\":\"uint64\"}],\"name\":\"TokenDataMismatch\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"err\",\"type\":\"bytes\"}],\"name\":\"TokenHandlingError\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"capacity\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"requested\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"tokenAddress\",\"type\":\"address\"}],\"name\":\"TokenMaxCapacityExceeded\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"minWaitInSeconds\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"available\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"tokenAddress\",\"type\":\"address\"}],\"name\":\"TokenRateLimitReached\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UnauthorizedTransmitter\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UnexpectedTokenData\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"sequenceNumber\",\"type\":\"uint64\"}],\"name\":\"UnsupportedNumberOfTokens\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"expected\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"actual\",\"type\":\"uint256\"}],\"name\":\"WrongMessageLength\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZeroAddressNotAllowed\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"}],\"name\":\"AdminSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"sequenceNumber\",\"type\":\"uint64\"}],\"name\":\"AlreadyAttempted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"components\":[{\"internalType\":\"bool\",\"name\":\"isEnabled\",\"type\":\"bool\"},{\"internalType\":\"uint128\",\"name\":\"capacity\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"rate\",\"type\":\"uint128\"}],\"indexed\":false,\"internalType\":\"structRateLimiter.Config\",\"name\":\"config\",\"type\":\"tuple\"}],\"name\":\"ConfigChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"commitStore\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"chainSelector\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"onRamp\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"prevOffRamp\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"rmnProxy\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tokenAdminRegistry\",\"type\":\"address\"}],\"indexed\":false,\"internalType\":\"structEVM2EVMOffRamp.StaticConfig\",\"name\":\"staticConfig\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint32\",\"name\":\"permissionLessExecutionThresholdSeconds\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"maxDataBytes\",\"type\":\"uint32\"},{\"internalType\":\"uint16\",\"name\":\"maxNumberOfTokensPerMsg\",\"type\":\"uint16\"},{\"internalType\":\"address\",\"name\":\"router\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"priceRegistry\",\"type\":\"address\"}],\"indexed\":false,\"internalType\":\"structEVM2EVMOffRamp.DynamicConfig\",\"name\":\"dynamicConfig\",\"type\":\"tuple\"}],\"name\":\"ConfigSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"previousConfigBlockNumber\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"configDigest\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"configCount\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"signers\",\"type\":\"address[]\"},{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"transmitters\",\"type\":\"address[]\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"f\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"onchainConfig\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"offchainConfigVersion\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"offchainConfig\",\"type\":\"bytes\"}],\"name\":\"ConfigSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"sequenceNumber\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"messageId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"enumInternal.MessageExecutionState\",\"name\":\"state\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"returnData\",\"type\":\"bytes\"}],\"name\":\"ExecutionStateChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"OwnershipTransferRequested\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"sequenceNumber\",\"type\":\"uint64\"}],\"name\":\"SkippedAlreadyExecutedMessage\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"SkippedIncorrectNonce\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"SkippedSenderWithPreviousRampMessageInflight\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"sourceToken\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"destToken\",\"type\":\"address\"}],\"name\":\"TokenAggregateRateLimitAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"sourceToken\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"destToken\",\"type\":\"address\"}],\"name\":\"TokenAggregateRateLimitRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokens\",\"type\":\"uint256\"}],\"name\":\"TokensConsumed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"configDigest\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"epoch\",\"type\":\"uint32\"}],\"name\":\"Transmitted\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"acceptOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"messageId\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"sender\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"structClient.EVMTokenAmount[]\",\"name\":\"destTokenAmounts\",\"type\":\"tuple[]\"}],\"internalType\":\"structClient.Any2EVMMessage\",\"name\":\"\",\"type\":\"tuple\"}],\"name\":\"ccipReceive\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"currentRateLimiterState\",\"outputs\":[{\"components\":[{\"internalType\":\"uint128\",\"name\":\"tokens\",\"type\":\"uint128\"},{\"internalType\":\"uint32\",\"name\":\"lastUpdated\",\"type\":\"uint32\"},{\"internalType\":\"bool\",\"name\":\"isEnabled\",\"type\":\"bool\"},{\"internalType\":\"uint128\",\"name\":\"capacity\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"rate\",\"type\":\"uint128\"}],\"internalType\":\"structRateLimiter.TokenBucket\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"sequenceNumber\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"gasLimit\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"strict\",\"type\":\"bool\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"feeToken\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"feeTokenAmount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"structClient.EVMTokenAmount[]\",\"name\":\"tokenAmounts\",\"type\":\"tuple[]\"},{\"internalType\":\"bytes[]\",\"name\":\"sourceTokenData\",\"type\":\"bytes[]\"},{\"internalType\":\"bytes32\",\"name\":\"messageId\",\"type\":\"bytes32\"}],\"internalType\":\"structInternal.EVM2EVMMessage\",\"name\":\"message\",\"type\":\"tuple\"},{\"internalType\":\"bytes[]\",\"name\":\"offchainTokenData\",\"type\":\"bytes[]\"},{\"internalType\":\"uint256[]\",\"name\":\"destGasAmounts\",\"type\":\"uint256[]\"}],\"name\":\"executeSingleMessage\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getAllRateLimitTokens\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"sourceTokens\",\"type\":\"address[]\"},{\"internalType\":\"address[]\",\"name\":\"destTokens\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getDynamicConfig\",\"outputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"permissionLessExecutionThresholdSeconds\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"maxDataBytes\",\"type\":\"uint32\"},{\"internalType\":\"uint16\",\"name\":\"maxNumberOfTokensPerMsg\",\"type\":\"uint16\"},{\"internalType\":\"address\",\"name\":\"router\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"priceRegistry\",\"type\":\"address\"}],\"internalType\":\"structEVM2EVMOffRamp.DynamicConfig\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"sequenceNumber\",\"type\":\"uint64\"}],\"name\":\"getExecutionState\",\"outputs\":[{\"internalType\":\"enumInternal.MessageExecutionState\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"getSenderNonce\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getStaticConfig\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"commitStore\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"chainSelector\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"onRamp\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"prevOffRamp\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"rmnProxy\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tokenAdminRegistry\",\"type\":\"address\"}],\"internalType\":\"structEVM2EVMOffRamp.StaticConfig\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getTokenLimitAdmin\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getTransmitters\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"latestConfigDetails\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"configCount\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"blockNumber\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"configDigest\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"latestConfigDigestAndEpoch\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"scanLogs\",\"type\":\"bool\"},{\"internalType\":\"bytes32\",\"name\":\"configDigest\",\"type\":\"bytes32\"},{\"internalType\":\"uint32\",\"name\":\"epoch\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"sourceChainSelector\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"sequenceNumber\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"gasLimit\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"strict\",\"type\":\"bool\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"feeToken\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"feeTokenAmount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"structClient.EVMTokenAmount[]\",\"name\":\"tokenAmounts\",\"type\":\"tuple[]\"},{\"internalType\":\"bytes[]\",\"name\":\"sourceTokenData\",\"type\":\"bytes[]\"},{\"internalType\":\"bytes32\",\"name\":\"messageId\",\"type\":\"bytes32\"}],\"internalType\":\"structInternal.EVM2EVMMessage[]\",\"name\":\"messages\",\"type\":\"tuple[]\"},{\"internalType\":\"bytes[][]\",\"name\":\"offchainTokenData\",\"type\":\"bytes[][]\"},{\"internalType\":\"bytes32[]\",\"name\":\"proofs\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"proofFlagBits\",\"type\":\"uint256\"}],\"internalType\":\"structInternal.ExecutionReport\",\"name\":\"report\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"receiverExecutionGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256[]\",\"name\":\"destGasAmounts\",\"type\":\"uint256[]\"}],\"internalType\":\"structEVM2EVMOffRamp.GasLimitOverride[]\",\"name\":\"gasLimitOverrides\",\"type\":\"tuple[]\"}],\"name\":\"manuallyExecute\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"}],\"name\":\"setAdmin\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"signers\",\"type\":\"address[]\"},{\"internalType\":\"address[]\",\"name\":\"transmitters\",\"type\":\"address[]\"},{\"internalType\":\"uint8\",\"name\":\"f\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"onchainConfig\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"offchainConfigVersion\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"offchainConfig\",\"type\":\"bytes\"}],\"name\":\"setOCR2Config\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bool\",\"name\":\"isEnabled\",\"type\":\"bool\"},{\"internalType\":\"uint128\",\"name\":\"capacity\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"rate\",\"type\":\"uint128\"}],\"internalType\":\"structRateLimiter.Config\",\"name\":\"config\",\"type\":\"tuple\"}],\"name\":\"setRateLimiterConfig\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32[3]\",\"name\":\"reportContext\",\"type\":\"bytes32[3]\"},{\"internalType\":\"bytes\",\"name\":\"report\",\"type\":\"bytes\"},{\"internalType\":\"bytes32[]\",\"name\":\"rs\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes32[]\",\"name\":\"ss\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"transmit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"typeAndVersion\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"sourceToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"destToken\",\"type\":\"address\"}],\"internalType\":\"structEVM2EVMOffRamp.RateLimitToken[]\",\"name\":\"removes\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"sourceToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"destToken\",\"type\":\"address\"}],\"internalType\":\"structEVM2EVMOffRamp.RateLimitToken[]\",\"name\":\"adds\",\"type\":\"tuple[]\"}],\"name\":\"updateRateLimitTokens\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]", - Bin: "0x6101a06040523480156200001257600080fd5b5060405162006169380380620061698339810160408190526200003591620004ec565b8033806000816200008d5760405162461bcd60e51b815260206004820152601860248201527f43616e6e6f7420736574206f776e657220746f207a65726f000000000000000060448201526064015b60405180910390fd5b600080546001600160a01b0319166001600160a01b0384811691909117909155811615620000c057620000c081620002ca565b50506040805160a081018252602084810180516001600160801b039081168085524263ffffffff169385018490528751151585870181905292518216606080870182905298909601519091166080948501819052600380546001600160a01b031916909217600160801b9485021760ff60a01b1916600160a01b90930292909217905502909117600455469052508201516001600160a01b031615806200016f575081516001600160a01b0316155b8062000186575060c08201516001600160a01b0316155b15620001a5576040516342bcdf7f60e11b815260040160405180910390fd5b81600001516001600160a01b0316634120fccd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001e8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200020e9190620005b5565b6001600160401b03166001146200023857604051636fc2a20760e11b815260040160405180910390fd5b81516001600160a01b0390811660a090815260408401516001600160401b0390811660c0908152602086015190911660e05260608501518316610100526080850151831661014052908401518216610160528301511661018052620002bd7f8acd72527118c8324937b1a42e02cd246697c3b633f1742f3cae11de233722b362000375565b6101205250620005da9050565b336001600160a01b03821603620003245760405162461bcd60e51b815260206004820152601760248201527f43616e6e6f74207472616e7366657220746f2073656c66000000000000000000604482015260640162000084565b600180546001600160a01b0319166001600160a01b0383811691821790925560008054604051929316917fed8889f560326eb138920d842192f0eb3dd22b4f139c87a2c57538e05bae12789190a350565b60008160c05160e05161010051604051602001620003bf94939291909384526001600160401b039283166020850152911660408301526001600160a01b0316606082015260800190565b604051602081830303815290604052805190602001209050919050565b60405160e081016001600160401b03811182821017156200040d57634e487b7160e01b600052604160045260246000fd5b60405290565b80516001600160a01b03811681146200042b57600080fd5b919050565b80516001600160401b03811681146200042b57600080fd5b80516001600160801b03811681146200042b57600080fd5b6000606082840312156200047357600080fd5b604051606081016001600160401b0381118282101715620004a457634e487b7160e01b600052604160045260246000fd5b806040525080915082518015158114620004bd57600080fd5b8152620004cd6020840162000448565b6020820152620004e06040840162000448565b60408201525092915050565b6000808284036101408112156200050257600080fd5b60e08112156200051157600080fd5b506200051c620003dc565b620005278462000413565b8152620005376020850162000430565b60208201526200054a6040850162000430565b60408201526200055d6060850162000413565b6060820152620005706080850162000413565b60808201526200058360a0850162000413565b60a08201526200059660c0850162000413565b60c08201529150620005ac8460e0850162000460565b90509250929050565b600060208284031215620005c857600080fd5b620005d38262000430565b9392505050565b60805160a05160c05160e0516101005161012051610140516101605161018051615aa0620006c9600039600081816102ec01528181611c4f0152612e3e0152600081816102bd01528181611c27015261210901526000818161028e015281816110300152818161109501528181611bfd0152818161268601526126f0015260006122a801526000818161025f0152611bd30152600081816101ff0152611b7701526000818161022f01528181611bab015281816120c601528181612f4f01526135fa0152600081816101d001528181611b520152612388015260008181612020015261206c0152615aa06000f3fe608060405234801561001057600080fd5b50600436106101825760003560e01c806381ff7048116100d8578063afcb95d71161008c578063c92b283211610066578063c92b2832146105f3578063f077b59214610606578063f2fde38b1461061c57600080fd5b8063afcb95d7146105ad578063b1dc65a4146105cd578063b1fc6515146105e057600080fd5b8063856c8247116100bd578063856c82471461055d578063873504d7146105895780638da5cb5b1461059c57600080fd5b806381ff70481461051f57806385572ffb1461054f57600080fd5b8063546719cd1161013a578063704b6c0211610114578063704b6c02146104615780637437ff9f1461047457806379ba50971461051757600080fd5b8063546719cd146103c3578063599f643114610427578063666cab8d1461044c57600080fd5b8063181f5a771161016b578063181f5a77146103525780631ef381741461039b57806330c2fd44146103b057600080fd5b806306285c6914610187578063142a98fc14610332575b600080fd5b61031c6040805160e081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c08101919091526040518060e001604052807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031681526020017f000000000000000000000000000000000000000000000000000000000000000067ffffffffffffffff1681526020017f000000000000000000000000000000000000000000000000000000000000000067ffffffffffffffff1681526020017f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031681526020017f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031681526020017f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031681526020017f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316815250905090565b604051610329919061414b565b60405180910390f35b6103456103403660046141e1565b61062f565b6040516103299190614241565b61038e6040518060400160405280601881526020017f45564d3245564d4f666652616d7020312e352e302d646576000000000000000081525081565b604051610329919061429f565b6103ae6103a93660046144bd565b6106aa565b005b6103ae6103be36600461483f565b610a9e565b6103cb610d41565b604051610329919081516fffffffffffffffffffffffffffffffff908116825260208084015163ffffffff1690830152604080840151151590830152606080840151821690830152608092830151169181019190915260a00190565b6002546001600160a01b03165b6040516001600160a01b039091168152602001610329565b610454610df6565b604051610329919061490c565b6103ae61046f36600461491f565b610e58565b61050a6040805160a081018252600080825260208201819052918101829052606081018290526080810191909152506040805160a081018252600a5463ffffffff8082168352640100000000820416602083015268010000000000000000810461ffff16928201929092526a01000000000000000000009091046001600160a01b039081166060830152600b5416608082015290565b604051610329919061493c565b6103ae610f21565b6007546005546040805163ffffffff80851682526401000000009094049093166020840152820152606001610329565b6103ae610182366004614992565b61057061056b36600461491f565b611004565b60405167ffffffffffffffff9091168152602001610329565b6103ae610597366004614a5e565b611107565b6000546001600160a01b0316610434565b604080516001815260006020820181905291810191909152606001610329565b6103ae6105db366004614b07565b6112da565b6103ae6105ee366004614d7a565b6114e5565b6103ae610601366004614eac565b6117cc565b61060e611837565b604051610329929190614f1a565b6103ae61062a36600461491f565b61195d565b600061063d60016004614f6e565b600261064a608085614fb0565b67ffffffffffffffff1661065e9190614fd7565b6010600061066d608087614fee565b67ffffffffffffffff1667ffffffffffffffff16815260200190815260200160002054901c1660038111156106a4576106a46141fe565b92915050565b84518460ff16601f8211156106f75760016040517f367f56a20000000000000000000000000000000000000000000000000000000081526004016106ee9190615015565b60405180910390fd5b806000036107345760006040517f367f56a20000000000000000000000000000000000000000000000000000000081526004016106ee9190615015565b61073c61196e565b610745856119e4565b60095460005b818110156107bc57600860006009838154811061076a5761076a61502f565b60009182526020808320909101546001600160a01b03168352820192909252604001902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000016905560010161074b565b5050865160005b8181101561095f5760008982815181106107df576107df61502f565b60200260200101519050600060028111156107fc576107fc6141fe565b6001600160a01b038216600090815260086020526040902054610100900460ff16600281111561082e5761082e6141fe565b146108685760026040517f367f56a20000000000000000000000000000000000000000000000000000000081526004016106ee9190615015565b6001600160a01b0381166108a8576040517fd6c62c9b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040805180820190915260ff8316815260208101600290526001600160a01b03821660009081526008602090815260409091208251815460ff9091167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0082168117835592840151919283917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000161761010083600281111561094b5761094b6141fe565b0217905550905050508060010190506107c3565b5087516109739060099060208b01906140b9565b506006805460ff838116610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000909216908a1617179055600780546109f99146913091906000906109cb9063ffffffff1661505e565b91906101000a81548163ffffffff021916908363ffffffff160217905563ffffffff168c8c8c8c8c8c611cae565b6005819055600780544363ffffffff9081166401000000009081027fffffffffffffffffffffffffffffffffffffffffffffffff00000000ffffffff841681179094556040519083048216947f1591690b8638f5fb2dbec82ac741805ac5da8b45dc5263f4875b0496fdce4e0594610a8a9487949293918316921691909117908f908f908f908f908f908f90615081565b60405180910390a150505050505050505050565b333014610ad7576040517f371a732800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040805160008082526020820190925281610b14565b6040805180820190915260008082526020820152815260200190600190039081610aed5790505b506101408501515190915015610b7557610b728461014001518560200151604051602001610b5191906001600160a01b0391909116815260200190565b60405160208183030381529060405286604001518761016001518787611d3b565b90505b61012084015151158015610b8b57506080840151155b80610ba2575060408401516001600160a01b03163b155b80610be257506040840151610be0906001600160a01b03167f85572ffb00000000000000000000000000000000000000000000000000000000611ec5565b155b15610bed5750505050565b600080600a600001600a9054906101000a90046001600160a01b03166001600160a01b0316633cf979836040518060a001604052808961018001518152602001896000015167ffffffffffffffff1681526020018960200151604051602001610c6591906001600160a01b0391909116815260200190565b604051602081830303815290604052815260200189610120015181526020018681525061138889608001518a604001516040518563ffffffff1660e01b8152600401610cb4949392919061515c565b6000604051808303816000875af1158015610cd3573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610cfb9190810190615266565b509150915081610d3957806040517f0a8d6e8c0000000000000000000000000000000000000000000000000000000081526004016106ee919061429f565b505050505050565b6040805160a0810182526000808252602082018190529181018290526060810182905260808101919091526040805160a0810182526003546fffffffffffffffffffffffffffffffff808216835270010000000000000000000000000000000080830463ffffffff1660208501527401000000000000000000000000000000000000000090920460ff161515938301939093526004548084166060840152049091166080820152610df190611ee1565b905090565b60606009805480602002602001604051908101604052809291908181526020018280548015610e4e57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610e30575b5050505050905090565b6000546001600160a01b03163314801590610e7e57506002546001600160a01b03163314155b15610eb5576040517ff6cd562000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600280547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0383169081179091556040519081527f8fe72c3e0020beb3234e76ae6676fa576fbfcae600af1c4fea44784cf0db329c9060200160405180910390a150565b6001546001600160a01b03163314610f95576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f4d7573742062652070726f706f736564206f776e65720000000000000000000060448201526064016106ee565b60008054337fffffffffffffffffffffffff0000000000000000000000000000000000000000808316821784556001805490911690556040516001600160a01b0390921692909183917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a350565b6001600160a01b0381166000908152600f602052604081205467ffffffffffffffff168082036106a4577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316156106a4576040517f856c82470000000000000000000000000000000000000000000000000000000081526001600160a01b0384811660048301527f0000000000000000000000000000000000000000000000000000000000000000169063856c824790602401602060405180830381865afa1580156110dc573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061110091906152c0565b9392505050565b61110f61196e565b60005b82518110156111e25761114c8382815181106111305761113061502f565b602002602001015160200151600c611f9390919063ffffffff16565b156111da577fcbf3cbeaed4ac1d605ed30f4af06c35acaeff2379db7f6146c9cceee83d587828382815181106111845761118461502f565b6020026020010151600001518483815181106111a2576111a261502f565b6020026020010151602001516040516111d19291906001600160a01b0392831681529116602082015260400190565b60405180910390a15b600101611112565b5060005b81518110156112d55761123f8282815181106112045761120461502f565b6020026020010151602001518383815181106112225761122261502f565b602002602001015160000151600c611fa89092919063ffffffff16565b156112cd577ffc23abf7ddbd3c02b1420dafa2355c56c1a06fbb8723862ac14d6bd74177361a8282815181106112775761127761502f565b6020026020010151600001518383815181106112955761129561502f565b6020026020010151602001516040516112c49291906001600160a01b0392831681529116602082015260400190565b60405180910390a15b6001016111e6565b505050565b6112e48787611fc6565b60055488359080821461132d576040517f93df584c00000000000000000000000000000000000000000000000000000000815260048101829052602481018390526044016106ee565b61133561201d565b6040805183815260208c81013560081c63ffffffff16908201527fb04e63db38c49950639fa09d29872f21f5d49d614f3a969d8adf3d4b52e41a62910160405180910390a13360009081526008602090815260408083208151808301909252805460ff808216845292939192918401916101009091041660028111156113bd576113bd6141fe565b60028111156113ce576113ce6141fe565b90525090506002816020015160028111156113eb576113eb6141fe565b14801561142557506009816000015160ff168154811061140d5761140d61502f565b6000918252602090912001546001600160a01b031633145b61145b576040517fda0f08e800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b506000611469856020614fd7565b611474886020614fd7565b6114808b6101446152dd565b61148a91906152dd565b61149491906152dd565b90503681146114d8576040517f8e1192e1000000000000000000000000000000000000000000000000000000008152600481018290523660248201526044016106ee565b5050505050505050505050565b6114ed61201d565b8151518151811461152a576040517f83e3f56400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60005b818110156117c15760008382815181106115495761154961502f565b6020026020010151600001519050806000146115c25784518051839081106115735761157361502f565b6020026020010151608001518110156115c2576040517f085e39cf00000000000000000000000000000000000000000000000000000000815260048101839052602481018290526044016106ee565b8382815181106115d4576115d461502f565b60200260200101516020015151856000015183815181106115f7576115f761502f565b60200260200101516101400151511461169457845180518390811061161e5761161e61502f565b60200260200101516101800151856000015183815181106116415761164161502f565b6020026020010151606001516040517f85d2e5bf0000000000000000000000000000000000000000000000000000000081526004016106ee92919091825267ffffffffffffffff16602082015260400190565b6000856000015183815181106116ac576116ac61502f565b60200260200101516101600151905060005b86518051859081106116d2576116d261502f565b60200260200101516101400151518110156117b35760008285815181106116fb576116fb61502f565b60200260200101518060200190518101906117169190615304565b9050600087868151811061172c5761172c61502f565b60200260200101516020015183815181106117495761174961502f565b60200260200101519050806000146117a957816060015163ffffffff168110156117a9576040517ffd6dde0e00000000000000000000000000000000000000000000000000000000815260048101849052602481018290526044016106ee565b50506001016116be565b50505080600101905061152d565b506112d5838361209e565b6000546001600160a01b031633148015906117f257506002546001600160a01b03163314155b15611829576040517ff6cd562000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611834600382612af4565b50565b6060806000611846600c612cd9565b90508067ffffffffffffffff811115611861576118616142b2565b60405190808252806020026020018201604052801561188a578160200160208202803683370190505b5092508067ffffffffffffffff8111156118a6576118a66142b2565b6040519080825280602002602001820160405280156118cf578160200160208202803683370190505b50915060005b81811015611957576000806118eb600c84612ce4565b91509150808684815181106119025761190261502f565b60200260200101906001600160a01b031690816001600160a01b031681525050818584815181106119355761193561502f565b6001600160a01b039092166020928302919091019091015250506001016118d5565b50509091565b61196561196e565b61183481612d02565b6000546001600160a01b031633146119e2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f4f6e6c792063616c6c61626c65206279206f776e65720000000000000000000060448201526064016106ee565b565b6000818060200190518101906119fa91906153ca565b60608101519091506001600160a01b0316611a41576040517f8579befe00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8051600a805460208085015160408087015160608089015163ffffffff9889167fffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000909716969096176401000000009890941697909702929092177fffff00000000000000000000000000000000000000000000ffffffffffffffff166801000000000000000061ffff909316929092027fffff0000000000000000000000000000000000000000ffffffffffffffffffff16919091176a01000000000000000000006001600160a01b039485160217909355608080860151600b80547fffffffffffffffffffffffff000000000000000000000000000000000000000016918516919091179055835160e0810185527f0000000000000000000000000000000000000000000000000000000000000000841681527f000000000000000000000000000000000000000000000000000000000000000067ffffffffffffffff908116938201939093527f0000000000000000000000000000000000000000000000000000000000000000909216828501527f00000000000000000000000000000000000000000000000000000000000000008316948201949094527f00000000000000000000000000000000000000000000000000000000000000008216938101939093527f0000000000000000000000000000000000000000000000000000000000000000811660a08401527f00000000000000000000000000000000000000000000000000000000000000001660c0830152517f7879e20bb60a503429de4a2c912b5904f08a39f2af054c10fb46434b5d61126091611ca2918490615465565b60405180910390a15050565b6000808a8a8a8a8a8a8a8a8a604051602001611cd299989796959493929190615527565b60408051601f1981840301815291905280516020909101207dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167e01000000000000000000000000000000000000000000000000000000000000179150509998505050505050505050565b856000805b8851811015611eaa576000868281518110611d5d57611d5d61502f565b6020026020010151806020019051810190611d789190615304565b90508451600014611dcd57848281518110611d9557611d9561502f565b6020026020010151600014611dcd57848281518110611db657611db661502f565b602090810291909101015163ffffffff1660608201525b611e108a8381518110611de257611de261502f565b6020026020010151602001518a8a848a8781518110611e0357611e0361502f565b6020026020010151612ddd565b848381518110611e2257611e2261502f565b6020026020010181905250611e5e848381518110611e4257611e4261502f565b602002602001015160000151600c6131e690919063ffffffff16565b15611ea157611e94848381518110611e7857611e7861502f565b6020908102919091010151600b546001600160a01b03166131fb565b611e9e90846152dd565b92505b50600101611d40565b508015611eba57611eba8161331c565b509695505050505050565b6000611ed083613329565b80156111005750611100838361338d565b6040805160a081018252600080825260208201819052918101829052606081018290526080810191909152611f6f82606001516fffffffffffffffffffffffffffffffff1683600001516fffffffffffffffffffffffffffffffff16846020015163ffffffff1642611f539190614f6e565b85608001516fffffffffffffffffffffffffffffffff1661345c565b6fffffffffffffffffffffffffffffffff1682525063ffffffff4216602082015290565b6000611100836001600160a01b03841661347b565b6000611fbe846001600160a01b03851684613487565b949350505050565b612019611fd5828401846155af565b6040805160008082526020820190925290612013565b604080518082019091526000815260606020820152815260200190600190039081611feb5790505b5061209e565b5050565b467f0000000000000000000000000000000000000000000000000000000000000000146119e2576040517f0f01ce850000000000000000000000000000000000000000000000000000000081527f000000000000000000000000000000000000000000000000000000000000000060048201524660248201526044016106ee565b6040517f2cbc26bb0000000000000000000000000000000000000000000000000000000081527f000000000000000000000000000000000000000000000000000000000000000060801b77ffffffffffffffff000000000000000000000000000000001660048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690632cbc26bb90602401602060405180830381865afa158015612158573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061217c91906155e4565b156121b3576040517f53ad11d800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81515160008190036121f0576040517ebf199700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b826020015151811461222e576040517f57e0e08300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008167ffffffffffffffff811115612249576122496142b2565b604051908082528060200260200182016040528015612272578160200160208202803683370190505b50905060005b8281101561234a576000856000015182815181106122985761229861502f565b602002602001015190506122cc817f000000000000000000000000000000000000000000000000000000000000000061349d565b8383815181106122de576122de61502f565b6020026020010181815250508061018001518383815181106123025761230261502f565b602002602001015114612341576040517f7185cf6b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50600101612278565b50604080850151606086015191517f320488750000000000000000000000000000000000000000000000000000000081526000926001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016926332048875926123be92879291600401615632565b602060405180830381865afa1580156123db573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123ff9190615668565b90508060000361243b576040517fea75680100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60005b83811015610d395760008660000151828151811061245e5761245e61502f565b602002602001015190506000612477826060015161062f565b9050600081600381111561248d5761248d6141fe565b14806124aa575060038160038111156124a8576124a86141fe565b145b6124f057816060015167ffffffffffffffff167fe3dd0bec917c965a133ddb2c84874725ee1e2fd8d763c19efa36d6a11cd82b1f60405160405180910390a25050612aec565b8651606090158015906125db5788858151811061250f5761250f61502f565b6020908102919091018101510151600a5490925060009063ffffffff166125368842614f6e565b119050808061255657506003846003811115612554576125546141fe565b145b61258c576040517f6358b0d000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b89868151811061259e5761259e61502f565b6020026020010151600001516000146125d5578986815181106125c3576125c361502f565b60209081029190910101515160808601525b50612640565b60008360038111156125ef576125ef6141fe565b1461264057606084015160405167ffffffffffffffff90911681527f67d9ba0f63d427c482c2736300e6d5a34c6691dbcdea8ad35828a1f1ba47e8729060200160405180910390a150505050612aec565b60c084015167ffffffffffffffff16156128c3576020808501516001600160a01b03166000908152600f909152604081205467ffffffffffffffff169081900361282c577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03161561282c5760208501516040517f856c82470000000000000000000000000000000000000000000000000000000081526001600160a01b0391821660048201527f00000000000000000000000000000000000000000000000000000000000000009091169063856c824790602401602060405180830381865afa158015612739573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061275d91906152c0565b60c086015190915067ffffffffffffffff1661277a826001615681565b67ffffffffffffffff16146127dc5784602001516001600160a01b03168560c0015167ffffffffffffffff167fe44a20935573a783dd0d5991c92d7b6a0eb3173566530364db3ec10e9a990b5d60405160405180910390a35050505050612aec565b6020858101516001600160a01b03166000908152600f9091526040902080547fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000001667ffffffffffffffff83161790555b6000846003811115612840576128406141fe565b036128c15760c085015167ffffffffffffffff1661285f826001615681565b67ffffffffffffffff16146128c15784602001516001600160a01b03168560c0015167ffffffffffffffff167fd32ddb11d71e3d63411d37b09f9a8b28664f1cb1338bfd1413c173b0ebf4123760405160405180910390a35050505050612aec565b505b60008a6020015186815181106128db576128db61502f565b6020026020010151905061290785606001518660000151876101400151518861012001515185516135f8565b61291685606001516001613779565b600080612924878487613823565b91509150612936876060015183613779565b83156129a2576003826003811115612950576129506141fe565b036129a2576000866003811115612969576129696141fe565b146129a257806040517fcf19edfd0000000000000000000000000000000000000000000000000000000081526004016106ee919061429f565b60028260038111156129b6576129b66141fe565b14612a0e5760038260038111156129cf576129cf6141fe565b14612a0e578660600151826040517f9e2616030000000000000000000000000000000000000000000000000000000081526004016106ee9291906156a2565b60c087015167ffffffffffffffff1615612a96576000866003811115612a3657612a366141fe565b03612a96576020808801516001600160a01b03166000908152600f90915260408120805467ffffffffffffffff1691612a6e836156c0565b91906101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550505b866101800151876060015167ffffffffffffffff167fd4f851956a5d67c3997d1c9205045fef79bae2947fdee7e9e2641abc7391ef658484604051612adc9291906156dd565b60405180910390a3505050505050505b60010161243e565b8154600090612b1d90700100000000000000000000000000000000900463ffffffff1642614f6e565b90508015612bbf5760018301548354612b65916fffffffffffffffffffffffffffffffff8082169281169185917001000000000000000000000000000000009091041661345c565b83546fffffffffffffffffffffffffffffffff919091167fffffffffffffffffffffffff0000000000000000000000000000000000000000909116177001000000000000000000000000000000004263ffffffff16021783555b60208201518354612be5916fffffffffffffffffffffffffffffffff90811691166138f0565b83548351151574010000000000000000000000000000000000000000027fffffffffffffffffffffff00ffffffff000000000000000000000000000000009091166fffffffffffffffffffffffffffffffff92831617178455602083015160408085015183167001000000000000000000000000000000000291909216176001850155517f9ea3374b67bf275e6bb9c8ae68f9cae023e1c528b4b27e092f0bb209d3531c1990612ccc9084908151151581526020808301516fffffffffffffffffffffffffffffffff90811691830191909152604092830151169181019190915260600190565b60405180910390a1505050565b60006106a482613906565b6000808080612cf38686613911565b909450925050505b9250929050565b336001600160a01b03821603612d74576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f43616e6e6f74207472616e7366657220746f2073656c6600000000000000000060448201526064016106ee565b600180547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0383811691821790925560008054604051929316917fed8889f560326eb138920d842192f0eb3dd22b4f139c87a2c57538e05bae12789190a350565b60408051808201909152600080825260208201526000612e008460200151613920565b6040517fbbe4f6db0000000000000000000000000000000000000000000000000000000081526001600160a01b0380831660048301529192506000917f0000000000000000000000000000000000000000000000000000000000000000169063bbe4f6db90602401602060405180830381865afa158015612e85573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ea991906156fd565b90506001600160a01b0381161580612ef15750612eef6001600160a01b0382167faff2afbf00000000000000000000000000000000000000000000000000000000611ec5565b155b15612f33576040517fae9b4ce90000000000000000000000000000000000000000000000000000000081526001600160a01b03821660048201526024016106ee565b60008060006130386040518061010001604052808c81526020017f000000000000000000000000000000000000000000000000000000000000000067ffffffffffffffff1681526020018b6001600160a01b031681526020018d8152602001876001600160a01b031681526020018a6000015181526020018a60400151815260200189815250604051602401612fc9919061571a565b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f390775370000000000000000000000000000000000000000000000000000000017905260608a0151869063ffffffff1661138860846139c6565b9250925092508261307757816040517fe1cd55090000000000000000000000000000000000000000000000000000000081526004016106ee919061429f565b81516020146130bf5781516040517f78ef80240000000000000000000000000000000000000000000000000000000081526020600482015260248101919091526044016106ee565b6000828060200190518101906130d59190615668565b6040516001600160a01b0380881660248301528c1660448201526064810182905290915061317a9060840160408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f23b872dd0000000000000000000000000000000000000000000000000000000017905260608b0151889061317090869063ffffffff16614f6e565b61138860846139c6565b509094509250836131b957826040517fe1cd55090000000000000000000000000000000000000000000000000000000081526004016106ee919061429f565b604080518082019091526001600160a01b0390961686526020860152509293505050505b95945050505050565b6000611100836001600160a01b038416613aec565b81516040517fd02641a00000000000000000000000000000000000000000000000000000000081526001600160a01b03918216600482015260009182919084169063d02641a0906024016040805180830381865afa158015613261573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061328591906157f1565b5190507bffffffffffffffffffffffffffffffffffffffffffffffffffffffff81166000036132ee5783516040517f9a655f7b0000000000000000000000000000000000000000000000000000000081526001600160a01b0390911660048201526024016106ee565b6020840151611fbe907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff831690613af8565b6118346003826000613b35565b6000613355827f01ffc9a70000000000000000000000000000000000000000000000000000000061338d565b80156106a45750613386827fffffffff0000000000000000000000000000000000000000000000000000000061338d565b1592915050565b604080517fffffffff000000000000000000000000000000000000000000000000000000008316602480830191909152825180830390910181526044909101909152602080820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f01ffc9a700000000000000000000000000000000000000000000000000000000178152825160009392849283928392918391908a617530fa92503d91506000519050828015613445575060208210155b80156134515750600081115b979650505050505050565b60006131dd8561346c8486614fd7565b61347690876152dd565b6138f0565b60006111008383613e84565b6000611fbe84846001600160a01b038516613ea1565b60008060001b8284602001518560400151866060015187608001518860a001518960c001518a60e001518b61010001516040516020016135339897969594939291906001600160a01b039889168152968816602088015267ffffffffffffffff95861660408801526060870194909452911515608086015290921660a0840152921660c082015260e08101919091526101000190565b604051602081830303815290604052805190602001208561012001518051906020012086610140015160405160200161356c9190615851565b6040516020818303038152906040528051906020012087610160015160405160200161359891906158be565b60408051601f198184030181528282528051602091820120908301979097528101949094526060840192909252608083015260a082015260c081019190915260e00160405160208183030381529060405280519060200120905092915050565b7f000000000000000000000000000000000000000000000000000000000000000067ffffffffffffffff168467ffffffffffffffff1614613671576040517f1279ec8a00000000000000000000000000000000000000000000000000000000815267ffffffffffffffff851660048201526024016106ee565b600a5468010000000000000000900461ffff168311156136c9576040517f099d3f7200000000000000000000000000000000000000000000000000000000815267ffffffffffffffff861660048201526024016106ee565b80831461370e576040517f8808f8e700000000000000000000000000000000000000000000000000000000815267ffffffffffffffff861660048201526024016106ee565b600a54640100000000900463ffffffff1682111561377257600a546040517f8693378900000000000000000000000000000000000000000000000000000000815264010000000090910463ffffffff166004820152602481018390526044016106ee565b5050505050565b60006002613788608085614fb0565b67ffffffffffffffff1661379c9190614fd7565b905060006010816137ae608087614fee565b67ffffffffffffffff1681526020810191909152604001600020549050816137d860016004614f6e565b901b1916818360038111156137ef576137ef6141fe565b901b178060106000613802608088614fee565b67ffffffffffffffff16815260208101919091526040016000205550505050565b6040517f30c2fd4400000000000000000000000000000000000000000000000000000000815260009060609030906330c2fd4490613869908890889088906004016158d1565b600060405180830381600087803b15801561388357600080fd5b505af1925050508015613894575060015b6138d3573d8080156138c2576040519150601f19603f3d011682016040523d82523d6000602084013e6138c7565b606091505b506003925090506138e8565b50506040805160208101909152600081526002905b935093915050565b60008183106138ff5781611100565b5090919050565b60006106a482613ebe565b6000808080612cf38686613ec9565b6000815160201461395f57816040517f8d666f600000000000000000000000000000000000000000000000000000000081526004016106ee919061429f565b6000828060200190518101906139759190615668565b90506001600160a01b0381118061398d575061040081105b156106a457826040517f8d666f600000000000000000000000000000000000000000000000000000000081526004016106ee919061429f565b6000606060008361ffff1667ffffffffffffffff8111156139e9576139e96142b2565b6040519080825280601f01601f191660200182016040528015613a13576020820181803683370190505b509150863b613a46577f0c3b563c0000000000000000000000000000000000000000000000000000000060005260046000fd5b5a85811015613a79577fafa32a2c0000000000000000000000000000000000000000000000000000000060005260046000fd5b8590036040810481038710613ab2577f37c3be290000000000000000000000000000000000000000000000000000000060005260046000fd5b505a6000808a5160208c0160008c8cf193505a900390503d84811115613ad55750835b808352806000602085013e50955095509592505050565b60006111008383613ef4565b6000670de0b6b3a7640000613b2b837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8616614fd7565b6111009190615a50565b825474010000000000000000000000000000000000000000900460ff161580613b5c575081155b15613b6657505050565b825460018401546fffffffffffffffffffffffffffffffff80831692911690600090613bac90700100000000000000000000000000000000900463ffffffff1642614f6e565b90508015613c6c5781831115613bee576040517f9725942a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001860154613c289083908590849070010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff1661345c565b86547fffffffffffffffffffffffff00000000ffffffffffffffffffffffffffffffff167001000000000000000000000000000000004263ffffffff160217875592505b84821015613d09576001600160a01b038416613cbe576040517ff94ebcd100000000000000000000000000000000000000000000000000000000815260048101839052602481018690526044016106ee565b6040517f1a76572a00000000000000000000000000000000000000000000000000000000815260048101839052602481018690526001600160a01b03851660448201526064016106ee565b84831015613e025760018681015470010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff16906000908290613d4d9082614f6e565b613d57878a614f6e565b613d6191906152dd565b613d6b9190615a50565b90506001600160a01b038616613db7576040517f15279c0800000000000000000000000000000000000000000000000000000000815260048101829052602481018690526044016106ee565b6040517fd0c8d23a00000000000000000000000000000000000000000000000000000000815260048101829052602481018690526001600160a01b03871660448201526064016106ee565b613e0c8584614f6e565b86547fffffffffffffffffffffffffffffffff00000000000000000000000000000000166fffffffffffffffffffffffffffffffff82161787556040518681529093507f1871cdf8010e63f2eb8384381a68dfa7416dc571a5517e66e88b2d2d0c0a690a9060200160405180910390a1505050505050565b600081815260028301602052604081208190556111008383613f00565b60008281526002840160205260408120829055611fbe8484613f0c565b60006106a482613f18565b60008080613ed78585613f22565b600081815260029690960160205260409095205494959350505050565b60006111008383613f2e565b60006111008383613f46565b60006111008383614040565b60006106a4825490565b6000611100838361408f565b60008181526001830160205260408120541515611100565b6000818152600183016020526040812054801561402f576000613f6a600183614f6e565b8554909150600090613f7e90600190614f6e565b9050818114613fe3576000866000018281548110613f9e57613f9e61502f565b9060005260206000200154905080876000018481548110613fc157613fc161502f565b6000918252602080832090910192909255918252600188019052604090208390555b8554869080613ff457613ff4615a64565b6001900381819060005260206000200160009055905585600101600086815260200190815260200160002060009055600193505050506106a4565b60009150506106a4565b5092915050565b6000818152600183016020526040812054614087575081546001818101845560008481526020808220909301849055845484825282860190935260409020919091556106a4565b5060006106a4565b60008260000182815481106140a6576140a661502f565b9060005260206000200154905092915050565b828054828255906000526020600020908101928215614126579160200282015b8281111561412657825182547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b039091161782556020909201916001909101906140d9565b50614132929150614136565b5090565b5b808211156141325760008155600101614137565b60e081016106a482846001600160a01b03808251168352602082015167ffffffffffffffff808216602086015280604085015116604086015250508060608301511660608401528060808301511660808401528060a08301511660a08401528060c08301511660c0840152505050565b67ffffffffffffffff8116811461183457600080fd5b80356141dc816141bb565b919050565b6000602082840312156141f357600080fd5b8135611100816141bb565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b6004811061423d5761423d6141fe565b9052565b602081016106a4828461422d565b60005b8381101561426a578181015183820152602001614252565b50506000910152565b6000815180845261428b81602086016020860161424f565b601f01601f19169290920160200192915050565b6020815260006111006020830184614273565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040805190810167ffffffffffffffff81118282101715614304576143046142b2565b60405290565b6040516101a0810167ffffffffffffffff81118282101715614304576143046142b2565b6040516080810167ffffffffffffffff81118282101715614304576143046142b2565b604051601f8201601f1916810167ffffffffffffffff8111828210171561437a5761437a6142b2565b604052919050565b600067ffffffffffffffff82111561439c5761439c6142b2565b5060051b60200190565b6001600160a01b038116811461183457600080fd5b80356141dc816143a6565b600082601f8301126143d757600080fd5b813560206143ec6143e783614382565b614351565b8083825260208201915060208460051b87010193508684111561440e57600080fd5b602086015b84811015611eba578035614426816143a6565b8352918301918301614413565b803560ff811681146141dc57600080fd5b600067ffffffffffffffff82111561445e5761445e6142b2565b50601f01601f191660200190565b600082601f83011261447d57600080fd5b813561448b6143e782614444565b8181528460208386010111156144a057600080fd5b816020850160208301376000918101602001919091529392505050565b60008060008060008060c087890312156144d657600080fd5b863567ffffffffffffffff808211156144ee57600080fd5b6144fa8a838b016143c6565b9750602089013591508082111561451057600080fd5b61451c8a838b016143c6565b965061452a60408a01614433565b9550606089013591508082111561454057600080fd5b61454c8a838b0161446c565b945061455a60808a016141d1565b935060a089013591508082111561457057600080fd5b5061457d89828a0161446c565b9150509295509295509295565b801515811461183457600080fd5b80356141dc8161458a565b600082601f8301126145b457600080fd5b813560206145c46143e783614382565b82815260069290921b840181019181810190868411156145e357600080fd5b8286015b84811015611eba57604081890312156146005760008081fd5b6146086142e1565b8135614613816143a6565b815281850135858201528352918301916040016145e7565b600082601f83011261463c57600080fd5b8135602061464c6143e783614382565b82815260059290921b8401810191818101908684111561466b57600080fd5b8286015b84811015611eba57803567ffffffffffffffff81111561468f5760008081fd5b61469d8986838b010161446c565b84525091830191830161466f565b60006101a082840312156146be57600080fd5b6146c661430a565b90506146d1826141d1565b81526146df602083016143bb565b60208201526146f0604083016143bb565b6040820152614701606083016141d1565b60608201526080820135608082015261471c60a08301614598565b60a082015261472d60c083016141d1565b60c082015261473e60e083016143bb565b60e082015261010082810135908201526101208083013567ffffffffffffffff8082111561476b57600080fd5b6147778683870161446c565b8385015261014092508285013591508082111561479357600080fd5b61479f868387016145a3565b838501526101609250828501359150808211156147bb57600080fd5b506147c88582860161462b565b82840152505061018080830135818301525092915050565b600082601f8301126147f157600080fd5b813560206148016143e783614382565b8083825260208201915060208460051b87010193508684111561482357600080fd5b602086015b84811015611eba5780358352918301918301614828565b60008060006060848603121561485457600080fd5b833567ffffffffffffffff8082111561486c57600080fd5b614878878388016146ab565b9450602086013591508082111561488e57600080fd5b61489a8783880161462b565b935060408601359150808211156148b057600080fd5b506148bd868287016147e0565b9150509250925092565b60008151808452602080850194506020840160005b838110156149015781516001600160a01b0316875295820195908201906001016148dc565b509495945050505050565b60208152600061110060208301846148c7565b60006020828403121561493157600080fd5b8135611100816143a6565b60a081016106a4828463ffffffff8082511683528060208301511660208401525061ffff604082015116604083015260608101516001600160a01b03808216606085015280608084015116608085015250505050565b6000602082840312156149a457600080fd5b813567ffffffffffffffff8111156149bb57600080fd5b820160a0818503121561110057600080fd5b600082601f8301126149de57600080fd5b813560206149ee6143e783614382565b82815260069290921b84018101918181019086841115614a0d57600080fd5b8286015b84811015611eba5760408189031215614a2a5760008081fd5b614a326142e1565b8135614a3d816143a6565b815281850135614a4c816143a6565b81860152835291830191604001614a11565b60008060408385031215614a7157600080fd5b823567ffffffffffffffff80821115614a8957600080fd5b614a95868387016149cd565b93506020850135915080821115614aab57600080fd5b50614ab8858286016149cd565b9150509250929050565b60008083601f840112614ad457600080fd5b50813567ffffffffffffffff811115614aec57600080fd5b6020830191508360208260051b8501011115612cfb57600080fd5b60008060008060008060008060e0898b031215614b2357600080fd5b606089018a811115614b3457600080fd5b8998503567ffffffffffffffff80821115614b4e57600080fd5b818b0191508b601f830112614b6257600080fd5b813581811115614b7157600080fd5b8c6020828501011115614b8357600080fd5b6020830199508098505060808b0135915080821115614ba157600080fd5b614bad8c838d01614ac2565b909750955060a08b0135915080821115614bc657600080fd5b50614bd38b828c01614ac2565b999c989b50969995989497949560c00135949350505050565b600082601f830112614bfd57600080fd5b81356020614c0d6143e783614382565b82815260059290921b84018101918181019086841115614c2c57600080fd5b8286015b84811015611eba57803567ffffffffffffffff811115614c505760008081fd5b614c5e8986838b010161462b565b845250918301918301614c30565b600060808284031215614c7e57600080fd5b614c8661432e565b9050813567ffffffffffffffff80821115614ca057600080fd5b818401915084601f830112614cb457600080fd5b81356020614cc46143e783614382565b82815260059290921b84018101918181019088841115614ce357600080fd5b8286015b84811015614d1b57803586811115614cff5760008081fd5b614d0d8b86838b01016146ab565b845250918301918301614ce7565b5086525085810135935082841115614d3257600080fd5b614d3e87858801614bec565b90850152506040840135915080821115614d5757600080fd5b50614d64848285016147e0565b6040830152506060820135606082015292915050565b6000806040808486031215614d8e57600080fd5b833567ffffffffffffffff80821115614da657600080fd5b614db287838801614c6c565b9450602091508186013581811115614dc957600080fd5b8601601f81018813614dda57600080fd5b8035614de86143e782614382565b81815260059190911b8201840190848101908a831115614e0757600080fd5b8584015b83811015614e7a57803586811115614e235760008081fd5b8501808d03601f1901891315614e395760008081fd5b614e416142e1565b8882013581528982013588811115614e595760008081fd5b614e678f8b838601016147e0565b828b015250845250918601918601614e0b565b50809750505050505050509250929050565b80356fffffffffffffffffffffffffffffffff811681146141dc57600080fd5b600060608284031215614ebe57600080fd5b6040516060810181811067ffffffffffffffff82111715614ee157614ee16142b2565b6040528235614eef8161458a565b8152614efd60208401614e8c565b6020820152614f0e60408401614e8c565b60408201529392505050565b604081526000614f2d60408301856148c7565b82810360208401526131dd81856148c7565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b818103818111156106a4576106a4614f3f565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600067ffffffffffffffff80841680614fcb57614fcb614f81565b92169190910692915050565b80820281158282048414176106a4576106a4614f3f565b600067ffffffffffffffff8084168061500957615009614f81565b92169190910492915050565b6020810160038310615029576150296141fe565b91905290565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600063ffffffff80831681810361507757615077614f3f565b6001019392505050565b600061012063ffffffff808d1684528b6020850152808b166040850152508060608401526150b18184018a6148c7565b905082810360808401526150c581896148c7565b905060ff871660a084015282810360c08401526150e28187614273565b905067ffffffffffffffff851660e08401528281036101008401526151078185614273565b9c9b505050505050505050505050565b60008151808452602080850194506020840160005b8381101561490157815180516001600160a01b03168852830151838801526040909601959082019060010161512c565b608081528451608082015267ffffffffffffffff60208601511660a08201526000604086015160a060c0840152615197610120840182614273565b905060608701517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff80808584030160e08601526151d38383614273565b9250608089015191508085840301610100860152506151f28282615117565b92505050615206602083018661ffff169052565b8360408301526131dd60608301846001600160a01b03169052565b600082601f83011261523257600080fd5b81516152406143e782614444565b81815284602083860101111561525557600080fd5b611fbe82602083016020870161424f565b60008060006060848603121561527b57600080fd5b83516152868161458a565b602085015190935067ffffffffffffffff8111156152a357600080fd5b6152af86828701615221565b925050604084015190509250925092565b6000602082840312156152d257600080fd5b8151611100816141bb565b808201808211156106a4576106a4614f3f565b805163ffffffff811681146141dc57600080fd5b60006020828403121561531657600080fd5b815167ffffffffffffffff8082111561532e57600080fd5b908301906080828603121561534257600080fd5b61534a61432e565b82518281111561535957600080fd5b61536587828601615221565b82525060208301518281111561537a57600080fd5b61538687828601615221565b60208301525060408301518281111561539e57600080fd5b6153aa87828601615221565b6040830152506153bc606084016152f0565b606082015295945050505050565b600060a082840312156153dc57600080fd5b60405160a0810181811067ffffffffffffffff821117156153ff576153ff6142b2565b60405261540b836152f0565b8152615419602084016152f0565b6020820152604083015161ffff8116811461543357600080fd5b60408201526060830151615446816143a6565b60608201526080830151615459816143a6565b60808201529392505050565b61018081016154d682856001600160a01b03808251168352602082015167ffffffffffffffff808216602086015280604085015116604086015250508060608301511660608401528060808301511660808401528060a08301511660a08401528060c08301511660c0840152505050565b825163ffffffff90811660e0840152602084015116610100830152604083015161ffff1661012083015260608301516001600160a01b03908116610140840152608084015116610160830152611100565b60006101208b83526001600160a01b038b16602084015267ffffffffffffffff808b1660408501528160608501526155618285018b6148c7565b91508382036080850152615575828a6148c7565b915060ff881660a085015283820360c08501526155928288614273565b90861660e085015283810361010085015290506151078185614273565b6000602082840312156155c157600080fd5b813567ffffffffffffffff8111156155d857600080fd5b611fbe84828501614c6c565b6000602082840312156155f657600080fd5b81516111008161458a565b60008151808452602080850194506020840160005b8381101561490157815187529582019590820190600101615616565b6060815260006156456060830186615601565b82810360208401526156578186615601565b915050826040830152949350505050565b60006020828403121561567a57600080fd5b5051919050565b67ffffffffffffffff81811683821601908082111561403957614039614f3f565b67ffffffffffffffff8316815260408101611100602083018461422d565b600067ffffffffffffffff80831681810361507757615077614f3f565b6156e7818461422d565b604060208201526000611fbe6040830184614273565b60006020828403121561570f57600080fd5b8151611100816143a6565b6020815260008251610100806020850152615739610120850183614273565b91506020850151615756604086018267ffffffffffffffff169052565b5060408501516001600160a01b03811660608601525060608501516080850152608085015161579060a08601826001600160a01b03169052565b5060a0850151601f19808685030160c08701526157ad8483614273565b935060c08701519150808685030160e08701526157ca8483614273565b935060e08701519150808685030183870152506157e78382614273565b9695505050505050565b60006040828403121561580357600080fd5b61580b6142e1565b82517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8116811461583757600080fd5b8152615845602084016152f0565b60208201529392505050565b6020815260006111006020830184615117565b60008282518085526020808601955060208260051b8401016020860160005b848110156158b157601f1986840301895261589f838351614273565b98840198925090830190600101615883565b5090979650505050505050565b6020815260006111006020830184615864565b606081526158ec60608201855167ffffffffffffffff169052565b6000602085015161590860808401826001600160a01b03169052565b5060408501516001600160a01b03811660a084015250606085015167ffffffffffffffff811660c084015250608085015160e083015260a08501516101006159538185018315159052565b60c087015191506101206159728186018467ffffffffffffffff169052565b60e08801519250610140615990818701856001600160a01b03169052565b828901519350610160925083838701528189015193506101a0915061018082818801526159c1610200880186614273565b9450818a015191507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa08088870301848901526159fd8684615117565b948b01518886039091016101c0890152939450615a1a8585615864565b9450808a01516101e0880152505050508281036020840152615a3c8186615864565b905082810360408401526157e78185615601565b600082615a5f57615a5f614f81565b500490565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fdfea164736f6c6343000818000a", + Bin: "0x6101a06040523480156200001257600080fd5b506040516200616e3803806200616e8339810160408190526200003591620004ec565b8033806000816200008d5760405162461bcd60e51b815260206004820152601860248201527f43616e6e6f7420736574206f776e657220746f207a65726f000000000000000060448201526064015b60405180910390fd5b600080546001600160a01b0319166001600160a01b0384811691909117909155811615620000c057620000c081620002ca565b50506040805160a081018252602084810180516001600160801b039081168085524263ffffffff169385018490528751151585870181905292518216606080870182905298909601519091166080948501819052600380546001600160a01b031916909217600160801b9485021760ff60a01b1916600160a01b90930292909217905502909117600455469052508201516001600160a01b031615806200016f575081516001600160a01b0316155b8062000186575060c08201516001600160a01b0316155b15620001a5576040516342bcdf7f60e11b815260040160405180910390fd5b81600001516001600160a01b0316634120fccd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001e8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200020e9190620005b5565b6001600160401b03166001146200023857604051636fc2a20760e11b815260040160405180910390fd5b81516001600160a01b0390811660a090815260408401516001600160401b0390811660c0908152602086015190911660e05260608501518316610100526080850151831661014052908401518216610160528301511661018052620002bd7f8acd72527118c8324937b1a42e02cd246697c3b633f1742f3cae11de233722b362000375565b6101205250620005da9050565b336001600160a01b03821603620003245760405162461bcd60e51b815260206004820152601760248201527f43616e6e6f74207472616e7366657220746f2073656c66000000000000000000604482015260640162000084565b600180546001600160a01b0319166001600160a01b0383811691821790925560008054604051929316917fed8889f560326eb138920d842192f0eb3dd22b4f139c87a2c57538e05bae12789190a350565b60008160c05160e05161010051604051602001620003bf94939291909384526001600160401b039283166020850152911660408301526001600160a01b0316606082015260800190565b604051602081830303815290604052805190602001209050919050565b60405160e081016001600160401b03811182821017156200040d57634e487b7160e01b600052604160045260246000fd5b60405290565b80516001600160a01b03811681146200042b57600080fd5b919050565b80516001600160401b03811681146200042b57600080fd5b80516001600160801b03811681146200042b57600080fd5b6000606082840312156200047357600080fd5b604051606081016001600160401b0381118282101715620004a457634e487b7160e01b600052604160045260246000fd5b806040525080915082518015158114620004bd57600080fd5b8152620004cd6020840162000448565b6020820152620004e06040840162000448565b60408201525092915050565b6000808284036101408112156200050257600080fd5b60e08112156200051157600080fd5b506200051c620003dc565b620005278462000413565b8152620005376020850162000430565b60208201526200054a6040850162000430565b60408201526200055d6060850162000413565b6060820152620005706080850162000413565b60808201526200058360a0850162000413565b60a08201526200059660c0850162000413565b60c08201529150620005ac8460e0850162000460565b90509250929050565b600060208284031215620005c857600080fd5b620005d38262000430565b9392505050565b60805160a05160c05160e0516101005161012051610140516101605161018051615aa5620006c9600039600081816102ec01528181611c540152612e430152600081816102bd01528181611c2c015261210e01526000818161028e015281816110300152818161109501528181611c020152818161268b01526126f5015260006122ad01526000818161025f0152611bd80152600081816101ff0152611b7c01526000818161022f01528181611bb0015281816120cb01528181612f5401526135ff0152600081816101d001528181611b57015261238d01526000818161202501526120710152615aa56000f3fe608060405234801561001057600080fd5b50600436106101825760003560e01c806381ff7048116100d8578063afcb95d71161008c578063c92b283211610066578063c92b2832146105f3578063f077b59214610606578063f2fde38b1461061c57600080fd5b8063afcb95d7146105ad578063b1dc65a4146105cd578063b1fc6515146105e057600080fd5b8063856c8247116100bd578063856c82471461055d578063873504d7146105895780638da5cb5b1461059c57600080fd5b806381ff70481461051f57806385572ffb1461054f57600080fd5b8063546719cd1161013a578063704b6c0211610114578063704b6c02146104615780637437ff9f1461047457806379ba50971461051757600080fd5b8063546719cd146103c3578063599f643114610427578063666cab8d1461044c57600080fd5b8063181f5a771161016b578063181f5a77146103525780631ef381741461039b57806330c2fd44146103b057600080fd5b806306285c6914610187578063142a98fc14610332575b600080fd5b61031c6040805160e081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c08101919091526040518060e001604052807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031681526020017f000000000000000000000000000000000000000000000000000000000000000067ffffffffffffffff1681526020017f000000000000000000000000000000000000000000000000000000000000000067ffffffffffffffff1681526020017f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031681526020017f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031681526020017f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031681526020017f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316815250905090565b6040516103299190614150565b60405180910390f35b6103456103403660046141e6565b61062f565b6040516103299190614246565b61038e6040518060400160405280601881526020017f45564d3245564d4f666652616d7020312e352e302d646576000000000000000081525081565b60405161032991906142a4565b6103ae6103a93660046144c2565b6106aa565b005b6103ae6103be366004614844565b610a9e565b6103cb610d41565b604051610329919081516fffffffffffffffffffffffffffffffff908116825260208084015163ffffffff1690830152604080840151151590830152606080840151821690830152608092830151169181019190915260a00190565b6002546001600160a01b03165b6040516001600160a01b039091168152602001610329565b610454610df6565b6040516103299190614911565b6103ae61046f366004614924565b610e58565b61050a6040805160a081018252600080825260208201819052918101829052606081018290526080810191909152506040805160a081018252600a5463ffffffff8082168352640100000000820416602083015268010000000000000000810461ffff16928201929092526a01000000000000000000009091046001600160a01b039081166060830152600b5416608082015290565b6040516103299190614941565b6103ae610f21565b6007546005546040805163ffffffff80851682526401000000009094049093166020840152820152606001610329565b6103ae610182366004614997565b61057061056b366004614924565b611004565b60405167ffffffffffffffff9091168152602001610329565b6103ae610597366004614a63565b611107565b6000546001600160a01b0316610434565b604080516001815260006020820181905291810191909152606001610329565b6103ae6105db366004614b0c565b6112da565b6103ae6105ee366004614d7f565b6114e5565b6103ae610601366004614eb1565b6117d1565b61060e61183c565b604051610329929190614f1f565b6103ae61062a366004614924565b611962565b600061063d60016004614f73565b600261064a608085614fb5565b67ffffffffffffffff1661065e9190614fdc565b6010600061066d608087614ff3565b67ffffffffffffffff1667ffffffffffffffff16815260200190815260200160002054901c1660038111156106a4576106a4614203565b92915050565b84518460ff16601f8211156106f75760016040517f367f56a20000000000000000000000000000000000000000000000000000000081526004016106ee919061501a565b60405180910390fd5b806000036107345760006040517f367f56a20000000000000000000000000000000000000000000000000000000081526004016106ee919061501a565b61073c611973565b610745856119e9565b60095460005b818110156107bc57600860006009838154811061076a5761076a615034565b60009182526020808320909101546001600160a01b03168352820192909252604001902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000016905560010161074b565b5050865160005b8181101561095f5760008982815181106107df576107df615034565b60200260200101519050600060028111156107fc576107fc614203565b6001600160a01b038216600090815260086020526040902054610100900460ff16600281111561082e5761082e614203565b146108685760026040517f367f56a20000000000000000000000000000000000000000000000000000000081526004016106ee919061501a565b6001600160a01b0381166108a8576040517fd6c62c9b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040805180820190915260ff8316815260208101600290526001600160a01b03821660009081526008602090815260409091208251815460ff9091167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0082168117835592840151919283917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000161761010083600281111561094b5761094b614203565b0217905550905050508060010190506107c3565b5087516109739060099060208b01906140be565b506006805460ff838116610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000909216908a1617179055600780546109f99146913091906000906109cb9063ffffffff16615063565b91906101000a81548163ffffffff021916908363ffffffff160217905563ffffffff168c8c8c8c8c8c611cb3565b6005819055600780544363ffffffff9081166401000000009081027fffffffffffffffffffffffffffffffffffffffffffffffff00000000ffffffff841681179094556040519083048216947f1591690b8638f5fb2dbec82ac741805ac5da8b45dc5263f4875b0496fdce4e0594610a8a9487949293918316921691909117908f908f908f908f908f908f90615086565b60405180910390a150505050505050505050565b333014610ad7576040517f371a732800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040805160008082526020820190925281610b14565b6040805180820190915260008082526020820152815260200190600190039081610aed5790505b506101408501515190915015610b7557610b728461014001518560200151604051602001610b5191906001600160a01b0391909116815260200190565b60405160208183030381529060405286604001518761016001518787611d40565b90505b61012084015151158015610b8b57506080840151155b80610ba2575060408401516001600160a01b03163b155b80610be257506040840151610be0906001600160a01b03167f85572ffb00000000000000000000000000000000000000000000000000000000611eca565b155b15610bed5750505050565b600080600a600001600a9054906101000a90046001600160a01b03166001600160a01b0316633cf979836040518060a001604052808961018001518152602001896000015167ffffffffffffffff1681526020018960200151604051602001610c6591906001600160a01b0391909116815260200190565b604051602081830303815290604052815260200189610120015181526020018681525061138889608001518a604001516040518563ffffffff1660e01b8152600401610cb49493929190615161565b6000604051808303816000875af1158015610cd3573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610cfb919081019061526b565b509150915081610d3957806040517f0a8d6e8c0000000000000000000000000000000000000000000000000000000081526004016106ee91906142a4565b505050505050565b6040805160a0810182526000808252602082018190529181018290526060810182905260808101919091526040805160a0810182526003546fffffffffffffffffffffffffffffffff808216835270010000000000000000000000000000000080830463ffffffff1660208501527401000000000000000000000000000000000000000090920460ff161515938301939093526004548084166060840152049091166080820152610df190611ee6565b905090565b60606009805480602002602001604051908101604052809291908181526020018280548015610e4e57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610e30575b5050505050905090565b6000546001600160a01b03163314801590610e7e57506002546001600160a01b03163314155b15610eb5576040517ff6cd562000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600280547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0383169081179091556040519081527f8fe72c3e0020beb3234e76ae6676fa576fbfcae600af1c4fea44784cf0db329c9060200160405180910390a150565b6001546001600160a01b03163314610f95576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f4d7573742062652070726f706f736564206f776e65720000000000000000000060448201526064016106ee565b60008054337fffffffffffffffffffffffff0000000000000000000000000000000000000000808316821784556001805490911690556040516001600160a01b0390921692909183917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a350565b6001600160a01b0381166000908152600f602052604081205467ffffffffffffffff168082036106a4577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316156106a4576040517f856c82470000000000000000000000000000000000000000000000000000000081526001600160a01b0384811660048301527f0000000000000000000000000000000000000000000000000000000000000000169063856c824790602401602060405180830381865afa1580156110dc573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061110091906152c5565b9392505050565b61110f611973565b60005b82518110156111e25761114c83828151811061113057611130615034565b602002602001015160200151600c611f9890919063ffffffff16565b156111da577fcbf3cbeaed4ac1d605ed30f4af06c35acaeff2379db7f6146c9cceee83d5878283828151811061118457611184615034565b6020026020010151600001518483815181106111a2576111a2615034565b6020026020010151602001516040516111d19291906001600160a01b0392831681529116602082015260400190565b60405180910390a15b600101611112565b5060005b81518110156112d55761123f82828151811061120457611204615034565b60200260200101516020015183838151811061122257611222615034565b602002602001015160000151600c611fad9092919063ffffffff16565b156112cd577ffc23abf7ddbd3c02b1420dafa2355c56c1a06fbb8723862ac14d6bd74177361a82828151811061127757611277615034565b60200260200101516000015183838151811061129557611295615034565b6020026020010151602001516040516112c49291906001600160a01b0392831681529116602082015260400190565b60405180910390a15b6001016111e6565b505050565b6112e48787611fcb565b60055488359080821461132d576040517f93df584c00000000000000000000000000000000000000000000000000000000815260048101829052602481018390526044016106ee565b611335612022565b6040805183815260208c81013560081c63ffffffff16908201527fb04e63db38c49950639fa09d29872f21f5d49d614f3a969d8adf3d4b52e41a62910160405180910390a13360009081526008602090815260408083208151808301909252805460ff808216845292939192918401916101009091041660028111156113bd576113bd614203565b60028111156113ce576113ce614203565b90525090506002816020015160028111156113eb576113eb614203565b14801561142557506009816000015160ff168154811061140d5761140d615034565b6000918252602090912001546001600160a01b031633145b61145b576040517fda0f08e800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b506000611469856020614fdc565b611474886020614fdc565b6114808b6101446152e2565b61148a91906152e2565b61149491906152e2565b90503681146114d8576040517f8e1192e1000000000000000000000000000000000000000000000000000000008152600481018290523660248201526044016106ee565b5050505050505050505050565b6114ed612022565b8151518151811461152a576040517f83e3f56400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60005b818110156117c657600083828151811061154957611549615034565b6020026020010151600001519050806000146115c257845180518390811061157357611573615034565b6020026020010151608001518110156115c2576040517f085e39cf00000000000000000000000000000000000000000000000000000000815260048101839052602481018290526044016106ee565b8382815181106115d4576115d4615034565b60200260200101516020015151856000015183815181106115f7576115f7615034565b60200260200101516101400151511461169457845180518390811061161e5761161e615034565b602002602001015161018001518560000151838151811061164157611641615034565b6020026020010151606001516040517f85d2e5bf0000000000000000000000000000000000000000000000000000000081526004016106ee92919091825267ffffffffffffffff16602082015260400190565b6000856000015183815181106116ac576116ac615034565b60200260200101516101600151905060005b86518051859081106116d2576116d2615034565b60200260200101516101400151518110156117b85760008285815181106116fb576116fb615034565b60200260200101518060200190518101906117169190615309565b9050600087868151811061172c5761172c615034565b602002602001015160200151838151811061174957611749615034565b602002602001015190508060001415801561176d5750816060015163ffffffff1681105b156117ae576040517ffd6dde0e00000000000000000000000000000000000000000000000000000000815260048101849052602481018290526044016106ee565b50506001016116be565b50505080600101905061152d565b506112d583836120a3565b6000546001600160a01b031633148015906117f757506002546001600160a01b03163314155b1561182e576040517ff6cd562000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611839600382612af9565b50565b606080600061184b600c612cde565b90508067ffffffffffffffff811115611866576118666142b7565b60405190808252806020026020018201604052801561188f578160200160208202803683370190505b5092508067ffffffffffffffff8111156118ab576118ab6142b7565b6040519080825280602002602001820160405280156118d4578160200160208202803683370190505b50915060005b8181101561195c576000806118f0600c84612ce9565b915091508086848151811061190757611907615034565b60200260200101906001600160a01b031690816001600160a01b0316815250508185848151811061193a5761193a615034565b6001600160a01b039092166020928302919091019091015250506001016118da565b50509091565b61196a611973565b61183981612d07565b6000546001600160a01b031633146119e7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f4f6e6c792063616c6c61626c65206279206f776e65720000000000000000000060448201526064016106ee565b565b6000818060200190518101906119ff91906153cf565b60608101519091506001600160a01b0316611a46576040517f8579befe00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8051600a805460208085015160408087015160608089015163ffffffff9889167fffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000909716969096176401000000009890941697909702929092177fffff00000000000000000000000000000000000000000000ffffffffffffffff166801000000000000000061ffff909316929092027fffff0000000000000000000000000000000000000000ffffffffffffffffffff16919091176a01000000000000000000006001600160a01b039485160217909355608080860151600b80547fffffffffffffffffffffffff000000000000000000000000000000000000000016918516919091179055835160e0810185527f0000000000000000000000000000000000000000000000000000000000000000841681527f000000000000000000000000000000000000000000000000000000000000000067ffffffffffffffff908116938201939093527f0000000000000000000000000000000000000000000000000000000000000000909216828501527f00000000000000000000000000000000000000000000000000000000000000008316948201949094527f00000000000000000000000000000000000000000000000000000000000000008216938101939093527f0000000000000000000000000000000000000000000000000000000000000000811660a08401527f00000000000000000000000000000000000000000000000000000000000000001660c0830152517f7879e20bb60a503429de4a2c912b5904f08a39f2af054c10fb46434b5d61126091611ca791849061546a565b60405180910390a15050565b6000808a8a8a8a8a8a8a8a8a604051602001611cd79998979695949392919061552c565b60408051601f1981840301815291905280516020909101207dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167e01000000000000000000000000000000000000000000000000000000000000179150509998505050505050505050565b856000805b8851811015611eaf576000868281518110611d6257611d62615034565b6020026020010151806020019051810190611d7d9190615309565b90508451600014611dd257848281518110611d9a57611d9a615034565b6020026020010151600014611dd257848281518110611dbb57611dbb615034565b602090810291909101015163ffffffff1660608201525b611e158a8381518110611de757611de7615034565b6020026020010151602001518a8a848a8781518110611e0857611e08615034565b6020026020010151612de2565b848381518110611e2757611e27615034565b6020026020010181905250611e63848381518110611e4757611e47615034565b602002602001015160000151600c6131eb90919063ffffffff16565b15611ea657611e99848381518110611e7d57611e7d615034565b6020908102919091010151600b546001600160a01b0316613200565b611ea390846152e2565b92505b50600101611d45565b508015611ebf57611ebf81613321565b509695505050505050565b6000611ed58361332e565b801561110057506111008383613392565b6040805160a081018252600080825260208201819052918101829052606081018290526080810191909152611f7482606001516fffffffffffffffffffffffffffffffff1683600001516fffffffffffffffffffffffffffffffff16846020015163ffffffff1642611f589190614f73565b85608001516fffffffffffffffffffffffffffffffff16613461565b6fffffffffffffffffffffffffffffffff1682525063ffffffff4216602082015290565b6000611100836001600160a01b038416613480565b6000611fc3846001600160a01b0385168461348c565b949350505050565b61201e611fda828401846155b4565b6040805160008082526020820190925290612018565b604080518082019091526000815260606020820152815260200190600190039081611ff05790505b506120a3565b5050565b467f0000000000000000000000000000000000000000000000000000000000000000146119e7576040517f0f01ce850000000000000000000000000000000000000000000000000000000081527f000000000000000000000000000000000000000000000000000000000000000060048201524660248201526044016106ee565b6040517f2cbc26bb0000000000000000000000000000000000000000000000000000000081527f000000000000000000000000000000000000000000000000000000000000000060801b77ffffffffffffffff000000000000000000000000000000001660048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690632cbc26bb90602401602060405180830381865afa15801561215d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061218191906155e9565b156121b8576040517f53ad11d800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81515160008190036121f5576040517ebf199700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8260200151518114612233576040517f57e0e08300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008167ffffffffffffffff81111561224e5761224e6142b7565b604051908082528060200260200182016040528015612277578160200160208202803683370190505b50905060005b8281101561234f5760008560000151828151811061229d5761229d615034565b602002602001015190506122d1817f00000000000000000000000000000000000000000000000000000000000000006134a2565b8383815181106122e3576122e3615034565b60200260200101818152505080610180015183838151811061230757612307615034565b602002602001015114612346576040517f7185cf6b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5060010161227d565b50604080850151606086015191517f320488750000000000000000000000000000000000000000000000000000000081526000926001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016926332048875926123c392879291600401615637565b602060405180830381865afa1580156123e0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612404919061566d565b905080600003612440576040517fea75680100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60005b83811015610d395760008660000151828151811061246357612463615034565b60200260200101519050600061247c826060015161062f565b9050600081600381111561249257612492614203565b14806124af575060038160038111156124ad576124ad614203565b145b6124f557816060015167ffffffffffffffff167fe3dd0bec917c965a133ddb2c84874725ee1e2fd8d763c19efa36d6a11cd82b1f60405160405180910390a25050612af1565b8651606090158015906125e05788858151811061251457612514615034565b6020908102919091018101510151600a5490925060009063ffffffff1661253b8842614f73565b119050808061255b5750600384600381111561255957612559614203565b145b612591576040517f6358b0d000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8986815181106125a3576125a3615034565b6020026020010151600001516000146125da578986815181106125c8576125c8615034565b60209081029190910101515160808601525b50612645565b60008360038111156125f4576125f4614203565b1461264557606084015160405167ffffffffffffffff90911681527f67d9ba0f63d427c482c2736300e6d5a34c6691dbcdea8ad35828a1f1ba47e8729060200160405180910390a150505050612af1565b60c084015167ffffffffffffffff16156128c8576020808501516001600160a01b03166000908152600f909152604081205467ffffffffffffffff1690819003612831577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316156128315760208501516040517f856c82470000000000000000000000000000000000000000000000000000000081526001600160a01b0391821660048201527f00000000000000000000000000000000000000000000000000000000000000009091169063856c824790602401602060405180830381865afa15801561273e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061276291906152c5565b60c086015190915067ffffffffffffffff1661277f826001615686565b67ffffffffffffffff16146127e15784602001516001600160a01b03168560c0015167ffffffffffffffff167fe44a20935573a783dd0d5991c92d7b6a0eb3173566530364db3ec10e9a990b5d60405160405180910390a35050505050612af1565b6020858101516001600160a01b03166000908152600f9091526040902080547fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000001667ffffffffffffffff83161790555b600084600381111561284557612845614203565b036128c65760c085015167ffffffffffffffff16612864826001615686565b67ffffffffffffffff16146128c65784602001516001600160a01b03168560c0015167ffffffffffffffff167fd32ddb11d71e3d63411d37b09f9a8b28664f1cb1338bfd1413c173b0ebf4123760405160405180910390a35050505050612af1565b505b60008a6020015186815181106128e0576128e0615034565b6020026020010151905061290c85606001518660000151876101400151518861012001515185516135fd565b61291b8560600151600161377e565b600080612929878487613828565b9150915061293b87606001518361377e565b83156129a757600382600381111561295557612955614203565b036129a757600086600381111561296e5761296e614203565b146129a757806040517fcf19edfd0000000000000000000000000000000000000000000000000000000081526004016106ee91906142a4565b60028260038111156129bb576129bb614203565b14612a135760038260038111156129d4576129d4614203565b14612a13578660600151826040517f9e2616030000000000000000000000000000000000000000000000000000000081526004016106ee9291906156a7565b60c087015167ffffffffffffffff1615612a9b576000866003811115612a3b57612a3b614203565b03612a9b576020808801516001600160a01b03166000908152600f90915260408120805467ffffffffffffffff1691612a73836156c5565b91906101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550505b866101800151876060015167ffffffffffffffff167fd4f851956a5d67c3997d1c9205045fef79bae2947fdee7e9e2641abc7391ef658484604051612ae19291906156e2565b60405180910390a3505050505050505b600101612443565b8154600090612b2290700100000000000000000000000000000000900463ffffffff1642614f73565b90508015612bc45760018301548354612b6a916fffffffffffffffffffffffffffffffff80821692811691859170010000000000000000000000000000000090910416613461565b83546fffffffffffffffffffffffffffffffff919091167fffffffffffffffffffffffff0000000000000000000000000000000000000000909116177001000000000000000000000000000000004263ffffffff16021783555b60208201518354612bea916fffffffffffffffffffffffffffffffff90811691166138f5565b83548351151574010000000000000000000000000000000000000000027fffffffffffffffffffffff00ffffffff000000000000000000000000000000009091166fffffffffffffffffffffffffffffffff92831617178455602083015160408085015183167001000000000000000000000000000000000291909216176001850155517f9ea3374b67bf275e6bb9c8ae68f9cae023e1c528b4b27e092f0bb209d3531c1990612cd19084908151151581526020808301516fffffffffffffffffffffffffffffffff90811691830191909152604092830151169181019190915260600190565b60405180910390a1505050565b60006106a48261390b565b6000808080612cf88686613916565b909450925050505b9250929050565b336001600160a01b03821603612d79576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f43616e6e6f74207472616e7366657220746f2073656c6600000000000000000060448201526064016106ee565b600180547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0383811691821790925560008054604051929316917fed8889f560326eb138920d842192f0eb3dd22b4f139c87a2c57538e05bae12789190a350565b60408051808201909152600080825260208201526000612e058460200151613925565b6040517fbbe4f6db0000000000000000000000000000000000000000000000000000000081526001600160a01b0380831660048301529192506000917f0000000000000000000000000000000000000000000000000000000000000000169063bbe4f6db90602401602060405180830381865afa158015612e8a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612eae9190615702565b90506001600160a01b0381161580612ef65750612ef46001600160a01b0382167faff2afbf00000000000000000000000000000000000000000000000000000000611eca565b155b15612f38576040517fae9b4ce90000000000000000000000000000000000000000000000000000000081526001600160a01b03821660048201526024016106ee565b600080600061303d6040518061010001604052808c81526020017f000000000000000000000000000000000000000000000000000000000000000067ffffffffffffffff1681526020018b6001600160a01b031681526020018d8152602001876001600160a01b031681526020018a6000015181526020018a60400151815260200189815250604051602401612fce919061571f565b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f390775370000000000000000000000000000000000000000000000000000000017905260608a0151869063ffffffff1661138860846139cb565b9250925092508261307c57816040517fe1cd55090000000000000000000000000000000000000000000000000000000081526004016106ee91906142a4565b81516020146130c45781516040517f78ef80240000000000000000000000000000000000000000000000000000000081526020600482015260248101919091526044016106ee565b6000828060200190518101906130da919061566d565b6040516001600160a01b0380881660248301528c1660448201526064810182905290915061317f9060840160408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f23b872dd0000000000000000000000000000000000000000000000000000000017905260608b0151889061317590869063ffffffff16614f73565b61138860846139cb565b509094509250836131be57826040517fe1cd55090000000000000000000000000000000000000000000000000000000081526004016106ee91906142a4565b604080518082019091526001600160a01b0390961686526020860152509293505050505b95945050505050565b6000611100836001600160a01b038416613af1565b81516040517fd02641a00000000000000000000000000000000000000000000000000000000081526001600160a01b03918216600482015260009182919084169063d02641a0906024016040805180830381865afa158015613266573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061328a91906157f6565b5190507bffffffffffffffffffffffffffffffffffffffffffffffffffffffff81166000036132f35783516040517f9a655f7b0000000000000000000000000000000000000000000000000000000081526001600160a01b0390911660048201526024016106ee565b6020840151611fc3907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff831690613afd565b6118396003826000613b3a565b600061335a827f01ffc9a700000000000000000000000000000000000000000000000000000000613392565b80156106a4575061338b827fffffffff00000000000000000000000000000000000000000000000000000000613392565b1592915050565b604080517fffffffff000000000000000000000000000000000000000000000000000000008316602480830191909152825180830390910181526044909101909152602080820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f01ffc9a700000000000000000000000000000000000000000000000000000000178152825160009392849283928392918391908a617530fa92503d9150600051905082801561344a575060208210155b80156134565750600081115b979650505050505050565b60006131e2856134718486614fdc565b61347b90876152e2565b6138f5565b60006111008383613e89565b6000611fc384846001600160a01b038516613ea6565b60008060001b8284602001518560400151866060015187608001518860a001518960c001518a60e001518b61010001516040516020016135389897969594939291906001600160a01b039889168152968816602088015267ffffffffffffffff95861660408801526060870194909452911515608086015290921660a0840152921660c082015260e08101919091526101000190565b60405160208183030381529060405280519060200120856101200151805190602001208661014001516040516020016135719190615856565b6040516020818303038152906040528051906020012087610160015160405160200161359d91906158c3565b60408051601f198184030181528282528051602091820120908301979097528101949094526060840192909252608083015260a082015260c081019190915260e00160405160208183030381529060405280519060200120905092915050565b7f000000000000000000000000000000000000000000000000000000000000000067ffffffffffffffff168467ffffffffffffffff1614613676576040517f1279ec8a00000000000000000000000000000000000000000000000000000000815267ffffffffffffffff851660048201526024016106ee565b600a5468010000000000000000900461ffff168311156136ce576040517f099d3f7200000000000000000000000000000000000000000000000000000000815267ffffffffffffffff861660048201526024016106ee565b808314613713576040517f8808f8e700000000000000000000000000000000000000000000000000000000815267ffffffffffffffff861660048201526024016106ee565b600a54640100000000900463ffffffff1682111561377757600a546040517f8693378900000000000000000000000000000000000000000000000000000000815264010000000090910463ffffffff166004820152602481018390526044016106ee565b5050505050565b6000600261378d608085614fb5565b67ffffffffffffffff166137a19190614fdc565b905060006010816137b3608087614ff3565b67ffffffffffffffff1681526020810191909152604001600020549050816137dd60016004614f73565b901b1916818360038111156137f4576137f4614203565b901b178060106000613807608088614ff3565b67ffffffffffffffff16815260208101919091526040016000205550505050565b6040517f30c2fd4400000000000000000000000000000000000000000000000000000000815260009060609030906330c2fd449061386e908890889088906004016158d6565b600060405180830381600087803b15801561388857600080fd5b505af1925050508015613899575060015b6138d8573d8080156138c7576040519150601f19603f3d011682016040523d82523d6000602084013e6138cc565b606091505b506003925090506138ed565b50506040805160208101909152600081526002905b935093915050565b60008183106139045781611100565b5090919050565b60006106a482613ec3565b6000808080612cf88686613ece565b6000815160201461396457816040517f8d666f600000000000000000000000000000000000000000000000000000000081526004016106ee91906142a4565b60008280602001905181019061397a919061566d565b90506001600160a01b03811180613992575061040081105b156106a457826040517f8d666f600000000000000000000000000000000000000000000000000000000081526004016106ee91906142a4565b6000606060008361ffff1667ffffffffffffffff8111156139ee576139ee6142b7565b6040519080825280601f01601f191660200182016040528015613a18576020820181803683370190505b509150863b613a4b577f0c3b563c0000000000000000000000000000000000000000000000000000000060005260046000fd5b5a85811015613a7e577fafa32a2c0000000000000000000000000000000000000000000000000000000060005260046000fd5b8590036040810481038710613ab7577f37c3be290000000000000000000000000000000000000000000000000000000060005260046000fd5b505a6000808a5160208c0160008c8cf193505a900390503d84811115613ada5750835b808352806000602085013e50955095509592505050565b60006111008383613ef9565b6000670de0b6b3a7640000613b30837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8616614fdc565b6111009190615a55565b825474010000000000000000000000000000000000000000900460ff161580613b61575081155b15613b6b57505050565b825460018401546fffffffffffffffffffffffffffffffff80831692911690600090613bb190700100000000000000000000000000000000900463ffffffff1642614f73565b90508015613c715781831115613bf3576040517f9725942a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001860154613c2d9083908590849070010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff16613461565b86547fffffffffffffffffffffffff00000000ffffffffffffffffffffffffffffffff167001000000000000000000000000000000004263ffffffff160217875592505b84821015613d0e576001600160a01b038416613cc3576040517ff94ebcd100000000000000000000000000000000000000000000000000000000815260048101839052602481018690526044016106ee565b6040517f1a76572a00000000000000000000000000000000000000000000000000000000815260048101839052602481018690526001600160a01b03851660448201526064016106ee565b84831015613e075760018681015470010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff16906000908290613d529082614f73565b613d5c878a614f73565b613d6691906152e2565b613d709190615a55565b90506001600160a01b038616613dbc576040517f15279c0800000000000000000000000000000000000000000000000000000000815260048101829052602481018690526044016106ee565b6040517fd0c8d23a00000000000000000000000000000000000000000000000000000000815260048101829052602481018690526001600160a01b03871660448201526064016106ee565b613e118584614f73565b86547fffffffffffffffffffffffffffffffff00000000000000000000000000000000166fffffffffffffffffffffffffffffffff82161787556040518681529093507f1871cdf8010e63f2eb8384381a68dfa7416dc571a5517e66e88b2d2d0c0a690a9060200160405180910390a1505050505050565b600081815260028301602052604081208190556111008383613f05565b60008281526002840160205260408120829055611fc38484613f11565b60006106a482613f1d565b60008080613edc8585613f27565b600081815260029690960160205260409095205494959350505050565b60006111008383613f33565b60006111008383613f4b565b60006111008383614045565b60006106a4825490565b60006111008383614094565b60008181526001830160205260408120541515611100565b60008181526001830160205260408120548015614034576000613f6f600183614f73565b8554909150600090613f8390600190614f73565b9050818114613fe8576000866000018281548110613fa357613fa3615034565b9060005260206000200154905080876000018481548110613fc657613fc6615034565b6000918252602080832090910192909255918252600188019052604090208390555b8554869080613ff957613ff9615a69565b6001900381819060005260206000200160009055905585600101600086815260200190815260200160002060009055600193505050506106a4565b60009150506106a4565b5092915050565b600081815260018301602052604081205461408c575081546001818101845560008481526020808220909301849055845484825282860190935260409020919091556106a4565b5060006106a4565b60008260000182815481106140ab576140ab615034565b9060005260206000200154905092915050565b82805482825590600052602060002090810192821561412b579160200282015b8281111561412b57825182547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b039091161782556020909201916001909101906140de565b5061413792915061413b565b5090565b5b80821115614137576000815560010161413c565b60e081016106a482846001600160a01b03808251168352602082015167ffffffffffffffff808216602086015280604085015116604086015250508060608301511660608401528060808301511660808401528060a08301511660a08401528060c08301511660c0840152505050565b67ffffffffffffffff8116811461183957600080fd5b80356141e1816141c0565b919050565b6000602082840312156141f857600080fd5b8135611100816141c0565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b6004811061424257614242614203565b9052565b602081016106a48284614232565b60005b8381101561426f578181015183820152602001614257565b50506000910152565b60008151808452614290816020860160208601614254565b601f01601f19169290920160200192915050565b6020815260006111006020830184614278565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040805190810167ffffffffffffffff81118282101715614309576143096142b7565b60405290565b6040516101a0810167ffffffffffffffff81118282101715614309576143096142b7565b6040516080810167ffffffffffffffff81118282101715614309576143096142b7565b604051601f8201601f1916810167ffffffffffffffff8111828210171561437f5761437f6142b7565b604052919050565b600067ffffffffffffffff8211156143a1576143a16142b7565b5060051b60200190565b6001600160a01b038116811461183957600080fd5b80356141e1816143ab565b600082601f8301126143dc57600080fd5b813560206143f16143ec83614387565b614356565b8083825260208201915060208460051b87010193508684111561441357600080fd5b602086015b84811015611ebf57803561442b816143ab565b8352918301918301614418565b803560ff811681146141e157600080fd5b600067ffffffffffffffff821115614463576144636142b7565b50601f01601f191660200190565b600082601f83011261448257600080fd5b81356144906143ec82614449565b8181528460208386010111156144a557600080fd5b816020850160208301376000918101602001919091529392505050565b60008060008060008060c087890312156144db57600080fd5b863567ffffffffffffffff808211156144f357600080fd5b6144ff8a838b016143cb565b9750602089013591508082111561451557600080fd5b6145218a838b016143cb565b965061452f60408a01614438565b9550606089013591508082111561454557600080fd5b6145518a838b01614471565b945061455f60808a016141d6565b935060a089013591508082111561457557600080fd5b5061458289828a01614471565b9150509295509295509295565b801515811461183957600080fd5b80356141e18161458f565b600082601f8301126145b957600080fd5b813560206145c96143ec83614387565b82815260069290921b840181019181810190868411156145e857600080fd5b8286015b84811015611ebf57604081890312156146055760008081fd5b61460d6142e6565b8135614618816143ab565b815281850135858201528352918301916040016145ec565b600082601f83011261464157600080fd5b813560206146516143ec83614387565b82815260059290921b8401810191818101908684111561467057600080fd5b8286015b84811015611ebf57803567ffffffffffffffff8111156146945760008081fd5b6146a28986838b0101614471565b845250918301918301614674565b60006101a082840312156146c357600080fd5b6146cb61430f565b90506146d6826141d6565b81526146e4602083016143c0565b60208201526146f5604083016143c0565b6040820152614706606083016141d6565b60608201526080820135608082015261472160a0830161459d565b60a082015261473260c083016141d6565b60c082015261474360e083016143c0565b60e082015261010082810135908201526101208083013567ffffffffffffffff8082111561477057600080fd5b61477c86838701614471565b8385015261014092508285013591508082111561479857600080fd5b6147a4868387016145a8565b838501526101609250828501359150808211156147c057600080fd5b506147cd85828601614630565b82840152505061018080830135818301525092915050565b600082601f8301126147f657600080fd5b813560206148066143ec83614387565b8083825260208201915060208460051b87010193508684111561482857600080fd5b602086015b84811015611ebf578035835291830191830161482d565b60008060006060848603121561485957600080fd5b833567ffffffffffffffff8082111561487157600080fd5b61487d878388016146b0565b9450602086013591508082111561489357600080fd5b61489f87838801614630565b935060408601359150808211156148b557600080fd5b506148c2868287016147e5565b9150509250925092565b60008151808452602080850194506020840160005b838110156149065781516001600160a01b0316875295820195908201906001016148e1565b509495945050505050565b60208152600061110060208301846148cc565b60006020828403121561493657600080fd5b8135611100816143ab565b60a081016106a4828463ffffffff8082511683528060208301511660208401525061ffff604082015116604083015260608101516001600160a01b03808216606085015280608084015116608085015250505050565b6000602082840312156149a957600080fd5b813567ffffffffffffffff8111156149c057600080fd5b820160a0818503121561110057600080fd5b600082601f8301126149e357600080fd5b813560206149f36143ec83614387565b82815260069290921b84018101918181019086841115614a1257600080fd5b8286015b84811015611ebf5760408189031215614a2f5760008081fd5b614a376142e6565b8135614a42816143ab565b815281850135614a51816143ab565b81860152835291830191604001614a16565b60008060408385031215614a7657600080fd5b823567ffffffffffffffff80821115614a8e57600080fd5b614a9a868387016149d2565b93506020850135915080821115614ab057600080fd5b50614abd858286016149d2565b9150509250929050565b60008083601f840112614ad957600080fd5b50813567ffffffffffffffff811115614af157600080fd5b6020830191508360208260051b8501011115612d0057600080fd5b60008060008060008060008060e0898b031215614b2857600080fd5b606089018a811115614b3957600080fd5b8998503567ffffffffffffffff80821115614b5357600080fd5b818b0191508b601f830112614b6757600080fd5b813581811115614b7657600080fd5b8c6020828501011115614b8857600080fd5b6020830199508098505060808b0135915080821115614ba657600080fd5b614bb28c838d01614ac7565b909750955060a08b0135915080821115614bcb57600080fd5b50614bd88b828c01614ac7565b999c989b50969995989497949560c00135949350505050565b600082601f830112614c0257600080fd5b81356020614c126143ec83614387565b82815260059290921b84018101918181019086841115614c3157600080fd5b8286015b84811015611ebf57803567ffffffffffffffff811115614c555760008081fd5b614c638986838b0101614630565b845250918301918301614c35565b600060808284031215614c8357600080fd5b614c8b614333565b9050813567ffffffffffffffff80821115614ca557600080fd5b818401915084601f830112614cb957600080fd5b81356020614cc96143ec83614387565b82815260059290921b84018101918181019088841115614ce857600080fd5b8286015b84811015614d2057803586811115614d045760008081fd5b614d128b86838b01016146b0565b845250918301918301614cec565b5086525085810135935082841115614d3757600080fd5b614d4387858801614bf1565b90850152506040840135915080821115614d5c57600080fd5b50614d69848285016147e5565b6040830152506060820135606082015292915050565b6000806040808486031215614d9357600080fd5b833567ffffffffffffffff80821115614dab57600080fd5b614db787838801614c71565b9450602091508186013581811115614dce57600080fd5b8601601f81018813614ddf57600080fd5b8035614ded6143ec82614387565b81815260059190911b8201840190848101908a831115614e0c57600080fd5b8584015b83811015614e7f57803586811115614e285760008081fd5b8501808d03601f1901891315614e3e5760008081fd5b614e466142e6565b8882013581528982013588811115614e5e5760008081fd5b614e6c8f8b838601016147e5565b828b015250845250918601918601614e10565b50809750505050505050509250929050565b80356fffffffffffffffffffffffffffffffff811681146141e157600080fd5b600060608284031215614ec357600080fd5b6040516060810181811067ffffffffffffffff82111715614ee657614ee66142b7565b6040528235614ef48161458f565b8152614f0260208401614e91565b6020820152614f1360408401614e91565b60408201529392505050565b604081526000614f3260408301856148cc565b82810360208401526131e281856148cc565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b818103818111156106a4576106a4614f44565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600067ffffffffffffffff80841680614fd057614fd0614f86565b92169190910692915050565b80820281158282048414176106a4576106a4614f44565b600067ffffffffffffffff8084168061500e5761500e614f86565b92169190910492915050565b602081016003831061502e5761502e614203565b91905290565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600063ffffffff80831681810361507c5761507c614f44565b6001019392505050565b600061012063ffffffff808d1684528b6020850152808b166040850152508060608401526150b68184018a6148cc565b905082810360808401526150ca81896148cc565b905060ff871660a084015282810360c08401526150e78187614278565b905067ffffffffffffffff851660e084015282810361010084015261510c8185614278565b9c9b505050505050505050505050565b60008151808452602080850194506020840160005b8381101561490657815180516001600160a01b031688528301518388015260409096019590820190600101615131565b608081528451608082015267ffffffffffffffff60208601511660a08201526000604086015160a060c084015261519c610120840182614278565b905060608701517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff80808584030160e08601526151d88383614278565b9250608089015191508085840301610100860152506151f7828261511c565b9250505061520b602083018661ffff169052565b8360408301526131e260608301846001600160a01b03169052565b600082601f83011261523757600080fd5b81516152456143ec82614449565b81815284602083860101111561525a57600080fd5b611fc3826020830160208701614254565b60008060006060848603121561528057600080fd5b835161528b8161458f565b602085015190935067ffffffffffffffff8111156152a857600080fd5b6152b486828701615226565b925050604084015190509250925092565b6000602082840312156152d757600080fd5b8151611100816141c0565b808201808211156106a4576106a4614f44565b805163ffffffff811681146141e157600080fd5b60006020828403121561531b57600080fd5b815167ffffffffffffffff8082111561533357600080fd5b908301906080828603121561534757600080fd5b61534f614333565b82518281111561535e57600080fd5b61536a87828601615226565b82525060208301518281111561537f57600080fd5b61538b87828601615226565b6020830152506040830151828111156153a357600080fd5b6153af87828601615226565b6040830152506153c1606084016152f5565b606082015295945050505050565b600060a082840312156153e157600080fd5b60405160a0810181811067ffffffffffffffff82111715615404576154046142b7565b604052615410836152f5565b815261541e602084016152f5565b6020820152604083015161ffff8116811461543857600080fd5b6040820152606083015161544b816143ab565b6060820152608083015161545e816143ab565b60808201529392505050565b61018081016154db82856001600160a01b03808251168352602082015167ffffffffffffffff808216602086015280604085015116604086015250508060608301511660608401528060808301511660808401528060a08301511660a08401528060c08301511660c0840152505050565b825163ffffffff90811660e0840152602084015116610100830152604083015161ffff1661012083015260608301516001600160a01b03908116610140840152608084015116610160830152611100565b60006101208b83526001600160a01b038b16602084015267ffffffffffffffff808b1660408501528160608501526155668285018b6148cc565b9150838203608085015261557a828a6148cc565b915060ff881660a085015283820360c08501526155978288614278565b90861660e0850152838103610100850152905061510c8185614278565b6000602082840312156155c657600080fd5b813567ffffffffffffffff8111156155dd57600080fd5b611fc384828501614c71565b6000602082840312156155fb57600080fd5b81516111008161458f565b60008151808452602080850194506020840160005b838110156149065781518752958201959082019060010161561b565b60608152600061564a6060830186615606565b828103602084015261565c8186615606565b915050826040830152949350505050565b60006020828403121561567f57600080fd5b5051919050565b67ffffffffffffffff81811683821601908082111561403e5761403e614f44565b67ffffffffffffffff83168152604081016111006020830184614232565b600067ffffffffffffffff80831681810361507c5761507c614f44565b6156ec8184614232565b604060208201526000611fc36040830184614278565b60006020828403121561571457600080fd5b8151611100816143ab565b602081526000825161010080602085015261573e610120850183614278565b9150602085015161575b604086018267ffffffffffffffff169052565b5060408501516001600160a01b03811660608601525060608501516080850152608085015161579560a08601826001600160a01b03169052565b5060a0850151601f19808685030160c08701526157b28483614278565b935060c08701519150808685030160e08701526157cf8483614278565b935060e08701519150808685030183870152506157ec8382614278565b9695505050505050565b60006040828403121561580857600080fd5b6158106142e6565b82517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8116811461583c57600080fd5b815261584a602084016152f5565b60208201529392505050565b602081526000611100602083018461511c565b60008282518085526020808601955060208260051b8401016020860160005b848110156158b657601f198684030189526158a4838351614278565b98840198925090830190600101615888565b5090979650505050505050565b6020815260006111006020830184615869565b606081526158f160608201855167ffffffffffffffff169052565b6000602085015161590d60808401826001600160a01b03169052565b5060408501516001600160a01b03811660a084015250606085015167ffffffffffffffff811660c084015250608085015160e083015260a08501516101006159588185018315159052565b60c087015191506101206159778186018467ffffffffffffffff169052565b60e08801519250610140615995818701856001600160a01b03169052565b828901519350610160925083838701528189015193506101a0915061018082818801526159c6610200880186614278565b9450818a015191507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa0808887030184890152615a02868461511c565b948b01518886039091016101c0890152939450615a1f8585615869565b9450808a01516101e0880152505050508281036020840152615a418186615869565b905082810360408401526157ec8185615606565b600082615a6457615a64614f86565b500490565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fdfea164736f6c6343000818000a", } var EVM2EVMOffRampABI = EVM2EVMOffRampMetaData.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 04c5bd8265..dedc69ca74 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 @@ -12,7 +12,7 @@ commit_store_helper: ../../../contracts/solc/v0.8.24/CommitStoreHelper/CommitSto ether_sender_receiver: ../../../contracts/solc/v0.8.24/EtherSenderReceiver/EtherSenderReceiver.abi ../../../contracts/solc/v0.8.24/EtherSenderReceiver/EtherSenderReceiver.bin 09510a3f773f108a3c231e8d202835c845ded862d071ec54c4f89c12d868b8de evm_2_evm_multi_offramp: ../../../contracts/solc/v0.8.24/EVM2EVMMultiOffRamp/EVM2EVMMultiOffRamp.abi ../../../contracts/solc/v0.8.24/EVM2EVMMultiOffRamp/EVM2EVMMultiOffRamp.bin cb1c4d1bd8460181f1545524bc2537a58f6839ee0acad6a068f5e24216a9cee9 evm_2_evm_multi_onramp: ../../../contracts/solc/v0.8.24/EVM2EVMMultiOnRamp/EVM2EVMMultiOnRamp.abi ../../../contracts/solc/v0.8.24/EVM2EVMMultiOnRamp/EVM2EVMMultiOnRamp.bin 15cd5695049ab4be1f396ec1d7b609738b2bcefa3740a7a48316e1f72506a34a -evm_2_evm_offramp: ../../../contracts/solc/v0.8.24/EVM2EVMOffRamp/EVM2EVMOffRamp.abi ../../../contracts/solc/v0.8.24/EVM2EVMOffRamp/EVM2EVMOffRamp.bin 92ee6b8783adcfead5cab489153c2867f904dfa73c8484f00cf4ae61a4bfbc3c +evm_2_evm_offramp: ../../../contracts/solc/v0.8.24/EVM2EVMOffRamp/EVM2EVMOffRamp.abi ../../../contracts/solc/v0.8.24/EVM2EVMOffRamp/EVM2EVMOffRamp.bin d3fad9c29bcfee3af0d8561f1cb5a7ff195fbecb32a7c7a9d160adff85e200d3 evm_2_evm_onramp: ../../../contracts/solc/v0.8.24/EVM2EVMOnRamp/EVM2EVMOnRamp.abi ../../../contracts/solc/v0.8.24/EVM2EVMOnRamp/EVM2EVMOnRamp.bin bf1a3090a2f8d1632b82a6d45200cf6f3833a1e27303745405c1ed13ffc0cf83 lock_release_token_pool: ../../../contracts/solc/v0.8.24/LockReleaseTokenPool/LockReleaseTokenPool.abi ../../../contracts/solc/v0.8.24/LockReleaseTokenPool/LockReleaseTokenPool.bin ee60ad24918c9652ef4b251236dd3390cce651b685e94532bf3bde2a111fe6b9 lock_release_token_pool_and_proxy: ../../../contracts/solc/v0.8.24/LockReleaseTokenPoolAndProxy/LockReleaseTokenPoolAndProxy.abi ../../../contracts/solc/v0.8.24/LockReleaseTokenPoolAndProxy/LockReleaseTokenPoolAndProxy.bin e23f4fd063eb3a289d651016ac45fcef72607ce2b571cba134e2bf35590c114d