diff --git a/abi-bindings/go/validator-manager/ERC20TokenStakingManager/ERC20TokenStakingManager.go b/abi-bindings/go/validator-manager/ERC20TokenStakingManager/ERC20TokenStakingManager.go index edde4c1d2..7c5be1c03 100644 --- a/abi-bindings/go/validator-manager/ERC20TokenStakingManager/ERC20TokenStakingManager.go +++ b/abi-bindings/go/validator-manager/ERC20TokenStakingManager/ERC20TokenStakingManager.go @@ -103,8 +103,8 @@ type ValidatorRegistrationInput struct { // ERC20TokenStakingManagerMetaData contains all meta data concerning the ERC20TokenStakingManager contract. var ERC20TokenStakingManagerMetaData = &bind.MetaData{ - ABI: "[{\"inputs\":[{\"internalType\":\"enumICMInitializable\",\"name\":\"init\",\"type\":\"uint8\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"AddressInsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"delegationID\",\"type\":\"bytes32\"}],\"name\":\"DelegatorIneligibleForRewards\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedInnerCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"}],\"name\":\"InvalidBLSKeyLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"encodedConversionID\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"expectedConversionID\",\"type\":\"bytes32\"}],\"name\":\"InvalidConversionID\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"delegationFeeBips\",\"type\":\"uint16\"}],\"name\":\"InvalidDelegationFee\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"delegationID\",\"type\":\"bytes32\"}],\"name\":\"InvalidDelegationID\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"enumDelegatorStatus\",\"name\":\"status\",\"type\":\"uint8\"}],\"name\":\"InvalidDelegatorStatus\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitializationStatus\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"maximumChurnPercentage\",\"type\":\"uint8\"}],\"name\":\"InvalidMaximumChurnPercentage\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"minStakeDuration\",\"type\":\"uint64\"}],\"name\":\"InvalidMinStakeDuration\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"nodeID\",\"type\":\"bytes\"}],\"name\":\"InvalidNodeID\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"name\":\"InvalidNonce\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"threshold\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"addressesLength\",\"type\":\"uint256\"}],\"name\":\"InvalidPChainOwnerThreshold\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"registrationExpiry\",\"type\":\"uint64\"}],\"name\":\"InvalidRegistrationExpiry\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"rewardRecipient\",\"type\":\"address\"}],\"name\":\"InvalidRewardRecipient\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"stakeAmount\",\"type\":\"uint256\"}],\"name\":\"InvalidStakeAmount\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"maximumStakeMultiplier\",\"type\":\"uint8\"}],\"name\":\"InvalidStakeMultiplier\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"tokenAddress\",\"type\":\"address\"}],\"name\":\"InvalidTokenAddress\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"weight\",\"type\":\"uint64\"}],\"name\":\"InvalidTotalWeight\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"uptimeBlockchainID\",\"type\":\"bytes32\"}],\"name\":\"InvalidUptimeBlockchainID\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"}],\"name\":\"InvalidValidationID\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"validatorManagerAddress\",\"type\":\"address\"}],\"name\":\"InvalidValidatorManagerAddress\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"blockchainID\",\"type\":\"bytes32\"}],\"name\":\"InvalidValidatorManagerBlockchainID\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"enumValidatorStatus\",\"name\":\"status\",\"type\":\"uint8\"}],\"name\":\"InvalidValidatorStatus\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidWarpMessage\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"senderAddress\",\"type\":\"address\"}],\"name\":\"InvalidWarpOriginSenderAddress\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"sourceChainID\",\"type\":\"bytes32\"}],\"name\":\"InvalidWarpSourceChainID\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"churnAmount\",\"type\":\"uint64\"}],\"name\":\"MaxChurnRateExceeded\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"newValidatorWeight\",\"type\":\"uint64\"}],\"name\":\"MaxWeightExceeded\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"endTime\",\"type\":\"uint64\"}],\"name\":\"MinStakeDurationNotPassed\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"nodeID\",\"type\":\"bytes\"}],\"name\":\"NodeAlreadyRegistered\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"PChainOwnerAddressesNotSorted\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ReentrancyGuardReentrantCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"SafeERC20FailedOperation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"UnauthorizedOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"validRegistration\",\"type\":\"bool\"}],\"name\":\"UnexpectedRegistrationStatus\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"}],\"name\":\"ValidatorIneligibleForRewards\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"}],\"name\":\"ValidatorNotPoS\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZeroWeightToValueFactor\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"delegationID\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"rewards\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"fees\",\"type\":\"uint256\"}],\"name\":\"DelegationEnded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"delegationID\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"delegatorAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"validatorWeight\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"delegatorWeight\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"setWeightMessageID\",\"type\":\"bytes32\"}],\"name\":\"DelegatorAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"delegationID\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"startTime\",\"type\":\"uint256\"}],\"name\":\"DelegatorRegistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"delegationID\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"}],\"name\":\"DelegatorRemovalInitialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes\",\"name\":\"nodeID\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"weight\",\"type\":\"uint64\"}],\"name\":\"InitialValidatorCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"uptime\",\"type\":\"uint64\"}],\"name\":\"UptimeUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes\",\"name\":\"nodeID\",\"type\":\"bytes\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"registerValidationMessageID\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"weight\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"registrationExpiry\",\"type\":\"uint64\"}],\"name\":\"ValidationPeriodCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"enumValidatorStatus\",\"name\":\"status\",\"type\":\"uint8\"}],\"name\":\"ValidationPeriodEnded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"weight\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"name\":\"ValidationPeriodRegistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"setWeightMessageID\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"weight\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"endTime\",\"type\":\"uint256\"}],\"name\":\"ValidatorRemovalInitialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"weight\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"setWeightMessageID\",\"type\":\"bytes32\"}],\"name\":\"ValidatorWeightUpdate\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"ADDRESS_LENGTH\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"BIPS_CONVERSION_FACTOR\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"BLS_PUBLIC_KEY_LENGTH\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ERC20_STAKING_MANAGER_STORAGE_LOCATION\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MAXIMUM_CHURN_PERCENTAGE_LIMIT\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MAXIMUM_DELEGATION_FEE_BIPS\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MAXIMUM_REGISTRATION_EXPIRY_LENGTH\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MAXIMUM_STAKE_MULTIPLIER_LIMIT\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"POS_VALIDATOR_MANAGER_STORAGE_LOCATION\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"P_CHAIN_BLOCKCHAIN_ID\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"VALIDATOR_MANAGER_STORAGE_LOCATION\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"WARP_MESSENGER\",\"outputs\":[{\"internalType\":\"contractIWarpMessenger\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"delegationID\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"rewardRecipient\",\"type\":\"address\"}],\"name\":\"changeDelegatorRewardRecipient\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"rewardRecipient\",\"type\":\"address\"}],\"name\":\"changeValidatorRewardRecipient\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"}],\"name\":\"claimDelegationFees\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"delegationID\",\"type\":\"bytes32\"},{\"internalType\":\"uint32\",\"name\":\"messageIndex\",\"type\":\"uint32\"}],\"name\":\"completeDelegatorRegistration\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"delegationID\",\"type\":\"bytes32\"},{\"internalType\":\"uint32\",\"name\":\"messageIndex\",\"type\":\"uint32\"}],\"name\":\"completeEndDelegation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"messageIndex\",\"type\":\"uint32\"}],\"name\":\"completeEndValidation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"messageIndex\",\"type\":\"uint32\"}],\"name\":\"completeValidatorRegistration\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"erc20\",\"outputs\":[{\"internalType\":\"contractIERC20Mintable\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"delegationID\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"includeUptimeProof\",\"type\":\"bool\"},{\"internalType\":\"uint32\",\"name\":\"messageIndex\",\"type\":\"uint32\"}],\"name\":\"forceInitializeEndDelegation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"delegationID\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"includeUptimeProof\",\"type\":\"bool\"},{\"internalType\":\"uint32\",\"name\":\"messageIndex\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"rewardRecipient\",\"type\":\"address\"}],\"name\":\"forceInitializeEndDelegation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"includeUptimeProof\",\"type\":\"bool\"},{\"internalType\":\"uint32\",\"name\":\"messageIndex\",\"type\":\"uint32\"}],\"name\":\"forceInitializeEndValidation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"includeUptimeProof\",\"type\":\"bool\"},{\"internalType\":\"uint32\",\"name\":\"messageIndex\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"rewardRecipient\",\"type\":\"address\"}],\"name\":\"forceInitializeEndValidation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"}],\"name\":\"getValidator\",\"outputs\":[{\"components\":[{\"internalType\":\"enumValidatorStatus\",\"name\":\"status\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"nodeID\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"startingWeight\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"messageNonce\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"weight\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"startedAt\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"endedAt\",\"type\":\"uint64\"}],\"internalType\":\"structValidator\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"}],\"name\":\"getWeight\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"l1ID\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"churnPeriodSeconds\",\"type\":\"uint64\"},{\"internalType\":\"uint8\",\"name\":\"maximumChurnPercentage\",\"type\":\"uint8\"}],\"internalType\":\"structValidatorManagerSettings\",\"name\":\"baseSettings\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"minimumStakeAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maximumStakeAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"minimumStakeDuration\",\"type\":\"uint64\"},{\"internalType\":\"uint16\",\"name\":\"minimumDelegationFeeBips\",\"type\":\"uint16\"},{\"internalType\":\"uint8\",\"name\":\"maximumStakeMultiplier\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"weightToValueFactor\",\"type\":\"uint256\"},{\"internalType\":\"contractIRewardCalculator\",\"name\":\"rewardCalculator\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"uptimeBlockchainID\",\"type\":\"bytes32\"}],\"internalType\":\"structPoSValidatorManagerSettings\",\"name\":\"settings\",\"type\":\"tuple\"},{\"internalType\":\"contractIERC20Mintable\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"delegationAmount\",\"type\":\"uint256\"}],\"name\":\"initializeDelegatorRegistration\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"delegationID\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"includeUptimeProof\",\"type\":\"bool\"},{\"internalType\":\"uint32\",\"name\":\"messageIndex\",\"type\":\"uint32\"}],\"name\":\"initializeEndDelegation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"delegationID\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"includeUptimeProof\",\"type\":\"bool\"},{\"internalType\":\"uint32\",\"name\":\"messageIndex\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"rewardRecipient\",\"type\":\"address\"}],\"name\":\"initializeEndDelegation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"includeUptimeProof\",\"type\":\"bool\"},{\"internalType\":\"uint32\",\"name\":\"messageIndex\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"rewardRecipient\",\"type\":\"address\"}],\"name\":\"initializeEndValidation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"includeUptimeProof\",\"type\":\"bool\"},{\"internalType\":\"uint32\",\"name\":\"messageIndex\",\"type\":\"uint32\"}],\"name\":\"initializeEndValidation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"nodeID\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"blsPublicKey\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"registrationExpiry\",\"type\":\"uint64\"},{\"components\":[{\"internalType\":\"uint32\",\"name\":\"threshold\",\"type\":\"uint32\"},{\"internalType\":\"address[]\",\"name\":\"addresses\",\"type\":\"address[]\"}],\"internalType\":\"structPChainOwner\",\"name\":\"remainingBalanceOwner\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint32\",\"name\":\"threshold\",\"type\":\"uint32\"},{\"internalType\":\"address[]\",\"name\":\"addresses\",\"type\":\"address[]\"}],\"internalType\":\"structPChainOwner\",\"name\":\"disableOwner\",\"type\":\"tuple\"}],\"internalType\":\"structValidatorRegistrationInput\",\"name\":\"registrationInput\",\"type\":\"tuple\"},{\"internalType\":\"uint16\",\"name\":\"delegationFeeBips\",\"type\":\"uint16\"},{\"internalType\":\"uint64\",\"name\":\"minStakeDuration\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"stakeAmount\",\"type\":\"uint256\"}],\"name\":\"initializeValidatorRegistration\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"l1ID\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"validatorManagerBlockchainID\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"validatorManagerAddress\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"bytes\",\"name\":\"nodeID\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"blsPublicKey\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"weight\",\"type\":\"uint64\"}],\"internalType\":\"structInitialValidator[]\",\"name\":\"initialValidators\",\"type\":\"tuple[]\"}],\"internalType\":\"structConversionData\",\"name\":\"conversionData\",\"type\":\"tuple\"},{\"internalType\":\"uint32\",\"name\":\"messageIndex\",\"type\":\"uint32\"}],\"name\":\"initializeValidatorSet\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"nodeID\",\"type\":\"bytes\"}],\"name\":\"registeredValidators\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"}],\"name\":\"resendEndValidatorMessage\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"}],\"name\":\"resendRegisterValidatorMessage\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"delegationID\",\"type\":\"bytes32\"}],\"name\":\"resendUpdateDelegation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"internalType\":\"uint32\",\"name\":\"messageIndex\",\"type\":\"uint32\"}],\"name\":\"submitUptimeProof\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"valueToWeight\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"weight\",\"type\":\"uint64\"}],\"name\":\"weightToValue\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}]", - Bin: "0x608060405234801561000f575f80fd5b50604051615f7d380380615f7d83398101604081905261002e91610107565b60018160018111156100425761004261012c565b0361004f5761004f610055565b50610140565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff16156100a55760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b03908116146101045780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b5f60208284031215610117575f80fd5b815160028110610125575f80fd5b9392505050565b634e487b7160e01b5f52602160045260245ffd5b615e308061014d5f395ff3fe608060405234801561000f575f80fd5b506004361061024a575f3560e01c80637d8d2f7711610140578063afb98096116100bf578063c974d1b611610084578063c974d1b614610532578063d5f20ff61461053a578063df93d8de1461055a578063e4a63c4014610564578063fb8b11dd14610578578063fd7ac5e71461058b575f80fd5b8063afb98096146104c3578063b771b3bc146104ea578063ba3a4b97146104f8578063bc5fbfec1461050b578063bee0a03f1461051f575f80fd5b80639ae06447116101055780639ae06447146104775780639e1bc4ef1461048a5780639e478eea1461049d578063a3a65e48146104b0578063a9778a7a146102f9575f80fd5b80637d8d2f771461042357806380dd672f146104365780638280a25a146104495780638ef34c981461045157806393e2459814610464575f80fd5b8063467ef06f116101cc578063620658561161019157806362065856146103b257806366435abf146103c5578063732214f8146103d857806376f78621146103df578063785e9e86146103f2575f80fd5b8063467ef06f1461033b5780634bee00401461034e5780635dd6a6cb1461036f57806360305d621461038257806360ad77841461039f575f80fd5b806325e1c7761161021257806325e1c776146102bb5780632e2194d8146102ce57806335455ded146102f957806337b9be8f146103155780633a1cfff614610328575f80fd5b80630118acc41461024e5780630322ed9814610263578063151d30d1146102765780631ec447241461029557806320d91b7a146102a8575b5f80fd5b61026161025c366004614d74565b61059e565b005b610261610271366004614daf565b6105af565b61027e600a81565b60405160ff90911681526020015b60405180910390f35b6102616102a3366004614d74565b61083f565b6102616102b6366004614dc6565b61084b565b6102616102c9366004614e14565b610e01565b6102e16102dc366004614daf565b610e75565b6040516001600160401b03909116815260200161028c565b61030261271081565b60405161ffff909116815260200161028c565b610261610323366004614e49565b610ec9565b610261610336366004614d74565b610edc565b610261610349366004614e97565b610ee8565b61036161035c366004614ed5565b610fba565b60405190815260200161028c565b61026161037d366004614e49565b610fef565b61038a601481565b60405163ffffffff909116815260200161028c565b6102616103ad366004614e14565b610ffb565b6103616103c0366004614f3c565b6112c3565b6102e16103d3366004614daf565b6112e3565b6103615f81565b6102616103ed366004614d74565b6112f7565b5f80516020615d7b833981519152546001600160a01b03165b6040516001600160a01b03909116815260200161028c565b610261610431366004614e49565b611303565b610261610444366004614e14565b61130f565b61027e603081565b61026161045f366004614f57565b611549565b610261610472366004614daf565b6115fa565b610261610485366004614e49565b61168e565b610361610498366004614f85565b61169a565b6102616104ab366004614fa5565b6116c6565b6102616104be366004614e97565b6117a5565b6103617f4317713f7ecbdddd4bc99e95d903adedaa883b2e7c2551610bd13e2c7e473d0081565b61040b6005600160991b0181565b610261610506366004614daf565b61199b565b6103615f80516020615d9b83398151915281565b61026161052d366004614daf565b611bf4565b61027e601481565b61054d610548366004614daf565b611d30565b60405161028c919061504d565b6102e16202a30081565b6103615f80516020615d7b83398151915281565b610261610586366004614f57565b611e7f565b6103616105993660046150cd565b611f16565b6105aa8383835f611f71565b505050565b5f8181525f80516020615dbb8339815191526020526040808220815160e0810190925280545f80516020615d9b83398151915293929190829060ff1660058111156105fc576105fc614fd8565b600581111561060d5761060d614fd8565b815260200160018201805461062190615138565b80601f016020809104026020016040519081016040528092919081815260200182805461064d90615138565b80156106985780601f1061066f57610100808354040283529160200191610698565b820191905f5260205f20905b81548152906001019060200180831161067b57829003601f168201915b505050918352505060028201546001600160401b038082166020840152600160401b820481166040840152600160801b820481166060840152600160c01b909104811660808301526003928301541660a0909101529091508151600581111561070357610703614fd8565b1461073f575f8381526005830160205260409081902054905163170cc93360e21b81526107369160ff1690600401615170565b60405180910390fd5b606081015160405163854a893f60e01b8152600481018590526001600160401b0390911660248201525f60448201526005600160991b019063ee5b48eb9073__$fd0c147b4031eef6079b0498cbafa865f0$__9063854a893f906064015f60405180830381865af41580156107b6573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526107dd9190810190615279565b6040518263ffffffff1660e01b81526004016107f991906152aa565b6020604051808303815f875af1158015610815573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061083991906152bc565b50505050565b6108398383835f611f9d565b7fe92546d698950ddd38910d2e15ed1d923cd0a7b3dde9e2a6a3f380565559cb07545f80516020615d9b8339815191529060ff161561089d57604051637fab81e560e01b815260040160405180910390fd5b6005600160991b016001600160a01b0316634213cf786040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108e0573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061090491906152bc565b83602001351461092d576040516372b0a7e760e11b815260208401356004820152602401610736565b3061093e60608501604086016152d3565b6001600160a01b0316146109815761095c60608401604085016152d3565b604051632f88120d60e21b81526001600160a01b039091166004820152602401610736565b5f61098f60608501856152ee565b905090505f805b828163ffffffff161015610bf7575f6109b260608801886152ee565b8363ffffffff168181106109c8576109c8615333565b90506020028101906109da9190615347565b6109e3906153b2565b80516040519192505f9160068801916109fb9161542d565b90815260200160405180910390205414610a2b57805160405163a41f772f60e01b815261073691906004016152aa565b5f6002885f013584604051602001610a5a92919091825260e01b6001600160e01b031916602082015260240190565b60408051601f1981840301815290829052610a749161542d565b602060405180830381855afa158015610a8f573d5f803e3d5ffd5b5050506040513d601f19601f82011682018060405250810190610ab291906152bc565b90508086600601835f0151604051610aca919061542d565b90815260408051918290036020908101909220929092555f8381526005890190915220805460ff191660021781558251600190910190610b0a9082615482565b50604082810180515f84815260058a016020529290922060028101805492516001600160401b039485166001600160c01b031990941693909317600160801b85851602176001600160c01b0316600160c01b429590951694909402939093179092556003909101805467ffffffffffffffff19169055610b8a9085615551565b8251604051919550610b9b9161542d565b60408051918290038220908401516001600160401b031682529082907ffe3e5983f71c8253fb0b678f2bc587aa8574d8f1aab9cf82b983777f5998392c9060200160405180910390a3505080610bf090615571565b9050610996565b5060038301805467ffffffffffffffff60401b1916600160401b6001600160401b0384168102919091179091556001840154606491610c3a910460ff1683615593565b6001600160401b03161015610c6d57604051633e1a785160e01b81526001600160401b0382166004820152602401610736565b5f73__$fd0c147b4031eef6079b0498cbafa865f0$__634d847884610c91876122ca565b604001516040518263ffffffff1660e01b8152600401610cb191906152aa565b602060405180830381865af4158015610ccc573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610cf091906152bc565b90505f73__$fd0c147b4031eef6079b0498cbafa865f0$__6387418b8e886040518263ffffffff1660e01b8152600401610d2a91906156e9565b5f60405180830381865af4158015610d44573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052610d6b9190810190615279565b90505f600282604051610d7e919061542d565b602060405180830381855afa158015610d99573d5f803e3d5ffd5b5050506040513d601f19601f82011682018060405250810190610dbc91906152bc565b9050828114610de85760405163baaea89d60e01b81526004810182905260248101849052604401610736565b5050506007909201805460ff1916600117905550505050565b610e0a826123e0565b610e2a576040516330efa98b60e01b815260048101839052602401610736565b5f610e3483611d30565b5190506002816005811115610e4b57610e4b614fd8565b14610e6b578060405163170cc93360e21b81526004016107369190615170565b6108398383612409565b5f80610e7f6126a8565b60030154610e8d908461577d565b9050801580610ea257506001600160401b0381115b15610ec35760405163222d164360e21b815260048101849052602401610736565b92915050565b610ed584848484611f9d565b5050505050565b6108398383835f6126cc565b610ef0612909565b5f610ef96126a8565b90505f80610f0684612940565b91509150610f13826123e0565b610f1f57505050610fa1565b5f828152600684016020908152604080832054600b870190925290912080546001600160a01b031981169091556001600160a01b03918216911680610f615750805b600483516005811115610f7657610f76614fd8565b03610f8557610f858185612cf8565b610f9b82610f9685604001516112c3565b612d22565b50505050505b610fb760015f80516020615ddb83398151915255565b50565b5f610fc3612909565b610fcf85858585612d58565b9050610fe760015f80516020615ddb83398151915255565b949350505050565b61083984848484612ed8565b5f6110046126a8565b5f848152600782016020526040808220815160e0810190925280549394509192909190829060ff16600381111561103d5761103d614fd8565b600381111561104e5761104e614fd8565b8152815461010090046001600160a01b0316602082015260018201546040808301919091526002909201546001600160401b038082166060840152600160401b820481166080840152600160801b8204811660a0840152600160c01b9091041660c0909101528101519091505f6110c482611d30565b90506001835160038111156110db576110db614fd8565b146110fc578251604051633b0d540d60e21b8152610736919060040161579c565b60048151600581111561111157611111614fd8565b036111275761111f86612f04565b505050505050565b5f8073__$fd0c147b4031eef6079b0498cbafa865f0$__6350782b0f61114c896122ca565b604001516040518263ffffffff1660e01b815260040161116c91906152aa565b606060405180830381865af4158015611187573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111ab91906157b6565b50915091508184146111d857846040015160405163089938b360e11b815260040161073691815260200190565b806001600160401b031683606001516001600160401b031610806112115750806001600160401b03168560a001516001600160401b0316115b1561123a57604051632e19bc2d60e11b81526001600160401b0382166004820152602401610736565b5f888152600787016020908152604091829020805460ff1916600290811782550180546001600160401b034216600160401b810267ffffffffffffffff60401b1990921691909117909155915191825285918a917f047059b465069b8b751836b41f9f1d83daff583d2238cc7fbb461437ec23a4f6910160405180910390a35050505050505050565b5f6112cc6126a8565b60030154610ec3906001600160401b0384166157f6565b5f6112ed82611d30565b6080015192915050565b6105aa8383835f612ed8565b610ed5848484846126cc565b611317612909565b5f6113206126a8565b5f848152600782016020526040808220815160e0810190925280549394509192909190829060ff16600381111561135957611359614fd8565b600381111561136a5761136a614fd8565b8152815461010090046001600160a01b03166020820152600182015460408201526002909101546001600160401b038082166060840152600160401b820481166080840152600160801b8204811660a0840152600160c01b9091041660c09091015290506003815160038111156113e3576113e3614fd8565b14611404578051604051633b0d540d60e21b8152610736919060040161579c565b60046114138260400151611d30565b51600581111561142557611425614fd8565b14611524575f611434846122ca565b90505f8073__$fd0c147b4031eef6079b0498cbafa865f0$__6350782b0f84604001516040518263ffffffff1660e01b815260040161147391906152aa565b606060405180830381865af415801561148e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906114b291906157b6565b5091509150818460400151146114de5760405163089938b360e11b815260048101839052602401610736565b806001600160401b03168460c001516001600160401b0316111561152057604051632e19bc2d60e11b81526001600160401b0382166004820152602401610736565b5050505b61152d84612f04565b505061154560015f80516020615ddb83398151915255565b5050565b5f6115526126a8565b90506001600160a01b0382166115865760405163caa903f960e01b81526001600160a01b0383166004820152602401610736565b5f8381526006820160205260409020546001600160a01b031633146115cc57335b604051636e2ccd7560e11b81526001600160a01b039091166004820152602401610736565b5f928352600b01602052604090912080546001600160a01b0319166001600160a01b03909216919091179055565b5f6116036126a8565b90505f61160f83611d30565b519050600481600581111561162657611626614fd8565b14611646578060405163170cc93360e21b81526004016107369190615170565b5f8381526006830160205260409020546001600160a01b0316331461166b57336115a7565b5f8381526006830160205260409020546105aa906001600160a01b031684612cf8565b61083984848484611f71565b5f6116a3612909565b6116ae8333846130fe565b9050610ec360015f80516020615ddb83398151915255565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805460029190600160401b900460ff168061170f575080546001600160401b03808416911610155b1561172d5760405163f92ee8a960e01b815260040160405180910390fd5b805468ffffffffffffffffff19166001600160401b03831617600160401b1781556117588484613343565b805460ff60401b191681556040516001600160401b03831681527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a150505050565b5f80516020615d9b8339815191525f8073__$fd0c147b4031eef6079b0498cbafa865f0$__63021de88f6117d8866122ca565b604001516040518263ffffffff1660e01b81526004016117f891906152aa565b6040805180830381865af4158015611812573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611836919061580d565b915091508061185c57604051632d07135360e01b81528115156004820152602401610736565b5f8281526004840160205260409020805461187690615138565b90505f0361189a5760405163089938b360e11b815260048101839052602401610736565b60015f838152600580860160205260409091205460ff16908111156118c1576118c1614fd8565b146118f4575f8281526005840160205260409081902054905163170cc93360e21b81526107369160ff1690600401615170565b5f828152600484016020526040812061190c91614cc3565b5f828152600584016020908152604091829020805460ff1916600290811782550180546001600160401b0342818116600160c01b026001600160c01b0390931692909217928390558451600160801b9093041682529181019190915283917f8629ec2bfd8d3b792ba269096bb679e08f20ba2caec0785ef663cf94788e349b910160405180910390a250505050565b5f6119a46126a8565b5f838152600782016020526040808220815160e0810190925280549394509192909190829060ff1660038111156119dd576119dd614fd8565b60038111156119ee576119ee614fd8565b8152815461010090046001600160a01b0316602082015260018083015460408301526002909201546001600160401b038082166060840152600160401b820481166080840152600160801b8204811660a0840152600160c01b9091041660c09091015290915081516003811115611a6757611a67614fd8565b14158015611a885750600381516003811115611a8557611a85614fd8565b14155b15611aa9578051604051633b0d540d60e21b8152610736919060040161579c565b5f611ab78260400151611d30565b905080606001516001600160401b03165f03611ae9576040516339b894f960e21b815260048101859052602401610736565b60408083015160608301516080840151925163854a893f60e01b81526005600160991b019363ee5b48eb9373__$fd0c147b4031eef6079b0498cbafa865f0$__9363854a893f93611b5793906004019283526001600160401b03918216602084015216604082015260600190565b5f60405180830381865af4158015611b71573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052611b989190810190615279565b6040518263ffffffff1660e01b8152600401611bb491906152aa565b6020604051808303815f875af1158015611bd0573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ed591906152bc565b5f8181527fe92546d698950ddd38910d2e15ed1d923cd0a7b3dde9e2a6a3f380565559cb046020526040902080545f80516020615d9b8339815191529190611c3b90615138565b90505f03611c5f5760405163089938b360e11b815260048101839052602401610736565b60015f838152600580840160205260409091205460ff1690811115611c8657611c86614fd8565b14611cb9575f8281526005820160205260409081902054905163170cc93360e21b81526107369160ff1690600401615170565b5f8281526004808301602052604091829020915163ee5b48eb60e01b81526005600160991b019263ee5b48eb92611cf09201615830565b6020604051808303815f875af1158015611d0c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105aa91906152bc565b611d38614cfa565b5f8281525f80516020615dbb833981519152602052604090819020815160e0810190925280545f80516020615d9b833981519152929190829060ff166005811115611d8557611d85614fd8565b6005811115611d9657611d96614fd8565b8152602001600182018054611daa90615138565b80601f0160208091040260200160405190810160405280929190818152602001828054611dd690615138565b8015611e215780601f10611df857610100808354040283529160200191611e21565b820191905f5260205f20905b815481529060010190602001808311611e0457829003601f168201915b505050918352505060028201546001600160401b038082166020840152600160401b820481166040840152600160801b820481166060840152600160c01b9091048116608083015260039092015490911660a0909101529392505050565b6001600160a01b038116611eb15760405163caa903f960e01b81526001600160a01b0382166004820152602401610736565b5f611eba6126a8565b5f8481526007820160205260409020549091506001600160a01b03610100909104163314611ee857336115a7565b5f928352600901602052604090912080546001600160a01b0319166001600160a01b03909216919091179055565b6040515f905f80516020615d9b833981519152907fe92546d698950ddd38910d2e15ed1d923cd0a7b3dde9e2a6a3f380565559cb0690611f5990869086906158ba565b90815260200160405180910390205491505092915050565b611f7d84848484611f9d565b61083957604051631036cf9160e11b815260048101859052602401610736565b5f80611fa76126a8565b5f878152600782016020526040808220815160e0810190925280549394509192909190829060ff166003811115611fe057611fe0614fd8565b6003811115611ff157611ff1614fd8565b8152815461010090046001600160a01b0316602082015260018201546040808301919091526002909201546001600160401b038082166060840152600160401b820481166080840152600160801b8204811660a0840152600160c01b9091041660c0909101528101519091505f61206782611d30565b905060028351600381111561207e5761207e614fd8565b1461209f578251604051633b0d540d60e21b8152610736919060040161579c565b60208301516001600160a01b0316331461213b575f8281526006850160205260409020546001600160a01b031633146120d857336115a7565b5f82815260068501602052604090205460a082015161210791600160b01b90046001600160401b031690615551565b6001600160401b031642101561213b5760405163fb6ce63f60e01b81526001600160401b0342166004820152602401610736565b60028151600581111561215057612150614fd8565b036122725760028401546080840151612172916001600160401b031690615551565b6001600160401b03164210156121a65760405163fb6ce63f60e01b81526001600160401b0342166004820152602401610736565b87156121b8576121b68288612409565b505b5f8981526007850160205260409020805460ff19166003179055606083015160808201516121f19184916121ec91906158c9565b61335d565b505f8a8152600786016020526040812060020180546001600160401b03909316600160c01b026001600160c01b039093169290921790915561223484888c613534565b9050828a7f366d336c0ab380dc799f095a6f82a26326585c52909cc698b09ba4540709ed5760405160405180910390a315159450610fe79350505050565b60048151600581111561228757612287614fd8565b036122ae5761229783878b613534565b506122a189612f04565b6001945050505050610fe7565b805160405163170cc93360e21b81526107369190600401615170565b60408051606080820183525f8083526020830152918101919091526040516306f8253560e41b815263ffffffff831660048201525f9081906005600160991b0190636f825350906024015f60405180830381865afa15801561232e573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405261235591908101906158e9565b915091508061237757604051636b2f19e960e01b815260040160405180910390fd5b81511561239d578151604051636ba589a560e01b81526004810191909152602401610736565b60208201516001600160a01b0316156123d9576020820151604051624de75d60e31b81526001600160a01b039091166004820152602401610736565b5092915050565b5f806123ea6126a8565b5f938452600601602052505060409020546001600160a01b0316151590565b6040516306f8253560e41b815263ffffffff821660048201525f90819081906005600160991b0190636f825350906024015f60405180830381865afa158015612454573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405261247b91908101906158e9565b915091508061249d57604051636b2f19e960e01b815260040160405180910390fd5b5f6124a66126a8565b60058101548451919250146124d4578251604051636ba589a560e01b81526004810191909152602401610736565b60208301516001600160a01b031615612510576020830151604051624de75d60e31b81526001600160a01b039091166004820152602401610736565b60208301516001600160a01b03161561254c576020830151604051624de75d60e31b81526001600160a01b039091166004820152602401610736565b5f8073__$fd0c147b4031eef6079b0498cbafa865f0$__63088c246386604001516040518263ffffffff1660e01b815260040161258991906152aa565b6040805180830381865af41580156125a3573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906125c79190615979565b915091508188146125ee5760405163089938b360e11b815260048101899052602401610736565b5f8881526006840160205260409020600101546001600160401b03908116908216111561267f575f888152600684016020908152604091829020600101805467ffffffffffffffff19166001600160401b038516908117909155915191825289917fec44148e8ff271f2d0bacef1142154abacb0abb3a29eb3eb50e2ca97e86d0435910160405180910390a261269d565b505f8781526006830160205260409020600101546001600160401b03165b979650505050505050565b7f4317713f7ecbdddd4bc99e95d903adedaa883b2e7c2551610bd13e2c7e473d0090565b5f806126d66126a8565b90505f6126e287613722565b90506126ed876123e0565b6126fc57600192505050610fe7565b5f8781526006830160205260409020546001600160a01b0316331461272157336115a7565b5f87815260068301602052604090205460a082015161275091600160b01b90046001600160401b031690615551565b6001600160401b03168160c001516001600160401b031610156127975760c081015160405163fb6ce63f60e01b81526001600160401b039091166004820152602401610736565b5f86156127af576127a88887612409565b90506127cd565b505f8781526006830160205260409020600101546001600160401b03165b600483015460408301515f916001600160a01b031690634f22429f906127f2906112c3565b60a086015160c087015160405160e085901b6001600160e01b031916815260048101939093526001600160401b03918216602484018190526044840152811660648301528516608482015260a401602060405180830381865afa15801561285b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061287f91906152bc565b90506001600160a01b0386166128ab575f8981526006850160205260409020546001600160a01b031695505b5f898152600a85016020526040812080548392906128ca90849061599c565b90915550505f898152600b909401602052604090932080546001600160a01b0387166001600160a01b0319909116179055505015159050949350505050565b5f80516020615ddb83398151915280546001190161293a57604051633ee5aeb560e01b815260040160405180910390fd5b60029055565b5f612949614cfa565b5f80516020615d9b8339815191525f8073__$fd0c147b4031eef6079b0498cbafa865f0$__63021de88f61297c886122ca565b604001516040518263ffffffff1660e01b815260040161299c91906152aa565b6040805180830381865af41580156129b6573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906129da919061580d565b915091508015612a0157604051632d07135360e01b81528115156004820152602401610736565b5f82815260058085016020526040808320815160e08101909252805491929091839160ff90911690811115612a3857612a38614fd8565b6005811115612a4957612a49614fd8565b8152602001600182018054612a5d90615138565b80601f0160208091040260200160405190810160405280929190818152602001828054612a8990615138565b8015612ad45780601f10612aab57610100808354040283529160200191612ad4565b820191905f5260205f20905b815481529060010190602001808311612ab757829003601f168201915b505050918352505060028201546001600160401b038082166020840152600160401b820481166040840152600160801b820481166060840152600160c01b909104811660808301526003928301541660a09091015290915081516005811115612b3f57612b3f614fd8565b14158015612b605750600181516005811115612b5d57612b5d614fd8565b14155b15612b8157805160405163170cc93360e21b81526107369190600401615170565b600381516005811115612b9657612b96614fd8565b03612ba45760048152612ba9565b600581525b836006018160200151604051612bbf919061542d565b90815260408051602092819003830190205f90819055858152600587810190935220825181548493839160ff1916906001908490811115612c0257612c02614fd8565b021790555060208201516001820190612c1b9082615482565b5060408201516002820180546060850151608086015160a08701516001600160401b039586166001600160801b031990941693909317600160401b92861692909202919091176001600160801b0316600160801b918516919091026001600160c01b031617600160c01b9184169190910217905560c0909201516003909101805467ffffffffffffffff19169190921617905580516005811115612cc157612cc1614fd8565b60405184907f1c08e59656f1a18dc2da76826cdc52805c43e897a17c50faefb8ab3c1526cc16905f90a39196919550909350505050565b5f612d016126a8565b5f838152600a82016020526040812080549190559091506108398482613a07565b5f80516020615d7b83398151915254611545906001600160a01b03168383613a7d565b60015f80516020615ddb83398151915255565b5f80612d626126a8565b600281015490915061ffff600160401b90910481169086161080612d8b575061271061ffff8616115b15612daf57604051635f12e6c360e11b815261ffff86166004820152602401610736565b60028101546001600160401b039081169085161015612deb576040516202a06d60e11b81526001600160401b0385166004820152602401610736565b8054831080612dfd5750806001015483115b15612e1e5760405163222d164360e21b815260048101849052602401610736565b5f612e2884613adc565b90505f612e3482610e75565b90505f612e418983613aff565b5f818152600686016020908152604080832080546001600160401b039c909c16600160b01b0267ffffffffffffffff60b01b1961ffff9e909e16600160a01b02336001600160b01b0319909e168e17179d909d169c909c178c556001909b01805467ffffffffffffffff19169055600b9096019095529790932080546001600160a01b031916909617909555509395945050505050565b612ee4848484846126cc565b61083957604051635bff683f60e11b815260048101859052602401610736565b5f612f0d6126a8565b5f838152600782016020526040808220815160e0810190925280549394509192909190829060ff166003811115612f4657612f46614fd8565b6003811115612f5757612f57614fd8565b8152815461010090046001600160a01b0316602082015260018201546040808301919091526002909201546001600160401b038082166060840152600160401b820481166080840152600160801b8204811660a0840152600160c01b9091041660c090910152810151909150612ff47fe92546d698950ddd38910d2e15ed1d923cd0a7b3dde9e2a6a3f380565559cb01546001600160401b031690565b82608001516130039190615551565b6001600160401b03164210156130375760405163fb6ce63f60e01b81526001600160401b0342166004820152602401610736565b5f848152600784016020908152604080832080546001600160a81b03191681556001810184905560020183905560098601909152902080546001600160a01b031981169091556001600160a01b031680613092575060208201515b5f8061309f838886614071565b915091506130b88560200151610f9687606001516112c3565b6040805183815260208101839052859189917f8ececf510070c320d9a55323ffabe350e294ae505fc0c509dc5736da6f5cc993910160405180910390a350505050505050565b5f806131086126a8565b90505f6131176102dc85613adc565b90505f61312387611d30565b905061312e876123e0565b61314e576040516330efa98b60e01b815260048101889052602401610736565b60028151600581111561316357613163614fd8565b1461318457805160405163170cc93360e21b81526107369190600401615170565b5f8282608001516131959190615551565b905083600201600a9054906101000a90046001600160401b031682604001516131be9190615593565b6001600160401b0316816001600160401b031611156131fb57604051636d51fe0560e11b81526001600160401b0382166004820152602401610736565b5f806132078a8461335d565b915091505f8a8360405160200161323592919091825260c01b6001600160c01b031916602082015260280190565b60408051601f1981840301815291815281516020928301205f81815260078b019093529120805491925060019160ff1916828002179055505f8181526007880160209081526040918290208054610100600160a81b0319166101006001600160a01b038f16908102919091178255600182018f9055600290910180546001600160401b038b81166001600160c01b03199092168217600160801b8a8316908102919091176001600160c01b031690935585519283528916938201939093529283019190915260608201849052908c9083907fb0024b263bc3a0b728a6edea50a69efa841189f8d32ee8af9d1c2b1a1a2234269060800160405180910390a496505050505050505b9392505050565b61334b61411e565b61335482614169565b611545816141e3565b5f8281525f80516020615dbb833981519152602052604081206002015481905f80516020615d9b83398151915290600160801b90046001600160401b03166133a5858261424b565b5f6133af876144b5565b5f888152600585016020526040808220600201805467ffffffffffffffff60801b1916600160801b6001600160401b038c811691820292909217909255915163854a893f60e01b8152600481018c905291841660248301526044820152919250906005600160991b019063ee5b48eb9073__$fd0c147b4031eef6079b0498cbafa865f0$__9063854a893f906064015f60405180830381865af4158015613458573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405261347f9190810190615279565b6040518263ffffffff1660e01b815260040161349b91906152aa565b6020604051808303815f875af11580156134b7573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906134db91906152bc565b604080516001600160401b038a811682526020820184905282519394508516928b927f07de5ff35a674a8005e661f3333c907ca6333462808762d19dc7b3abb1a8c1df928290030190a3909450925050505b9250929050565b5f8061353e6126a8565b90505f61354e8660400151611d30565b90505f60038251600581111561356657613566614fd8565b1480613584575060048251600581111561358257613582614fd8565b145b15613594575060c08101516135d1565b6002825160058111156135a9576135a9614fd8565b036135b55750426135d1565b815160405163170cc93360e21b81526107369190600401615170565b86608001516001600160401b0316816001600160401b0316116135f9575f935050505061333c565b600483015460608801515f916001600160a01b031690634f22429f9061361e906112c3565b60a086015160808c01516040808e01515f90815260068b0160205281902060010154905160e086901b6001600160e01b031916815260048101949094526001600160401b0392831660248501529082166044840152818716606484015216608482015260a401602060405180830381865afa15801561369f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906136c391906152bc565b90506001600160a01b0387166136db57876020015196505b5f8681526008850160209081526040808320849055600990960190529390932080546001600160a01b0388166001600160a01b031990911617905550909150509392505050565b61372a614cfa565b5f8281525f80516020615dbb8339815191526020526040808220815160e0810190925280545f80516020615d9b83398151915293929190829060ff16600581111561377757613777614fd8565b600581111561378857613788614fd8565b815260200160018201805461379c90615138565b80601f01602080910402602001604051908101604052809291908181526020018280546137c890615138565b80156138135780601f106137ea57610100808354040283529160200191613813565b820191905f5260205f20905b8154815290600101906020018083116137f657829003601f168201915b50505091835250506002828101546001600160401b038082166020850152600160401b820481166040850152600160801b820481166060850152600160c01b9091048116608084015260039093015490921660a0909101529091508151600581111561388157613881614fd8565b146138b4575f8481526005830160205260409081902054905163170cc93360e21b81526107369160ff1690600401615170565b60038152426001600160401b031660c08201525f84815260058381016020526040909120825181548493839160ff19169060019084908111156138f9576138f9614fd8565b0217905550602082015160018201906139129082615482565b5060408201516002820180546060850151608086015160a08701516001600160401b039586166001600160801b031990941693909317600160401b92861692909202919091176001600160801b0316600160801b918516919091026001600160c01b031617600160c01b9184169190910217905560c0909201516003909101805467ffffffffffffffff1916919092161790555f6139b0858261335d565b6080840151604080516001600160401b03909216825242602083015291935083925087917ffbfc4c00cddda774e9bce93712e29d12887b46526858a1afb0937cce8c30fa42910160405180910390a3509392505050565b5f5f80516020615d7b83398151915280546040516340c10f1960e01b81526001600160a01b038681166004830152602482018690529293509116906340c10f19906044015f604051808303815f87803b158015613a62575f80fd5b505af1158015613a74573d5f803e3d5ffd5b50505050505050565b6040516001600160a01b038381166024830152604482018390526105aa91859182169063a9059cbb906064015b604051602081830303815290604052915060e01b6020820180516001600160e01b03838183161783525050505061452a565b5f610ec3825f80516020615d7b833981519152546001600160a01b03169061458b565b7fe92546d698950ddd38910d2e15ed1d923cd0a7b3dde9e2a6a3f380565559cb07545f9060ff16613b4357604051637fab81e560e01b815260040160405180910390fd5b5f80516020615d9b83398151915242613b626060860160408701614f3c565b6001600160401b0316111580613b9c5750613b806202a3004261599c565b613b906060860160408701614f3c565b6001600160401b031610155b15613bd657613bb16060850160408601614f3c565b604051635879da1360e11b81526001600160401b039091166004820152602401610736565b60038101546001600160401b0390613bf990600160401b9004821685831661599c565b1115613c2357604051633e1a785160e01b81526001600160401b0384166004820152602401610736565b613c38613c3360608601866159af565b614597565b613c48613c3360808601866159af565b6030613c5760208601866159c3565b905014613c8957613c6b60208501856159c3565b6040516326475b2f60e11b8152610736925060040190815260200190565b613c9384806159c3565b90505f03613cc057613ca584806159c3565b604051633e08a12560e11b8152600401610736929190615a05565b5f60068201613ccf86806159c3565b604051613cdd9291906158ba565b90815260200160405180910390205414613d1657613cfb84806159c3565b60405163a41f772f60e01b8152600401610736929190615a05565b613d20835f61424b565b6040805160e08101909152815481525f90819073__$fd0c147b4031eef6079b0498cbafa865f0$__9063eb97ce519060208101613d5d8a806159c3565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250505090825250602090810190613da5908b018b6159c3565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250505090825250602001613dee60608b0160408c01614f3c565b6001600160401b03168152602001613e0960608b018b6159af565b613e1290615a18565b8152602001613e2460808b018b6159af565b613e2d90615a18565b8152602001886001600160401b03168152506040518263ffffffff1660e01b8152600401613e5b9190615b45565b5f60405180830381865af4158015613e75573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052613e9c9190810190615bfc565b5f82815260048601602052604090209193509150613eba8282615482565b508160068401613eca88806159c3565b604051613ed89291906158ba565b9081526040519081900360200181209190915563ee5b48eb60e01b81525f906005600160991b019063ee5b48eb90613f149085906004016152aa565b6020604051808303815f875af1158015613f30573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613f5491906152bc565b5f8481526005860160205260409020805460ff191660011790559050613f7a87806159c3565b5f858152600587016020526040902060010191613f98919083615c3f565b505f83815260058501602052604090206002810180546001600160c01b0319166001600160401b038916908117600160801b91909102176001600160c01b03169055600301805467ffffffffffffffff1916905580613ff788806159c3565b6040516140059291906158ba565b6040518091039020847fd8a184af94a03e121609cc5f803a446236793e920c7945abc6ba355c8a30cb49898b60400160208101906140439190614f3c565b604080516001600160401b0393841681529290911660208301520160405180910390a4509095945050505050565b5f805f61407c6126a8565b5f86815260088201602052604081208054908290559192509081908015614110575f878152600685016020526040902054612710906140c690600160a01b900461ffff16836157f6565b6140d0919061577d565b91508184600a015f8981526020019081526020015f205f8282546140f4919061599c565b9091555061410490508282615cf8565b92506141108984613a07565b509097909650945050505050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054600160401b900460ff1661416757604051631afcd79f60e31b815260040160405180910390fd5b565b61417161411e565b61417a81614700565b614182614719565b610fb76060820135608083013561419f60c0850160a08601614f3c565b6141af60e0860160c08701615d0b565b6141c0610100870160e08801615d24565b6101008701356141d861014089016101208a016152d3565b886101400135614729565b6141eb61411e565b5f80516020615d7b8339815191526001600160a01b03821661422b57604051637330680360e01b81526001600160a01b0383166004820152602401610736565b80546001600160a01b0319166001600160a01b0392909216919091179055565b5f80516020615d9b8339815191525f6001600160401b03808416908516111561427f5761427883856158c9565b905061428c565b61428984846158c9565b90505b60408051608081018252600284015480825260038501546001600160401b038082166020850152600160401b8204811694840194909452600160801b90049092166060820152429115806142f95750600184015481516142f5916001600160401b03169061599c565b8210155b15614321576001600160401b0380841660608301528282526040820151166020820152614340565b82816060018181516143339190615551565b6001600160401b03169052505b6060810151614350906064615593565b602082015160018601546001600160401b03929092169161437b9190600160401b900460ff16615593565b6001600160401b031610156143b457606081015160405163dfae880160e01b81526001600160401b039091166004820152602401610736565b85816040018181516143c69190615551565b6001600160401b03169052506040810180518691906143e69083906158c9565b6001600160401b03169052506001840154604082015160649161441491600160401b90910460ff1690615593565b6001600160401b0316101561444d576040808201519051633e1a785160e01b81526001600160401b039091166004820152602401610736565b8051600285015560208101516003909401805460408301516060909301516001600160401b03908116600160801b0267ffffffffffffffff60801b19948216600160401b026001600160801b0319909316919097161717919091169390931790925550505050565b5f8181525f80516020615dbb8339815191526020526040812060020180545f80516020615d9b83398151915291906008906144ff90600160401b90046001600160401b0316615d44565b91906101000a8154816001600160401b0302191690836001600160401b031602179055915050919050565b5f61453e6001600160a01b0384168361490e565b905080515f141580156145625750808060200190518101906145609190615d5f565b155b156105aa57604051635274afe760e01b81526001600160a01b0384166004820152602401610736565b5f61333c83338461491b565b6145a46020820182614e97565b63ffffffff161580156145c457506145bf60208201826152ee565b151590505b1561460b576145d66020820182614e97565b6145e360208301836152ee565b60405163c08a0f1d60e01b815263ffffffff9093166004840152602483015250604401610736565b61461860208201826152ee565b90506146276020830183614e97565b63ffffffff161115614640576145d66020820182614e97565b60015b61465060208301836152ee565b90508110156115455761466660208301836152ee565b614671600184615cf8565b81811061468057614680615333565b905060200201602081019061469591906152d3565b6001600160a01b03166146ab60208401846152ee565b838181106146bb576146bb615333565b90506020020160208101906146d091906152d3565b6001600160a01b031610156146f857604051630dbc8d5f60e31b815260040160405180910390fd5b600101614643565b61470861411e565b614710614a7e565b610fb781614a86565b61472161411e565b614167614b6e565b61473161411e565b5f61473a6126a8565b905061ffff86161580614752575061271061ffff8716115b1561477657604051635f12e6c360e11b815261ffff87166004820152602401610736565b8789111561479a5760405163222d164360e21b8152600481018a9052602401610736565b60ff851615806147ad5750600a60ff8616115b156147d05760405163170db35960e31b815260ff86166004820152602401610736565b7fe92546d698950ddd38910d2e15ed1d923cd0a7b3dde9e2a6a3f380565559cb01546001600160401b03166001600160401b0316876001600160401b03161015614837576040516202a06d60e11b81526001600160401b0388166004820152602401610736565b835f036148575760405163a733007160e01b815260040160405180910390fd5b8161487857604051632f6bd1db60e01b815260048101839052602401610736565b97885560018801969096556002870180546001600160401b039690961669ffffffffffffffffffff1990961695909517600160401b61ffff95909516949094029390931767ffffffffffffffff60501b191660ff92909216600160501b029190911790925560038401919091556004830180546001600160a01b0319166001600160a01b03909216919091179055600590910155565b606061333c83835f614b76565b6040516370a0823160e01b81523060048201525f9081906001600160a01b038616906370a0823190602401602060405180830381865afa158015614961573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061498591906152bc565b905061499c6001600160a01b038616853086614c05565b6040516370a0823160e01b81523060048201525f906001600160a01b038716906370a0823190602401602060405180830381865afa1580156149e0573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190614a0491906152bc565b9050818111614a6a5760405162461bcd60e51b815260206004820152602c60248201527f5361666545524332305472616e7366657246726f6d3a2062616c616e6365206e60448201526b1bdd081a5b98dc99585cd95960a21b6064820152608401610736565b614a748282615cf8565b9695505050505050565b61416761411e565b614a8e61411e565b80355f80516020615d9b8339815191529081556014614ab36060840160408501615d24565b60ff161180614ad25750614acd6060830160408401615d24565b60ff16155b15614b0657614ae76060830160408401615d24565b604051634a59bbff60e11b815260ff9091166004820152602401610736565b614b166060830160408401615d24565b60018201805460ff92909216600160401b0260ff60401b19909216919091179055614b476040830160208401614f3c565b600191909101805467ffffffffffffffff19166001600160401b0390921691909117905550565b612d4561411e565b606081471015614b9b5760405163cd78605960e01b8152306004820152602401610736565b5f80856001600160a01b03168486604051614bb6919061542d565b5f6040518083038185875af1925050503d805f8114614bf0576040519150601f19603f3d011682016040523d82523d5f602084013e614bf5565b606091505b5091509150614a74868383614c3e565b6040516001600160a01b0384811660248301528381166044830152606482018390526108399186918216906323b872dd90608401613aaa565b606082614c5357614c4e82614c9a565b61333c565b8151158015614c6a57506001600160a01b0384163b155b15614c9357604051639996b31560e01b81526001600160a01b0385166004820152602401610736565b508061333c565b805115614caa5780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b508054614ccf90615138565b5f825580601f10614cde575050565b601f0160209004905f5260205f2090810190610fb79190614d37565b6040805160e08101909152805f81526060602082018190525f604083018190529082018190526080820181905260a0820181905260c09091015290565b5b80821115614d4b575f8155600101614d38565b5090565b8015158114610fb7575f80fd5b803563ffffffff81168114614d6f575f80fd5b919050565b5f805f60608486031215614d86575f80fd5b833592506020840135614d9881614d4f565b9150614da660408501614d5c565b90509250925092565b5f60208284031215614dbf575f80fd5b5035919050565b5f8060408385031215614dd7575f80fd5b82356001600160401b03811115614dec575f80fd5b830160808186031215614dfd575f80fd5b9150614e0b60208401614d5c565b90509250929050565b5f8060408385031215614e25575f80fd5b82359150614e0b60208401614d5c565b6001600160a01b0381168114610fb7575f80fd5b5f805f8060808587031215614e5c575f80fd5b843593506020850135614e6e81614d4f565b9250614e7c60408601614d5c565b91506060850135614e8c81614e35565b939692955090935050565b5f60208284031215614ea7575f80fd5b61333c82614d5c565b803561ffff81168114614d6f575f80fd5b6001600160401b0381168114610fb7575f80fd5b5f805f8060808587031215614ee8575f80fd5b84356001600160401b03811115614efd575f80fd5b850160a08188031215614f0e575f80fd5b9350614f1c60208601614eb0565b92506040850135614f2c81614ec1565b9396929550929360600135925050565b5f60208284031215614f4c575f80fd5b813561333c81614ec1565b5f8060408385031215614f68575f80fd5b823591506020830135614f7a81614e35565b809150509250929050565b5f8060408385031215614f96575f80fd5b50508035926020909101359150565b5f80828403610180811215614fb8575f80fd5b61016080821215614fc7575f80fd5b8493508301359050614f7a81614e35565b634e487b7160e01b5f52602160045260245ffd5b60068110614ffc57614ffc614fd8565b9052565b5f5b8381101561501a578181015183820152602001615002565b50505f910152565b5f8151808452615039816020860160208601615000565b601f01601f19169290920160200192915050565b6020815261505f602082018351614fec565b5f602083015160e0604084015261507a610100840182615022565b905060408401516001600160401b0380821660608601528060608701511660808601528060808701511660a08601528060a08701511660c08601528060c08701511660e086015250508091505092915050565b5f80602083850312156150de575f80fd5b82356001600160401b03808211156150f4575f80fd5b818501915085601f830112615107575f80fd5b813581811115615115575f80fd5b866020828501011115615126575f80fd5b60209290920196919550909350505050565b600181811c9082168061514c57607f821691505b60208210810361516a57634e487b7160e01b5f52602260045260245ffd5b50919050565b60208101610ec38284614fec565b634e487b7160e01b5f52604160045260245ffd5b604051606081016001600160401b03811182821017156151b4576151b461517e565b60405290565b604080519081016001600160401b03811182821017156151b4576151b461517e565b604051601f8201601f191681016001600160401b03811182821017156152045761520461517e565b604052919050565b5f6001600160401b038211156152245761522461517e565b50601f01601f191660200190565b5f82601f830112615241575f80fd5b815161525461524f8261520c565b6151dc565b818152846020838601011115615268575f80fd5b610fe7826020830160208701615000565b5f60208284031215615289575f80fd5b81516001600160401b0381111561529e575f80fd5b610fe784828501615232565b602081525f61333c6020830184615022565b5f602082840312156152cc575f80fd5b5051919050565b5f602082840312156152e3575f80fd5b813561333c81614e35565b5f808335601e19843603018112615303575f80fd5b8301803591506001600160401b0382111561531c575f80fd5b6020019150600581901b360382131561352d575f80fd5b634e487b7160e01b5f52603260045260245ffd5b5f8235605e1983360301811261535b575f80fd5b9190910192915050565b5f82601f830112615374575f80fd5b813561538261524f8261520c565b818152846020838601011115615396575f80fd5b816020850160208301375f918101602001919091529392505050565b5f606082360312156153c2575f80fd5b6153ca615192565b82356001600160401b03808211156153e0575f80fd5b6153ec36838701615365565b83526020850135915080821115615401575f80fd5b5061540e36828601615365565b602083015250604083013561542281614ec1565b604082015292915050565b5f825161535b818460208701615000565b601f8211156105aa57805f5260205f20601f840160051c810160208510156154635750805b601f840160051c820191505b81811015610ed5575f815560010161546f565b81516001600160401b0381111561549b5761549b61517e565b6154af816154a98454615138565b8461543e565b602080601f8311600181146154e2575f84156154cb5750858301515b5f19600386901b1c1916600185901b17855561111f565b5f85815260208120601f198616915b82811015615510578886015182559484019460019091019084016154f1565b508582101561552d57878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b5f52601160045260245ffd5b6001600160401b038181168382160190808211156123d9576123d961553d565b5f63ffffffff8083168181036155895761558961553d565b6001019392505050565b6001600160401b038181168382160280821691908281146155b6576155b661553d565b505092915050565b5f808335601e198436030181126155d3575f80fd5b83016020810192503590506001600160401b038111156155f1575f80fd5b80360382131561352d575f80fd5b81835281816020850137505f828201602090810191909152601f909101601f19169091010190565b5f8383855260208086019550808560051b830101845f5b878110156156dc57848303601f19018952813536889003605e19018112615663575f80fd5b8701606061567182806155be565b82875261568183880182846155ff565b92505050615691868301836155be565b868303888801526156a38382846155ff565b9250505060408083013592506156b883614ec1565b6001600160401b03929092169490910193909352978301979083019060010161563e565b5090979650505050505050565b6020815281356020820152602082013560408201525f604083013561570d81614e35565b6001600160a01b031660608381019190915283013536849003601e19018112615734575f80fd5b83016020810190356001600160401b0381111561574f575f80fd5b8060051b3603821315615760575f80fd5b60808085015261577460a085018284615627565b95945050505050565b5f8261579757634e487b7160e01b5f52601260045260245ffd5b500490565b60208101600483106157b0576157b0614fd8565b91905290565b5f805f606084860312156157c8575f80fd5b8351925060208401516157da81614ec1565b60408501519092506157eb81614ec1565b809150509250925092565b8082028115828204841417610ec357610ec361553d565b5f806040838503121561581e575f80fd5b825191506020830151614f7a81614d4f565b5f60208083525f845461584281615138565b806020870152604060018084165f8114615863576001811461587f576158ac565b60ff19851660408a0152604084151560051b8a010195506158ac565b895f5260205f205f5b858110156158a35781548b8201860152908301908801615888565b8a016040019650505b509398975050505050505050565b818382375f9101908152919050565b6001600160401b038281168282160390808211156123d9576123d961553d565b5f80604083850312156158fa575f80fd5b82516001600160401b0380821115615910575f80fd5b9084019060608287031215615923575f80fd5b61592b615192565b82518152602083015161593d81614e35565b6020820152604083015182811115615953575f80fd5b61595f88828601615232565b6040830152508094505050506020830151614f7a81614d4f565b5f806040838503121561598a575f80fd5b825191506020830151614f7a81614ec1565b80820180821115610ec357610ec361553d565b5f8235603e1983360301811261535b575f80fd5b5f808335601e198436030181126159d8575f80fd5b8301803591506001600160401b038211156159f1575f80fd5b60200191503681900382131561352d575f80fd5b602081525f610fe76020830184866155ff565b5f60408236031215615a28575f80fd5b615a306151ba565b615a3983614d5c565b81526020808401356001600160401b0380821115615a55575f80fd5b9085019036601f830112615a67575f80fd5b813581811115615a7957615a7961517e565b8060051b9150615a8a8483016151dc565b8181529183018401918481019036841115615aa3575f80fd5b938501935b83851015615acd5784359250615abd83614e35565b8282529385019390850190615aa8565b94860194909452509295945050505050565b5f6040830163ffffffff8351168452602080840151604060208701528281518085526060880191506020830194505f92505b80831015615b3a5784516001600160a01b03168252938301936001929092019190830190615b11565b509695505050505050565b60208152815160208201525f602083015160e06040840152615b6b610100840182615022565b90506040840151601f1980858403016060860152615b898383615022565b92506001600160401b03606087015116608086015260808601519150808584030160a0860152615bb98383615adf565b925060a08601519150808584030160c086015250615bd78282615adf565b91505060c0840151615bf460e08501826001600160401b03169052565b509392505050565b5f8060408385031215615c0d575f80fd5b8251915060208301516001600160401b03811115615c29575f80fd5b615c3585828601615232565b9150509250929050565b6001600160401b03831115615c5657615c5661517e565b615c6a83615c648354615138565b8361543e565b5f601f841160018114615c9b575f8515615c845750838201355b5f19600387901b1c1916600186901b178355610ed5565b5f83815260208120601f198716915b82811015615cca5786850135825560209485019460019092019101615caa565b5086821015615ce6575f1960f88860031b161c19848701351681555b505060018560011b0183555050505050565b81810381811115610ec357610ec361553d565b5f60208284031215615d1b575f80fd5b61333c82614eb0565b5f60208284031215615d34575f80fd5b813560ff8116811461333c575f80fd5b5f6001600160401b038083168181036155895761558961553d565b5f60208284031215615d6f575f80fd5b815161333c81614d4f56fe6e5bdfcce15e53c3406ea67bfce37dcd26f5152d5492824e43fd5e3c8ac5ab00e92546d698950ddd38910d2e15ed1d923cd0a7b3dde9e2a6a3f380565559cb00e92546d698950ddd38910d2e15ed1d923cd0a7b3dde9e2a6a3f380565559cb059b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00a2646970667358221220714e35b4bfb3e0c550c3945a20eebfc93b8a5d55e8724025f7b2eaf5c9947fef64736f6c63430008190033", + ABI: "[{\"inputs\":[{\"internalType\":\"enumICMInitializable\",\"name\":\"init\",\"type\":\"uint8\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"AddressInsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"delegationID\",\"type\":\"bytes32\"}],\"name\":\"DelegatorIneligibleForRewards\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedInnerCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"}],\"name\":\"InvalidBLSKeyLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"encodedConversionID\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"expectedConversionID\",\"type\":\"bytes32\"}],\"name\":\"InvalidConversionID\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"delegationFeeBips\",\"type\":\"uint16\"}],\"name\":\"InvalidDelegationFee\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"delegationID\",\"type\":\"bytes32\"}],\"name\":\"InvalidDelegationID\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"enumDelegatorStatus\",\"name\":\"status\",\"type\":\"uint8\"}],\"name\":\"InvalidDelegatorStatus\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitializationStatus\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"maximumChurnPercentage\",\"type\":\"uint8\"}],\"name\":\"InvalidMaximumChurnPercentage\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"minStakeDuration\",\"type\":\"uint64\"}],\"name\":\"InvalidMinStakeDuration\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"nodeID\",\"type\":\"bytes\"}],\"name\":\"InvalidNodeID\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"name\":\"InvalidNonce\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"threshold\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"addressesLength\",\"type\":\"uint256\"}],\"name\":\"InvalidPChainOwnerThreshold\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"registrationExpiry\",\"type\":\"uint64\"}],\"name\":\"InvalidRegistrationExpiry\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"rewardRecipient\",\"type\":\"address\"}],\"name\":\"InvalidRewardRecipient\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"stakeAmount\",\"type\":\"uint256\"}],\"name\":\"InvalidStakeAmount\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"maximumStakeMultiplier\",\"type\":\"uint8\"}],\"name\":\"InvalidStakeMultiplier\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"tokenAddress\",\"type\":\"address\"}],\"name\":\"InvalidTokenAddress\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"weight\",\"type\":\"uint64\"}],\"name\":\"InvalidTotalWeight\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"uptimeBlockchainID\",\"type\":\"bytes32\"}],\"name\":\"InvalidUptimeBlockchainID\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"}],\"name\":\"InvalidValidationID\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"validatorManagerAddress\",\"type\":\"address\"}],\"name\":\"InvalidValidatorManagerAddress\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"blockchainID\",\"type\":\"bytes32\"}],\"name\":\"InvalidValidatorManagerBlockchainID\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"enumValidatorStatus\",\"name\":\"status\",\"type\":\"uint8\"}],\"name\":\"InvalidValidatorStatus\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidWarpMessage\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"senderAddress\",\"type\":\"address\"}],\"name\":\"InvalidWarpOriginSenderAddress\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"sourceChainID\",\"type\":\"bytes32\"}],\"name\":\"InvalidWarpSourceChainID\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"churnAmount\",\"type\":\"uint64\"}],\"name\":\"MaxChurnRateExceeded\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"newValidatorWeight\",\"type\":\"uint64\"}],\"name\":\"MaxWeightExceeded\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"endTime\",\"type\":\"uint64\"}],\"name\":\"MinStakeDurationNotPassed\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"nodeID\",\"type\":\"bytes\"}],\"name\":\"NodeAlreadyRegistered\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"PChainOwnerAddressesNotSorted\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ReentrancyGuardReentrantCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"SafeERC20FailedOperation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"UnauthorizedOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"validRegistration\",\"type\":\"bool\"}],\"name\":\"UnexpectedRegistrationStatus\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"}],\"name\":\"ValidatorIneligibleForRewards\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"}],\"name\":\"ValidatorNotPoS\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZeroWeightToValueFactor\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"delegationID\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"rewards\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"fees\",\"type\":\"uint256\"}],\"name\":\"DelegationEnded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"delegationID\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"delegatorAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"validatorWeight\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"delegatorWeight\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"setWeightMessageID\",\"type\":\"bytes32\"}],\"name\":\"DelegatorAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"delegationID\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"startTime\",\"type\":\"uint256\"}],\"name\":\"DelegatorRegistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"delegationID\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"}],\"name\":\"DelegatorRemovalInitialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes\",\"name\":\"nodeID\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"weight\",\"type\":\"uint64\"}],\"name\":\"InitialValidatorCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"uptime\",\"type\":\"uint64\"}],\"name\":\"UptimeUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes\",\"name\":\"nodeID\",\"type\":\"bytes\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"registerValidationMessageID\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"weight\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"registrationExpiry\",\"type\":\"uint64\"}],\"name\":\"ValidationPeriodCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"enumValidatorStatus\",\"name\":\"status\",\"type\":\"uint8\"}],\"name\":\"ValidationPeriodEnded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"weight\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"name\":\"ValidationPeriodRegistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"setWeightMessageID\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"weight\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"endTime\",\"type\":\"uint256\"}],\"name\":\"ValidatorRemovalInitialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"weight\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"setWeightMessageID\",\"type\":\"bytes32\"}],\"name\":\"ValidatorWeightUpdate\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"ADDRESS_LENGTH\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"BIPS_CONVERSION_FACTOR\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"BLS_PUBLIC_KEY_LENGTH\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ERC20_STAKING_MANAGER_STORAGE_LOCATION\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MAXIMUM_CHURN_PERCENTAGE_LIMIT\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MAXIMUM_DELEGATION_FEE_BIPS\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MAXIMUM_REGISTRATION_EXPIRY_LENGTH\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MAXIMUM_STAKE_MULTIPLIER_LIMIT\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"POS_VALIDATOR_MANAGER_STORAGE_LOCATION\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"P_CHAIN_BLOCKCHAIN_ID\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"VALIDATOR_MANAGER_STORAGE_LOCATION\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"WARP_MESSENGER\",\"outputs\":[{\"internalType\":\"contractIWarpMessenger\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"delegationID\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"rewardRecipient\",\"type\":\"address\"}],\"name\":\"changeDelegatorRewardRecipient\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"rewardRecipient\",\"type\":\"address\"}],\"name\":\"changeValidatorRewardRecipient\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"}],\"name\":\"claimDelegationFees\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"delegationID\",\"type\":\"bytes32\"},{\"internalType\":\"uint32\",\"name\":\"messageIndex\",\"type\":\"uint32\"}],\"name\":\"completeDelegatorRegistration\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"delegationID\",\"type\":\"bytes32\"},{\"internalType\":\"uint32\",\"name\":\"messageIndex\",\"type\":\"uint32\"}],\"name\":\"completeEndDelegation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"messageIndex\",\"type\":\"uint32\"}],\"name\":\"completeEndValidation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"messageIndex\",\"type\":\"uint32\"}],\"name\":\"completeValidatorRegistration\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"erc20\",\"outputs\":[{\"internalType\":\"contractIERC20Mintable\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"delegationID\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"includeUptimeProof\",\"type\":\"bool\"},{\"internalType\":\"uint32\",\"name\":\"messageIndex\",\"type\":\"uint32\"}],\"name\":\"forceInitializeEndDelegation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"delegationID\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"includeUptimeProof\",\"type\":\"bool\"},{\"internalType\":\"uint32\",\"name\":\"messageIndex\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"rewardRecipient\",\"type\":\"address\"}],\"name\":\"forceInitializeEndDelegation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"includeUptimeProof\",\"type\":\"bool\"},{\"internalType\":\"uint32\",\"name\":\"messageIndex\",\"type\":\"uint32\"}],\"name\":\"forceInitializeEndValidation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"includeUptimeProof\",\"type\":\"bool\"},{\"internalType\":\"uint32\",\"name\":\"messageIndex\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"rewardRecipient\",\"type\":\"address\"}],\"name\":\"forceInitializeEndValidation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"}],\"name\":\"getValidator\",\"outputs\":[{\"components\":[{\"internalType\":\"enumValidatorStatus\",\"name\":\"status\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"nodeID\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"startingWeight\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"messageNonce\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"weight\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"startedAt\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"endedAt\",\"type\":\"uint64\"}],\"internalType\":\"structValidator\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"l1ID\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"churnPeriodSeconds\",\"type\":\"uint64\"},{\"internalType\":\"uint8\",\"name\":\"maximumChurnPercentage\",\"type\":\"uint8\"}],\"internalType\":\"structValidatorManagerSettings\",\"name\":\"baseSettings\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"minimumStakeAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maximumStakeAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"minimumStakeDuration\",\"type\":\"uint64\"},{\"internalType\":\"uint16\",\"name\":\"minimumDelegationFeeBips\",\"type\":\"uint16\"},{\"internalType\":\"uint8\",\"name\":\"maximumStakeMultiplier\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"weightToValueFactor\",\"type\":\"uint256\"},{\"internalType\":\"contractIRewardCalculator\",\"name\":\"rewardCalculator\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"uptimeBlockchainID\",\"type\":\"bytes32\"}],\"internalType\":\"structPoSValidatorManagerSettings\",\"name\":\"settings\",\"type\":\"tuple\"},{\"internalType\":\"contractIERC20Mintable\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"delegationAmount\",\"type\":\"uint256\"}],\"name\":\"initializeDelegatorRegistration\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"delegationID\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"includeUptimeProof\",\"type\":\"bool\"},{\"internalType\":\"uint32\",\"name\":\"messageIndex\",\"type\":\"uint32\"}],\"name\":\"initializeEndDelegation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"delegationID\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"includeUptimeProof\",\"type\":\"bool\"},{\"internalType\":\"uint32\",\"name\":\"messageIndex\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"rewardRecipient\",\"type\":\"address\"}],\"name\":\"initializeEndDelegation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"includeUptimeProof\",\"type\":\"bool\"},{\"internalType\":\"uint32\",\"name\":\"messageIndex\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"rewardRecipient\",\"type\":\"address\"}],\"name\":\"initializeEndValidation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"includeUptimeProof\",\"type\":\"bool\"},{\"internalType\":\"uint32\",\"name\":\"messageIndex\",\"type\":\"uint32\"}],\"name\":\"initializeEndValidation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"nodeID\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"blsPublicKey\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"registrationExpiry\",\"type\":\"uint64\"},{\"components\":[{\"internalType\":\"uint32\",\"name\":\"threshold\",\"type\":\"uint32\"},{\"internalType\":\"address[]\",\"name\":\"addresses\",\"type\":\"address[]\"}],\"internalType\":\"structPChainOwner\",\"name\":\"remainingBalanceOwner\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint32\",\"name\":\"threshold\",\"type\":\"uint32\"},{\"internalType\":\"address[]\",\"name\":\"addresses\",\"type\":\"address[]\"}],\"internalType\":\"structPChainOwner\",\"name\":\"disableOwner\",\"type\":\"tuple\"}],\"internalType\":\"structValidatorRegistrationInput\",\"name\":\"registrationInput\",\"type\":\"tuple\"},{\"internalType\":\"uint16\",\"name\":\"delegationFeeBips\",\"type\":\"uint16\"},{\"internalType\":\"uint64\",\"name\":\"minStakeDuration\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"stakeAmount\",\"type\":\"uint256\"}],\"name\":\"initializeValidatorRegistration\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"l1ID\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"validatorManagerBlockchainID\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"validatorManagerAddress\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"bytes\",\"name\":\"nodeID\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"blsPublicKey\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"weight\",\"type\":\"uint64\"}],\"internalType\":\"structInitialValidator[]\",\"name\":\"initialValidators\",\"type\":\"tuple[]\"}],\"internalType\":\"structConversionData\",\"name\":\"conversionData\",\"type\":\"tuple\"},{\"internalType\":\"uint32\",\"name\":\"messageIndex\",\"type\":\"uint32\"}],\"name\":\"initializeValidatorSet\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"nodeID\",\"type\":\"bytes\"}],\"name\":\"registeredValidators\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"}],\"name\":\"resendEndValidatorMessage\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"}],\"name\":\"resendRegisterValidatorMessage\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"delegationID\",\"type\":\"bytes32\"}],\"name\":\"resendUpdateDelegation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"internalType\":\"uint32\",\"name\":\"messageIndex\",\"type\":\"uint32\"}],\"name\":\"submitUptimeProof\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"valueToWeight\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"weight\",\"type\":\"uint64\"}],\"name\":\"weightToValue\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}]", + Bin: "0x608060405234801561000f575f80fd5b50604051615f4b380380615f4b83398101604081905261002e91610107565b60018160018111156100425761004261012c565b0361004f5761004f610055565b50610140565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff16156100a55760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b03908116146101045780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b5f60208284031215610117575f80fd5b815160028110610125575f80fd5b9392505050565b634e487b7160e01b5f52602160045260245ffd5b615dfe8061014d5f395ff3fe608060405234801561000f575f80fd5b506004361061023f575f3560e01c806380dd672f11610135578063b771b3bc116100b4578063d5f20ff611610079578063d5f20ff61461051c578063df93d8de1461053c578063e4a63c4014610546578063fb8b11dd1461055a578063fd7ac5e71461056d575f80fd5b8063b771b3bc146104cc578063ba3a4b97146104da578063bc5fbfec146104ed578063bee0a03f14610501578063c974d1b614610514575f80fd5b80639e1bc4ef116100fa5780639e1bc4ef1461046c5780639e478eea1461047f578063a3a65e4814610492578063a9778a7a146102ee578063afb98096146104a5575f80fd5b806380dd672f146104185780638280a25a1461042b5780638ef34c981461043357806393e24598146104465780639ae0644714610459575f80fd5b8063467ef06f116101c1578063620658561161018657806362065856146103a7578063732214f8146103ba57806376f78621146103c1578063785e9e86146103d45780637d8d2f7714610405575f80fd5b8063467ef06f146103305780634bee0040146103435780635dd6a6cb1461036457806360305d621461037757806360ad778414610394575f80fd5b806325e1c7761161020757806325e1c776146102b05780632e2194d8146102c357806335455ded146102ee57806337b9be8f1461030a5780633a1cfff61461031d575f80fd5b80630118acc4146102435780630322ed9814610258578063151d30d11461026b5780631ec447241461028a57806320d91b7a1461029d575b5f80fd5b610256610251366004614d42565b610580565b005b610256610266366004614d7d565b610591565b610273600a81565b60405160ff90911681526020015b60405180910390f35b610256610298366004614d42565b610821565b6102566102ab366004614d94565b61082d565b6102566102be366004614de2565b610de3565b6102d66102d1366004614d7d565b610e57565b6040516001600160401b039091168152602001610281565b6102f761271081565b60405161ffff9091168152602001610281565b610256610318366004614e17565b610eab565b61025661032b366004614d42565b610ebe565b61025661033e366004614e65565b610eca565b610356610351366004614ea3565b610f9c565b604051908152602001610281565b610256610372366004614e17565b610fd1565b61037f601481565b60405163ffffffff9091168152602001610281565b6102566103a2366004614de2565b610fdd565b6103566103b5366004614f0a565b6112a5565b6103565f81565b6102566103cf366004614d42565b6112c5565b5f80516020615d49833981519152546001600160a01b03165b6040516001600160a01b039091168152602001610281565b610256610413366004614e17565b6112d1565b610256610426366004614de2565b6112dd565b610273603081565b610256610441366004614f25565b611517565b610256610454366004614d7d565b6115c8565b610256610467366004614e17565b61165c565b61035661047a366004614f53565b611668565b61025661048d366004614f73565b611694565b6102566104a0366004614e65565b611773565b6103567f4317713f7ecbdddd4bc99e95d903adedaa883b2e7c2551610bd13e2c7e473d0081565b6103ed6005600160991b0181565b6102566104e8366004614d7d565b611969565b6103565f80516020615d6983398151915281565b61025661050f366004614d7d565b611bc2565b610273601481565b61052f61052a366004614d7d565b611cfe565b604051610281919061501b565b6102d66202a30081565b6103565f80516020615d4983398151915281565b610256610568366004614f25565b611e4d565b61035661057b36600461509b565b611ee4565b61058c8383835f611f3f565b505050565b5f8181525f80516020615d898339815191526020526040808220815160e0810190925280545f80516020615d6983398151915293929190829060ff1660058111156105de576105de614fa6565b60058111156105ef576105ef614fa6565b815260200160018201805461060390615106565b80601f016020809104026020016040519081016040528092919081815260200182805461062f90615106565b801561067a5780601f106106515761010080835404028352916020019161067a565b820191905f5260205f20905b81548152906001019060200180831161065d57829003601f168201915b505050918352505060028201546001600160401b038082166020840152600160401b820481166040840152600160801b820481166060840152600160c01b909104811660808301526003928301541660a090910152909150815160058111156106e5576106e5614fa6565b14610721575f8381526005830160205260409081902054905163170cc93360e21b81526107189160ff169060040161513e565b60405180910390fd5b606081015160405163854a893f60e01b8152600481018590526001600160401b0390911660248201525f60448201526005600160991b019063ee5b48eb9073__$fd0c147b4031eef6079b0498cbafa865f0$__9063854a893f906064015f60405180830381865af4158015610798573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526107bf9190810190615247565b6040518263ffffffff1660e01b81526004016107db9190615278565b6020604051808303815f875af11580156107f7573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061081b919061528a565b50505050565b61081b8383835f611f6b565b7fe92546d698950ddd38910d2e15ed1d923cd0a7b3dde9e2a6a3f380565559cb07545f80516020615d698339815191529060ff161561087f57604051637fab81e560e01b815260040160405180910390fd5b6005600160991b016001600160a01b0316634213cf786040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108c2573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108e6919061528a565b83602001351461090f576040516372b0a7e760e11b815260208401356004820152602401610718565b3061092060608501604086016152a1565b6001600160a01b0316146109635761093e60608401604085016152a1565b604051632f88120d60e21b81526001600160a01b039091166004820152602401610718565b5f61097160608501856152bc565b905090505f805b828163ffffffff161015610bd9575f61099460608801886152bc565b8363ffffffff168181106109aa576109aa615301565b90506020028101906109bc9190615315565b6109c590615380565b80516040519192505f9160068801916109dd916153fb565b90815260200160405180910390205414610a0d57805160405163a41f772f60e01b81526107189190600401615278565b5f6002885f013584604051602001610a3c92919091825260e01b6001600160e01b031916602082015260240190565b60408051601f1981840301815290829052610a56916153fb565b602060405180830381855afa158015610a71573d5f803e3d5ffd5b5050506040513d601f19601f82011682018060405250810190610a94919061528a565b90508086600601835f0151604051610aac91906153fb565b90815260408051918290036020908101909220929092555f8381526005890190915220805460ff191660021781558251600190910190610aec9082615450565b50604082810180515f84815260058a016020529290922060028101805492516001600160401b039485166001600160c01b031990941693909317600160801b85851602176001600160c01b0316600160c01b429590951694909402939093179092556003909101805467ffffffffffffffff19169055610b6c908561551f565b8251604051919550610b7d916153fb565b60408051918290038220908401516001600160401b031682529082907ffe3e5983f71c8253fb0b678f2bc587aa8574d8f1aab9cf82b983777f5998392c9060200160405180910390a3505080610bd29061553f565b9050610978565b5060038301805467ffffffffffffffff60401b1916600160401b6001600160401b0384168102919091179091556001840154606491610c1c910460ff1683615561565b6001600160401b03161015610c4f57604051633e1a785160e01b81526001600160401b0382166004820152602401610718565b5f73__$fd0c147b4031eef6079b0498cbafa865f0$__634d847884610c7387612298565b604001516040518263ffffffff1660e01b8152600401610c939190615278565b602060405180830381865af4158015610cae573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610cd2919061528a565b90505f73__$fd0c147b4031eef6079b0498cbafa865f0$__6387418b8e886040518263ffffffff1660e01b8152600401610d0c91906156b7565b5f60405180830381865af4158015610d26573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052610d4d9190810190615247565b90505f600282604051610d6091906153fb565b602060405180830381855afa158015610d7b573d5f803e3d5ffd5b5050506040513d601f19601f82011682018060405250810190610d9e919061528a565b9050828114610dca5760405163baaea89d60e01b81526004810182905260248101849052604401610718565b5050506007909201805460ff1916600117905550505050565b610dec826123ae565b610e0c576040516330efa98b60e01b815260048101839052602401610718565b5f610e1683611cfe565b5190506002816005811115610e2d57610e2d614fa6565b14610e4d578060405163170cc93360e21b8152600401610718919061513e565b61081b83836123d7565b5f80610e61612676565b60030154610e6f908461574b565b9050801580610e8457506001600160401b0381115b15610ea55760405163222d164360e21b815260048101849052602401610718565b92915050565b610eb784848484611f6b565b5050505050565b61081b8383835f61269a565b610ed26128d7565b5f610edb612676565b90505f80610ee88461290e565b91509150610ef5826123ae565b610f0157505050610f83565b5f828152600684016020908152604080832054600b870190925290912080546001600160a01b031981169091556001600160a01b03918216911680610f435750805b600483516005811115610f5857610f58614fa6565b03610f6757610f678185612cc6565b610f7d82610f7885604001516112a5565b612cf0565b50505050505b610f9960015f80516020615da983398151915255565b50565b5f610fa56128d7565b610fb185858585612d26565b9050610fc960015f80516020615da983398151915255565b949350505050565b61081b84848484612ea6565b5f610fe6612676565b5f848152600782016020526040808220815160e0810190925280549394509192909190829060ff16600381111561101f5761101f614fa6565b600381111561103057611030614fa6565b8152815461010090046001600160a01b0316602082015260018201546040808301919091526002909201546001600160401b038082166060840152600160401b820481166080840152600160801b8204811660a0840152600160c01b9091041660c0909101528101519091505f6110a682611cfe565b90506001835160038111156110bd576110bd614fa6565b146110de578251604051633b0d540d60e21b8152610718919060040161576a565b6004815160058111156110f3576110f3614fa6565b036111095761110186612ed2565b505050505050565b5f8073__$fd0c147b4031eef6079b0498cbafa865f0$__6350782b0f61112e89612298565b604001516040518263ffffffff1660e01b815260040161114e9190615278565b606060405180830381865af4158015611169573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061118d9190615784565b50915091508184146111ba57846040015160405163089938b360e11b815260040161071891815260200190565b806001600160401b031683606001516001600160401b031610806111f35750806001600160401b03168560a001516001600160401b0316115b1561121c57604051632e19bc2d60e11b81526001600160401b0382166004820152602401610718565b5f888152600787016020908152604091829020805460ff1916600290811782550180546001600160401b034216600160401b810267ffffffffffffffff60401b1990921691909117909155915191825285918a917f047059b465069b8b751836b41f9f1d83daff583d2238cc7fbb461437ec23a4f6910160405180910390a35050505050505050565b5f6112ae612676565b60030154610ea5906001600160401b0384166157c4565b61058c8383835f612ea6565b610eb78484848461269a565b6112e56128d7565b5f6112ee612676565b5f848152600782016020526040808220815160e0810190925280549394509192909190829060ff16600381111561132757611327614fa6565b600381111561133857611338614fa6565b8152815461010090046001600160a01b03166020820152600182015460408201526002909101546001600160401b038082166060840152600160401b820481166080840152600160801b8204811660a0840152600160c01b9091041660c09091015290506003815160038111156113b1576113b1614fa6565b146113d2578051604051633b0d540d60e21b8152610718919060040161576a565b60046113e18260400151611cfe565b5160058111156113f3576113f3614fa6565b146114f2575f61140284612298565b90505f8073__$fd0c147b4031eef6079b0498cbafa865f0$__6350782b0f84604001516040518263ffffffff1660e01b81526004016114419190615278565b606060405180830381865af415801561145c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906114809190615784565b5091509150818460400151146114ac5760405163089938b360e11b815260048101839052602401610718565b806001600160401b03168460c001516001600160401b031611156114ee57604051632e19bc2d60e11b81526001600160401b0382166004820152602401610718565b5050505b6114fb84612ed2565b505061151360015f80516020615da983398151915255565b5050565b5f611520612676565b90506001600160a01b0382166115545760405163caa903f960e01b81526001600160a01b0383166004820152602401610718565b5f8381526006820160205260409020546001600160a01b0316331461159a57335b604051636e2ccd7560e11b81526001600160a01b039091166004820152602401610718565b5f928352600b01602052604090912080546001600160a01b0319166001600160a01b03909216919091179055565b5f6115d1612676565b90505f6115dd83611cfe565b51905060048160058111156115f4576115f4614fa6565b14611614578060405163170cc93360e21b8152600401610718919061513e565b5f8381526006830160205260409020546001600160a01b031633146116395733611575565b5f83815260068301602052604090205461058c906001600160a01b031684612cc6565b61081b84848484611f3f565b5f6116716128d7565b61167c8333846130cc565b9050610ea560015f80516020615da983398151915255565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805460029190600160401b900460ff16806116dd575080546001600160401b03808416911610155b156116fb5760405163f92ee8a960e01b815260040160405180910390fd5b805468ffffffffffffffffff19166001600160401b03831617600160401b1781556117268484613311565b805460ff60401b191681556040516001600160401b03831681527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a150505050565b5f80516020615d698339815191525f8073__$fd0c147b4031eef6079b0498cbafa865f0$__63021de88f6117a686612298565b604001516040518263ffffffff1660e01b81526004016117c69190615278565b6040805180830381865af41580156117e0573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061180491906157db565b915091508061182a57604051632d07135360e01b81528115156004820152602401610718565b5f8281526004840160205260409020805461184490615106565b90505f036118685760405163089938b360e11b815260048101839052602401610718565b60015f838152600580860160205260409091205460ff169081111561188f5761188f614fa6565b146118c2575f8281526005840160205260409081902054905163170cc93360e21b81526107189160ff169060040161513e565b5f82815260048401602052604081206118da91614c91565b5f828152600584016020908152604091829020805460ff1916600290811782550180546001600160401b0342818116600160c01b026001600160c01b0390931692909217928390558451600160801b9093041682529181019190915283917f8629ec2bfd8d3b792ba269096bb679e08f20ba2caec0785ef663cf94788e349b910160405180910390a250505050565b5f611972612676565b5f838152600782016020526040808220815160e0810190925280549394509192909190829060ff1660038111156119ab576119ab614fa6565b60038111156119bc576119bc614fa6565b8152815461010090046001600160a01b0316602082015260018083015460408301526002909201546001600160401b038082166060840152600160401b820481166080840152600160801b8204811660a0840152600160c01b9091041660c09091015290915081516003811115611a3557611a35614fa6565b14158015611a565750600381516003811115611a5357611a53614fa6565b14155b15611a77578051604051633b0d540d60e21b8152610718919060040161576a565b5f611a858260400151611cfe565b905080606001516001600160401b03165f03611ab7576040516339b894f960e21b815260048101859052602401610718565b60408083015160608301516080840151925163854a893f60e01b81526005600160991b019363ee5b48eb9373__$fd0c147b4031eef6079b0498cbafa865f0$__9363854a893f93611b2593906004019283526001600160401b03918216602084015216604082015260600190565b5f60405180830381865af4158015611b3f573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052611b669190810190615247565b6040518263ffffffff1660e01b8152600401611b829190615278565b6020604051808303815f875af1158015611b9e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610eb7919061528a565b5f8181527fe92546d698950ddd38910d2e15ed1d923cd0a7b3dde9e2a6a3f380565559cb046020526040902080545f80516020615d698339815191529190611c0990615106565b90505f03611c2d5760405163089938b360e11b815260048101839052602401610718565b60015f838152600580840160205260409091205460ff1690811115611c5457611c54614fa6565b14611c87575f8281526005820160205260409081902054905163170cc93360e21b81526107189160ff169060040161513e565b5f8281526004808301602052604091829020915163ee5b48eb60e01b81526005600160991b019263ee5b48eb92611cbe92016157fe565b6020604051808303815f875af1158015611cda573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061058c919061528a565b611d06614cc8565b5f8281525f80516020615d89833981519152602052604090819020815160e0810190925280545f80516020615d69833981519152929190829060ff166005811115611d5357611d53614fa6565b6005811115611d6457611d64614fa6565b8152602001600182018054611d7890615106565b80601f0160208091040260200160405190810160405280929190818152602001828054611da490615106565b8015611def5780601f10611dc657610100808354040283529160200191611def565b820191905f5260205f20905b815481529060010190602001808311611dd257829003601f168201915b505050918352505060028201546001600160401b038082166020840152600160401b820481166040840152600160801b820481166060840152600160c01b9091048116608083015260039092015490911660a0909101529392505050565b6001600160a01b038116611e7f5760405163caa903f960e01b81526001600160a01b0382166004820152602401610718565b5f611e88612676565b5f8481526007820160205260409020549091506001600160a01b03610100909104163314611eb65733611575565b5f928352600901602052604090912080546001600160a01b0319166001600160a01b03909216919091179055565b6040515f905f80516020615d69833981519152907fe92546d698950ddd38910d2e15ed1d923cd0a7b3dde9e2a6a3f380565559cb0690611f279086908690615888565b90815260200160405180910390205491505092915050565b611f4b84848484611f6b565b61081b57604051631036cf9160e11b815260048101859052602401610718565b5f80611f75612676565b5f878152600782016020526040808220815160e0810190925280549394509192909190829060ff166003811115611fae57611fae614fa6565b6003811115611fbf57611fbf614fa6565b8152815461010090046001600160a01b0316602082015260018201546040808301919091526002909201546001600160401b038082166060840152600160401b820481166080840152600160801b8204811660a0840152600160c01b9091041660c0909101528101519091505f61203582611cfe565b905060028351600381111561204c5761204c614fa6565b1461206d578251604051633b0d540d60e21b8152610718919060040161576a565b60208301516001600160a01b03163314612109575f8281526006850160205260409020546001600160a01b031633146120a65733611575565b5f82815260068501602052604090205460a08201516120d591600160b01b90046001600160401b03169061551f565b6001600160401b03164210156121095760405163fb6ce63f60e01b81526001600160401b0342166004820152602401610718565b60028151600581111561211e5761211e614fa6565b036122405760028401546080840151612140916001600160401b03169061551f565b6001600160401b03164210156121745760405163fb6ce63f60e01b81526001600160401b0342166004820152602401610718565b87156121865761218482886123d7565b505b5f8981526007850160205260409020805460ff19166003179055606083015160808201516121bf9184916121ba9190615897565b61332b565b505f8a8152600786016020526040812060020180546001600160401b03909316600160c01b026001600160c01b039093169290921790915561220284888c613502565b9050828a7f366d336c0ab380dc799f095a6f82a26326585c52909cc698b09ba4540709ed5760405160405180910390a315159450610fc99350505050565b60048151600581111561225557612255614fa6565b0361227c5761226583878b613502565b5061226f89612ed2565b6001945050505050610fc9565b805160405163170cc93360e21b8152610718919060040161513e565b60408051606080820183525f8083526020830152918101919091526040516306f8253560e41b815263ffffffff831660048201525f9081906005600160991b0190636f825350906024015f60405180830381865afa1580156122fc573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405261232391908101906158b7565b915091508061234557604051636b2f19e960e01b815260040160405180910390fd5b81511561236b578151604051636ba589a560e01b81526004810191909152602401610718565b60208201516001600160a01b0316156123a7576020820151604051624de75d60e31b81526001600160a01b039091166004820152602401610718565b5092915050565b5f806123b8612676565b5f938452600601602052505060409020546001600160a01b0316151590565b6040516306f8253560e41b815263ffffffff821660048201525f90819081906005600160991b0190636f825350906024015f60405180830381865afa158015612422573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405261244991908101906158b7565b915091508061246b57604051636b2f19e960e01b815260040160405180910390fd5b5f612474612676565b60058101548451919250146124a2578251604051636ba589a560e01b81526004810191909152602401610718565b60208301516001600160a01b0316156124de576020830151604051624de75d60e31b81526001600160a01b039091166004820152602401610718565b60208301516001600160a01b03161561251a576020830151604051624de75d60e31b81526001600160a01b039091166004820152602401610718565b5f8073__$fd0c147b4031eef6079b0498cbafa865f0$__63088c246386604001516040518263ffffffff1660e01b81526004016125579190615278565b6040805180830381865af4158015612571573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906125959190615947565b915091508188146125bc5760405163089938b360e11b815260048101899052602401610718565b5f8881526006840160205260409020600101546001600160401b03908116908216111561264d575f888152600684016020908152604091829020600101805467ffffffffffffffff19166001600160401b038516908117909155915191825289917fec44148e8ff271f2d0bacef1142154abacb0abb3a29eb3eb50e2ca97e86d0435910160405180910390a261266b565b505f8781526006830160205260409020600101546001600160401b03165b979650505050505050565b7f4317713f7ecbdddd4bc99e95d903adedaa883b2e7c2551610bd13e2c7e473d0090565b5f806126a4612676565b90505f6126b0876136f0565b90506126bb876123ae565b6126ca57600192505050610fc9565b5f8781526006830160205260409020546001600160a01b031633146126ef5733611575565b5f87815260068301602052604090205460a082015161271e91600160b01b90046001600160401b03169061551f565b6001600160401b03168160c001516001600160401b031610156127655760c081015160405163fb6ce63f60e01b81526001600160401b039091166004820152602401610718565b5f861561277d5761277688876123d7565b905061279b565b505f8781526006830160205260409020600101546001600160401b03165b600483015460408301515f916001600160a01b031690634f22429f906127c0906112a5565b60a086015160c087015160405160e085901b6001600160e01b031916815260048101939093526001600160401b03918216602484018190526044840152811660648301528516608482015260a401602060405180830381865afa158015612829573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061284d919061528a565b90506001600160a01b038616612879575f8981526006850160205260409020546001600160a01b031695505b5f898152600a850160205260408120805483929061289890849061596a565b90915550505f898152600b909401602052604090932080546001600160a01b0387166001600160a01b0319909116179055505015159050949350505050565b5f80516020615da983398151915280546001190161290857604051633ee5aeb560e01b815260040160405180910390fd5b60029055565b5f612917614cc8565b5f80516020615d698339815191525f8073__$fd0c147b4031eef6079b0498cbafa865f0$__63021de88f61294a88612298565b604001516040518263ffffffff1660e01b815260040161296a9190615278565b6040805180830381865af4158015612984573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906129a891906157db565b9150915080156129cf57604051632d07135360e01b81528115156004820152602401610718565b5f82815260058085016020526040808320815160e08101909252805491929091839160ff90911690811115612a0657612a06614fa6565b6005811115612a1757612a17614fa6565b8152602001600182018054612a2b90615106565b80601f0160208091040260200160405190810160405280929190818152602001828054612a5790615106565b8015612aa25780601f10612a7957610100808354040283529160200191612aa2565b820191905f5260205f20905b815481529060010190602001808311612a8557829003601f168201915b505050918352505060028201546001600160401b038082166020840152600160401b820481166040840152600160801b820481166060840152600160c01b909104811660808301526003928301541660a09091015290915081516005811115612b0d57612b0d614fa6565b14158015612b2e5750600181516005811115612b2b57612b2b614fa6565b14155b15612b4f57805160405163170cc93360e21b8152610718919060040161513e565b600381516005811115612b6457612b64614fa6565b03612b725760048152612b77565b600581525b836006018160200151604051612b8d91906153fb565b90815260408051602092819003830190205f90819055858152600587810190935220825181548493839160ff1916906001908490811115612bd057612bd0614fa6565b021790555060208201516001820190612be99082615450565b5060408201516002820180546060850151608086015160a08701516001600160401b039586166001600160801b031990941693909317600160401b92861692909202919091176001600160801b0316600160801b918516919091026001600160c01b031617600160c01b9184169190910217905560c0909201516003909101805467ffffffffffffffff19169190921617905580516005811115612c8f57612c8f614fa6565b60405184907f1c08e59656f1a18dc2da76826cdc52805c43e897a17c50faefb8ab3c1526cc16905f90a39196919550909350505050565b5f612ccf612676565b5f838152600a820160205260408120805491905590915061081b84826139d5565b5f80516020615d4983398151915254611513906001600160a01b03168383613a4b565b60015f80516020615da983398151915255565b5f80612d30612676565b600281015490915061ffff600160401b90910481169086161080612d59575061271061ffff8616115b15612d7d57604051635f12e6c360e11b815261ffff86166004820152602401610718565b60028101546001600160401b039081169085161015612db9576040516202a06d60e11b81526001600160401b0385166004820152602401610718565b8054831080612dcb5750806001015483115b15612dec5760405163222d164360e21b815260048101849052602401610718565b5f612df684613aaa565b90505f612e0282610e57565b90505f612e0f8983613acd565b5f818152600686016020908152604080832080546001600160401b039c909c16600160b01b0267ffffffffffffffff60b01b1961ffff9e909e16600160a01b02336001600160b01b0319909e168e17179d909d169c909c178c556001909b01805467ffffffffffffffff19169055600b9096019095529790932080546001600160a01b031916909617909555509395945050505050565b612eb28484848461269a565b61081b57604051635bff683f60e11b815260048101859052602401610718565b5f612edb612676565b5f838152600782016020526040808220815160e0810190925280549394509192909190829060ff166003811115612f1457612f14614fa6565b6003811115612f2557612f25614fa6565b8152815461010090046001600160a01b0316602082015260018201546040808301919091526002909201546001600160401b038082166060840152600160401b820481166080840152600160801b8204811660a0840152600160c01b9091041660c090910152810151909150612fc27fe92546d698950ddd38910d2e15ed1d923cd0a7b3dde9e2a6a3f380565559cb01546001600160401b031690565b8260800151612fd1919061551f565b6001600160401b03164210156130055760405163fb6ce63f60e01b81526001600160401b0342166004820152602401610718565b5f848152600784016020908152604080832080546001600160a81b03191681556001810184905560020183905560098601909152902080546001600160a01b031981169091556001600160a01b031680613060575060208201515b5f8061306d83888661403f565b915091506130868560200151610f7887606001516112a5565b6040805183815260208101839052859189917f8ececf510070c320d9a55323ffabe350e294ae505fc0c509dc5736da6f5cc993910160405180910390a350505050505050565b5f806130d6612676565b90505f6130e56102d185613aaa565b90505f6130f187611cfe565b90506130fc876123ae565b61311c576040516330efa98b60e01b815260048101889052602401610718565b60028151600581111561313157613131614fa6565b1461315257805160405163170cc93360e21b8152610718919060040161513e565b5f828260800151613163919061551f565b905083600201600a9054906101000a90046001600160401b0316826040015161318c9190615561565b6001600160401b0316816001600160401b031611156131c957604051636d51fe0560e11b81526001600160401b0382166004820152602401610718565b5f806131d58a8461332b565b915091505f8a8360405160200161320392919091825260c01b6001600160c01b031916602082015260280190565b60408051601f1981840301815291815281516020928301205f81815260078b019093529120805491925060019160ff1916828002179055505f8181526007880160209081526040918290208054610100600160a81b0319166101006001600160a01b038f16908102919091178255600182018f9055600290910180546001600160401b038b81166001600160c01b03199092168217600160801b8a8316908102919091176001600160c01b031690935585519283528916938201939093529283019190915260608201849052908c9083907fb0024b263bc3a0b728a6edea50a69efa841189f8d32ee8af9d1c2b1a1a2234269060800160405180910390a496505050505050505b9392505050565b6133196140ec565b61332282614137565b611513816141b1565b5f8281525f80516020615d89833981519152602052604081206002015481905f80516020615d6983398151915290600160801b90046001600160401b03166133738582614219565b5f61337d87614483565b5f888152600585016020526040808220600201805467ffffffffffffffff60801b1916600160801b6001600160401b038c811691820292909217909255915163854a893f60e01b8152600481018c905291841660248301526044820152919250906005600160991b019063ee5b48eb9073__$fd0c147b4031eef6079b0498cbafa865f0$__9063854a893f906064015f60405180830381865af4158015613426573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405261344d9190810190615247565b6040518263ffffffff1660e01b81526004016134699190615278565b6020604051808303815f875af1158015613485573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906134a9919061528a565b604080516001600160401b038a811682526020820184905282519394508516928b927f07de5ff35a674a8005e661f3333c907ca6333462808762d19dc7b3abb1a8c1df928290030190a3909450925050505b9250929050565b5f8061350c612676565b90505f61351c8660400151611cfe565b90505f60038251600581111561353457613534614fa6565b1480613552575060048251600581111561355057613550614fa6565b145b15613562575060c081015161359f565b60028251600581111561357757613577614fa6565b0361358357504261359f565b815160405163170cc93360e21b8152610718919060040161513e565b86608001516001600160401b0316816001600160401b0316116135c7575f935050505061330a565b600483015460608801515f916001600160a01b031690634f22429f906135ec906112a5565b60a086015160808c01516040808e01515f90815260068b0160205281902060010154905160e086901b6001600160e01b031916815260048101949094526001600160401b0392831660248501529082166044840152818716606484015216608482015260a401602060405180830381865afa15801561366d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613691919061528a565b90506001600160a01b0387166136a957876020015196505b5f8681526008850160209081526040808320849055600990960190529390932080546001600160a01b0388166001600160a01b031990911617905550909150509392505050565b6136f8614cc8565b5f8281525f80516020615d898339815191526020526040808220815160e0810190925280545f80516020615d6983398151915293929190829060ff16600581111561374557613745614fa6565b600581111561375657613756614fa6565b815260200160018201805461376a90615106565b80601f016020809104026020016040519081016040528092919081815260200182805461379690615106565b80156137e15780601f106137b8576101008083540402835291602001916137e1565b820191905f5260205f20905b8154815290600101906020018083116137c457829003601f168201915b50505091835250506002828101546001600160401b038082166020850152600160401b820481166040850152600160801b820481166060850152600160c01b9091048116608084015260039093015490921660a0909101529091508151600581111561384f5761384f614fa6565b14613882575f8481526005830160205260409081902054905163170cc93360e21b81526107189160ff169060040161513e565b60038152426001600160401b031660c08201525f84815260058381016020526040909120825181548493839160ff19169060019084908111156138c7576138c7614fa6565b0217905550602082015160018201906138e09082615450565b5060408201516002820180546060850151608086015160a08701516001600160401b039586166001600160801b031990941693909317600160401b92861692909202919091176001600160801b0316600160801b918516919091026001600160c01b031617600160c01b9184169190910217905560c0909201516003909101805467ffffffffffffffff1916919092161790555f61397e858261332b565b6080840151604080516001600160401b03909216825242602083015291935083925087917ffbfc4c00cddda774e9bce93712e29d12887b46526858a1afb0937cce8c30fa42910160405180910390a3509392505050565b5f5f80516020615d4983398151915280546040516340c10f1960e01b81526001600160a01b038681166004830152602482018690529293509116906340c10f19906044015f604051808303815f87803b158015613a30575f80fd5b505af1158015613a42573d5f803e3d5ffd5b50505050505050565b6040516001600160a01b0383811660248301526044820183905261058c91859182169063a9059cbb906064015b604051602081830303815290604052915060e01b6020820180516001600160e01b0383818316178352505050506144f8565b5f610ea5825f80516020615d49833981519152546001600160a01b031690614559565b7fe92546d698950ddd38910d2e15ed1d923cd0a7b3dde9e2a6a3f380565559cb07545f9060ff16613b1157604051637fab81e560e01b815260040160405180910390fd5b5f80516020615d6983398151915242613b306060860160408701614f0a565b6001600160401b0316111580613b6a5750613b4e6202a3004261596a565b613b5e6060860160408701614f0a565b6001600160401b031610155b15613ba457613b7f6060850160408601614f0a565b604051635879da1360e11b81526001600160401b039091166004820152602401610718565b60038101546001600160401b0390613bc790600160401b9004821685831661596a565b1115613bf157604051633e1a785160e01b81526001600160401b0384166004820152602401610718565b613c06613c01606086018661597d565b614565565b613c16613c01608086018661597d565b6030613c256020860186615991565b905014613c5757613c396020850185615991565b6040516326475b2f60e11b8152610718925060040190815260200190565b613c618480615991565b90505f03613c8e57613c738480615991565b604051633e08a12560e11b81526004016107189291906159d3565b5f60068201613c9d8680615991565b604051613cab929190615888565b90815260200160405180910390205414613ce457613cc98480615991565b60405163a41f772f60e01b81526004016107189291906159d3565b613cee835f614219565b6040805160e08101909152815481525f90819073__$fd0c147b4031eef6079b0498cbafa865f0$__9063eb97ce519060208101613d2b8a80615991565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250505090825250602090810190613d73908b018b615991565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250505090825250602001613dbc60608b0160408c01614f0a565b6001600160401b03168152602001613dd760608b018b61597d565b613de0906159e6565b8152602001613df260808b018b61597d565b613dfb906159e6565b8152602001886001600160401b03168152506040518263ffffffff1660e01b8152600401613e299190615b13565b5f60405180830381865af4158015613e43573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052613e6a9190810190615bca565b5f82815260048601602052604090209193509150613e888282615450565b508160068401613e988880615991565b604051613ea6929190615888565b9081526040519081900360200181209190915563ee5b48eb60e01b81525f906005600160991b019063ee5b48eb90613ee2908590600401615278565b6020604051808303815f875af1158015613efe573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613f22919061528a565b5f8481526005860160205260409020805460ff191660011790559050613f488780615991565b5f858152600587016020526040902060010191613f66919083615c0d565b505f83815260058501602052604090206002810180546001600160c01b0319166001600160401b038916908117600160801b91909102176001600160c01b03169055600301805467ffffffffffffffff1916905580613fc58880615991565b604051613fd3929190615888565b6040518091039020847fd8a184af94a03e121609cc5f803a446236793e920c7945abc6ba355c8a30cb49898b60400160208101906140119190614f0a565b604080516001600160401b0393841681529290911660208301520160405180910390a4509095945050505050565b5f805f61404a612676565b5f868152600882016020526040812080549082905591925090819080156140de575f8781526006850160205260409020546127109061409490600160a01b900461ffff16836157c4565b61409e919061574b565b91508184600a015f8981526020019081526020015f205f8282546140c2919061596a565b909155506140d290508282615cc6565b92506140de89846139d5565b509097909650945050505050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054600160401b900460ff1661413557604051631afcd79f60e31b815260040160405180910390fd5b565b61413f6140ec565b614148816146ce565b6141506146e7565b610f996060820135608083013561416d60c0850160a08601614f0a565b61417d60e0860160c08701615cd9565b61418e610100870160e08801615cf2565b6101008701356141a661014089016101208a016152a1565b8861014001356146f7565b6141b96140ec565b5f80516020615d498339815191526001600160a01b0382166141f957604051637330680360e01b81526001600160a01b0383166004820152602401610718565b80546001600160a01b0319166001600160a01b0392909216919091179055565b5f80516020615d698339815191525f6001600160401b03808416908516111561424d576142468385615897565b905061425a565b6142578484615897565b90505b60408051608081018252600284015480825260038501546001600160401b038082166020850152600160401b8204811694840194909452600160801b90049092166060820152429115806142c75750600184015481516142c3916001600160401b03169061596a565b8210155b156142ef576001600160401b038084166060830152828252604082015116602082015261430e565b8281606001818151614301919061551f565b6001600160401b03169052505b606081015161431e906064615561565b602082015160018601546001600160401b0392909216916143499190600160401b900460ff16615561565b6001600160401b0316101561438257606081015160405163dfae880160e01b81526001600160401b039091166004820152602401610718565b8581604001818151614394919061551f565b6001600160401b03169052506040810180518691906143b4908390615897565b6001600160401b0316905250600184015460408201516064916143e291600160401b90910460ff1690615561565b6001600160401b0316101561441b576040808201519051633e1a785160e01b81526001600160401b039091166004820152602401610718565b8051600285015560208101516003909401805460408301516060909301516001600160401b03908116600160801b0267ffffffffffffffff60801b19948216600160401b026001600160801b0319909316919097161717919091169390931790925550505050565b5f8181525f80516020615d898339815191526020526040812060020180545f80516020615d6983398151915291906008906144cd90600160401b90046001600160401b0316615d12565b91906101000a8154816001600160401b0302191690836001600160401b031602179055915050919050565b5f61450c6001600160a01b038416836148dc565b905080515f1415801561453057508080602001905181019061452e9190615d2d565b155b1561058c57604051635274afe760e01b81526001600160a01b0384166004820152602401610718565b5f61330a8333846148e9565b6145726020820182614e65565b63ffffffff16158015614592575061458d60208201826152bc565b151590505b156145d9576145a46020820182614e65565b6145b160208301836152bc565b60405163c08a0f1d60e01b815263ffffffff9093166004840152602483015250604401610718565b6145e660208201826152bc565b90506145f56020830183614e65565b63ffffffff16111561460e576145a46020820182614e65565b60015b61461e60208301836152bc565b90508110156115135761463460208301836152bc565b61463f600184615cc6565b81811061464e5761464e615301565b905060200201602081019061466391906152a1565b6001600160a01b031661467960208401846152bc565b8381811061468957614689615301565b905060200201602081019061469e91906152a1565b6001600160a01b031610156146c657604051630dbc8d5f60e31b815260040160405180910390fd5b600101614611565b6146d66140ec565b6146de614a4c565b610f9981614a54565b6146ef6140ec565b614135614b3c565b6146ff6140ec565b5f614708612676565b905061ffff86161580614720575061271061ffff8716115b1561474457604051635f12e6c360e11b815261ffff87166004820152602401610718565b878911156147685760405163222d164360e21b8152600481018a9052602401610718565b60ff8516158061477b5750600a60ff8616115b1561479e5760405163170db35960e31b815260ff86166004820152602401610718565b7fe92546d698950ddd38910d2e15ed1d923cd0a7b3dde9e2a6a3f380565559cb01546001600160401b03166001600160401b0316876001600160401b03161015614805576040516202a06d60e11b81526001600160401b0388166004820152602401610718565b835f036148255760405163a733007160e01b815260040160405180910390fd5b8161484657604051632f6bd1db60e01b815260048101839052602401610718565b97885560018801969096556002870180546001600160401b039690961669ffffffffffffffffffff1990961695909517600160401b61ffff95909516949094029390931767ffffffffffffffff60501b191660ff92909216600160501b029190911790925560038401919091556004830180546001600160a01b0319166001600160a01b03909216919091179055600590910155565b606061330a83835f614b44565b6040516370a0823160e01b81523060048201525f9081906001600160a01b038616906370a0823190602401602060405180830381865afa15801561492f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190614953919061528a565b905061496a6001600160a01b038616853086614bd3565b6040516370a0823160e01b81523060048201525f906001600160a01b038716906370a0823190602401602060405180830381865afa1580156149ae573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906149d2919061528a565b9050818111614a385760405162461bcd60e51b815260206004820152602c60248201527f5361666545524332305472616e7366657246726f6d3a2062616c616e6365206e60448201526b1bdd081a5b98dc99585cd95960a21b6064820152608401610718565b614a428282615cc6565b9695505050505050565b6141356140ec565b614a5c6140ec565b80355f80516020615d698339815191529081556014614a816060840160408501615cf2565b60ff161180614aa05750614a9b6060830160408401615cf2565b60ff16155b15614ad457614ab56060830160408401615cf2565b604051634a59bbff60e11b815260ff9091166004820152602401610718565b614ae46060830160408401615cf2565b60018201805460ff92909216600160401b0260ff60401b19909216919091179055614b156040830160208401614f0a565b600191909101805467ffffffffffffffff19166001600160401b0390921691909117905550565b612d136140ec565b606081471015614b695760405163cd78605960e01b8152306004820152602401610718565b5f80856001600160a01b03168486604051614b8491906153fb565b5f6040518083038185875af1925050503d805f8114614bbe576040519150601f19603f3d011682016040523d82523d5f602084013e614bc3565b606091505b5091509150614a42868383614c0c565b6040516001600160a01b03848116602483015283811660448301526064820183905261081b9186918216906323b872dd90608401613a78565b606082614c2157614c1c82614c68565b61330a565b8151158015614c3857506001600160a01b0384163b155b15614c6157604051639996b31560e01b81526001600160a01b0385166004820152602401610718565b508061330a565b805115614c785780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b508054614c9d90615106565b5f825580601f10614cac575050565b601f0160209004905f5260205f2090810190610f999190614d05565b6040805160e08101909152805f81526060602082018190525f604083018190529082018190526080820181905260a0820181905260c09091015290565b5b80821115614d19575f8155600101614d06565b5090565b8015158114610f99575f80fd5b803563ffffffff81168114614d3d575f80fd5b919050565b5f805f60608486031215614d54575f80fd5b833592506020840135614d6681614d1d565b9150614d7460408501614d2a565b90509250925092565b5f60208284031215614d8d575f80fd5b5035919050565b5f8060408385031215614da5575f80fd5b82356001600160401b03811115614dba575f80fd5b830160808186031215614dcb575f80fd5b9150614dd960208401614d2a565b90509250929050565b5f8060408385031215614df3575f80fd5b82359150614dd960208401614d2a565b6001600160a01b0381168114610f99575f80fd5b5f805f8060808587031215614e2a575f80fd5b843593506020850135614e3c81614d1d565b9250614e4a60408601614d2a565b91506060850135614e5a81614e03565b939692955090935050565b5f60208284031215614e75575f80fd5b61330a82614d2a565b803561ffff81168114614d3d575f80fd5b6001600160401b0381168114610f99575f80fd5b5f805f8060808587031215614eb6575f80fd5b84356001600160401b03811115614ecb575f80fd5b850160a08188031215614edc575f80fd5b9350614eea60208601614e7e565b92506040850135614efa81614e8f565b9396929550929360600135925050565b5f60208284031215614f1a575f80fd5b813561330a81614e8f565b5f8060408385031215614f36575f80fd5b823591506020830135614f4881614e03565b809150509250929050565b5f8060408385031215614f64575f80fd5b50508035926020909101359150565b5f80828403610180811215614f86575f80fd5b61016080821215614f95575f80fd5b8493508301359050614f4881614e03565b634e487b7160e01b5f52602160045260245ffd5b60068110614fca57614fca614fa6565b9052565b5f5b83811015614fe8578181015183820152602001614fd0565b50505f910152565b5f8151808452615007816020860160208601614fce565b601f01601f19169290920160200192915050565b6020815261502d602082018351614fba565b5f602083015160e06040840152615048610100840182614ff0565b905060408401516001600160401b0380821660608601528060608701511660808601528060808701511660a08601528060a08701511660c08601528060c08701511660e086015250508091505092915050565b5f80602083850312156150ac575f80fd5b82356001600160401b03808211156150c2575f80fd5b818501915085601f8301126150d5575f80fd5b8135818111156150e3575f80fd5b8660208285010111156150f4575f80fd5b60209290920196919550909350505050565b600181811c9082168061511a57607f821691505b60208210810361513857634e487b7160e01b5f52602260045260245ffd5b50919050565b60208101610ea58284614fba565b634e487b7160e01b5f52604160045260245ffd5b604051606081016001600160401b03811182821017156151825761518261514c565b60405290565b604080519081016001600160401b03811182821017156151825761518261514c565b604051601f8201601f191681016001600160401b03811182821017156151d2576151d261514c565b604052919050565b5f6001600160401b038211156151f2576151f261514c565b50601f01601f191660200190565b5f82601f83011261520f575f80fd5b815161522261521d826151da565b6151aa565b818152846020838601011115615236575f80fd5b610fc9826020830160208701614fce565b5f60208284031215615257575f80fd5b81516001600160401b0381111561526c575f80fd5b610fc984828501615200565b602081525f61330a6020830184614ff0565b5f6020828403121561529a575f80fd5b5051919050565b5f602082840312156152b1575f80fd5b813561330a81614e03565b5f808335601e198436030181126152d1575f80fd5b8301803591506001600160401b038211156152ea575f80fd5b6020019150600581901b36038213156134fb575f80fd5b634e487b7160e01b5f52603260045260245ffd5b5f8235605e19833603018112615329575f80fd5b9190910192915050565b5f82601f830112615342575f80fd5b813561535061521d826151da565b818152846020838601011115615364575f80fd5b816020850160208301375f918101602001919091529392505050565b5f60608236031215615390575f80fd5b615398615160565b82356001600160401b03808211156153ae575f80fd5b6153ba36838701615333565b835260208501359150808211156153cf575f80fd5b506153dc36828601615333565b60208301525060408301356153f081614e8f565b604082015292915050565b5f8251615329818460208701614fce565b601f82111561058c57805f5260205f20601f840160051c810160208510156154315750805b601f840160051c820191505b81811015610eb7575f815560010161543d565b81516001600160401b038111156154695761546961514c565b61547d816154778454615106565b8461540c565b602080601f8311600181146154b0575f84156154995750858301515b5f19600386901b1c1916600185901b178555611101565b5f85815260208120601f198616915b828110156154de578886015182559484019460019091019084016154bf565b50858210156154fb57878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b5f52601160045260245ffd5b6001600160401b038181168382160190808211156123a7576123a761550b565b5f63ffffffff8083168181036155575761555761550b565b6001019392505050565b6001600160401b038181168382160280821691908281146155845761558461550b565b505092915050565b5f808335601e198436030181126155a1575f80fd5b83016020810192503590506001600160401b038111156155bf575f80fd5b8036038213156134fb575f80fd5b81835281816020850137505f828201602090810191909152601f909101601f19169091010190565b5f8383855260208086019550808560051b830101845f5b878110156156aa57848303601f19018952813536889003605e19018112615631575f80fd5b8701606061563f828061558c565b82875261564f83880182846155cd565b9250505061565f8683018361558c565b868303888801526156718382846155cd565b92505050604080830135925061568683614e8f565b6001600160401b03929092169490910193909352978301979083019060010161560c565b5090979650505050505050565b6020815281356020820152602082013560408201525f60408301356156db81614e03565b6001600160a01b031660608381019190915283013536849003601e19018112615702575f80fd5b83016020810190356001600160401b0381111561571d575f80fd5b8060051b360382131561572e575f80fd5b60808085015261574260a0850182846155f5565b95945050505050565b5f8261576557634e487b7160e01b5f52601260045260245ffd5b500490565b602081016004831061577e5761577e614fa6565b91905290565b5f805f60608486031215615796575f80fd5b8351925060208401516157a881614e8f565b60408501519092506157b981614e8f565b809150509250925092565b8082028115828204841417610ea557610ea561550b565b5f80604083850312156157ec575f80fd5b825191506020830151614f4881614d1d565b5f60208083525f845461581081615106565b806020870152604060018084165f8114615831576001811461584d5761587a565b60ff19851660408a0152604084151560051b8a0101955061587a565b895f5260205f205f5b858110156158715781548b8201860152908301908801615856565b8a016040019650505b509398975050505050505050565b818382375f9101908152919050565b6001600160401b038281168282160390808211156123a7576123a761550b565b5f80604083850312156158c8575f80fd5b82516001600160401b03808211156158de575f80fd5b90840190606082870312156158f1575f80fd5b6158f9615160565b82518152602083015161590b81614e03565b6020820152604083015182811115615921575f80fd5b61592d88828601615200565b6040830152508094505050506020830151614f4881614d1d565b5f8060408385031215615958575f80fd5b825191506020830151614f4881614e8f565b80820180821115610ea557610ea561550b565b5f8235603e19833603018112615329575f80fd5b5f808335601e198436030181126159a6575f80fd5b8301803591506001600160401b038211156159bf575f80fd5b6020019150368190038213156134fb575f80fd5b602081525f610fc96020830184866155cd565b5f604082360312156159f6575f80fd5b6159fe615188565b615a0783614d2a565b81526020808401356001600160401b0380821115615a23575f80fd5b9085019036601f830112615a35575f80fd5b813581811115615a4757615a4761514c565b8060051b9150615a588483016151aa565b8181529183018401918481019036841115615a71575f80fd5b938501935b83851015615a9b5784359250615a8b83614e03565b8282529385019390850190615a76565b94860194909452509295945050505050565b5f6040830163ffffffff8351168452602080840151604060208701528281518085526060880191506020830194505f92505b80831015615b085784516001600160a01b03168252938301936001929092019190830190615adf565b509695505050505050565b60208152815160208201525f602083015160e06040840152615b39610100840182614ff0565b90506040840151601f1980858403016060860152615b578383614ff0565b92506001600160401b03606087015116608086015260808601519150808584030160a0860152615b878383615aad565b925060a08601519150808584030160c086015250615ba58282615aad565b91505060c0840151615bc260e08501826001600160401b03169052565b509392505050565b5f8060408385031215615bdb575f80fd5b8251915060208301516001600160401b03811115615bf7575f80fd5b615c0385828601615200565b9150509250929050565b6001600160401b03831115615c2457615c2461514c565b615c3883615c328354615106565b8361540c565b5f601f841160018114615c69575f8515615c525750838201355b5f19600387901b1c1916600186901b178355610eb7565b5f83815260208120601f198716915b82811015615c985786850135825560209485019460019092019101615c78565b5086821015615cb4575f1960f88860031b161c19848701351681555b505060018560011b0183555050505050565b81810381811115610ea557610ea561550b565b5f60208284031215615ce9575f80fd5b61330a82614e7e565b5f60208284031215615d02575f80fd5b813560ff8116811461330a575f80fd5b5f6001600160401b038083168181036155575761555761550b565b5f60208284031215615d3d575f80fd5b815161330a81614d1d56fe6e5bdfcce15e53c3406ea67bfce37dcd26f5152d5492824e43fd5e3c8ac5ab00e92546d698950ddd38910d2e15ed1d923cd0a7b3dde9e2a6a3f380565559cb00e92546d698950ddd38910d2e15ed1d923cd0a7b3dde9e2a6a3f380565559cb059b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00a2646970667358221220c5ae6fa9b9fbfbd37061baa82d19398c7d030958d6ea6fdc1d0b54330884fcee64736f6c63430008190033", } // ERC20TokenStakingManagerABI is the input ABI used to generate the binding from. @@ -711,37 +711,6 @@ func (_ERC20TokenStakingManager *ERC20TokenStakingManagerCallerSession) GetValid return _ERC20TokenStakingManager.Contract.GetValidator(&_ERC20TokenStakingManager.CallOpts, validationID) } -// GetWeight is a free data retrieval call binding the contract method 0x66435abf. -// -// Solidity: function getWeight(bytes32 validationID) view returns(uint64) -func (_ERC20TokenStakingManager *ERC20TokenStakingManagerCaller) GetWeight(opts *bind.CallOpts, validationID [32]byte) (uint64, error) { - var out []interface{} - err := _ERC20TokenStakingManager.contract.Call(opts, &out, "getWeight", validationID) - - if err != nil { - return *new(uint64), err - } - - out0 := *abi.ConvertType(out[0], new(uint64)).(*uint64) - - return out0, err - -} - -// GetWeight is a free data retrieval call binding the contract method 0x66435abf. -// -// Solidity: function getWeight(bytes32 validationID) view returns(uint64) -func (_ERC20TokenStakingManager *ERC20TokenStakingManagerSession) GetWeight(validationID [32]byte) (uint64, error) { - return _ERC20TokenStakingManager.Contract.GetWeight(&_ERC20TokenStakingManager.CallOpts, validationID) -} - -// GetWeight is a free data retrieval call binding the contract method 0x66435abf. -// -// Solidity: function getWeight(bytes32 validationID) view returns(uint64) -func (_ERC20TokenStakingManager *ERC20TokenStakingManagerCallerSession) GetWeight(validationID [32]byte) (uint64, error) { - return _ERC20TokenStakingManager.Contract.GetWeight(&_ERC20TokenStakingManager.CallOpts, validationID) -} - // RegisteredValidators is a free data retrieval call binding the contract method 0xfd7ac5e7. // // Solidity: function registeredValidators(bytes nodeID) view returns(bytes32) diff --git a/abi-bindings/go/validator-manager/NativeTokenStakingManager/NativeTokenStakingManager.go b/abi-bindings/go/validator-manager/NativeTokenStakingManager/NativeTokenStakingManager.go index da8e12316..f3728cb1e 100644 --- a/abi-bindings/go/validator-manager/NativeTokenStakingManager/NativeTokenStakingManager.go +++ b/abi-bindings/go/validator-manager/NativeTokenStakingManager/NativeTokenStakingManager.go @@ -103,8 +103,8 @@ type ValidatorRegistrationInput struct { // NativeTokenStakingManagerMetaData contains all meta data concerning the NativeTokenStakingManager contract. var NativeTokenStakingManagerMetaData = &bind.MetaData{ - ABI: "[{\"inputs\":[{\"internalType\":\"enumICMInitializable\",\"name\":\"init\",\"type\":\"uint8\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"AddressInsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"delegationID\",\"type\":\"bytes32\"}],\"name\":\"DelegatorIneligibleForRewards\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedInnerCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"}],\"name\":\"InvalidBLSKeyLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"encodedConversionID\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"expectedConversionID\",\"type\":\"bytes32\"}],\"name\":\"InvalidConversionID\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"delegationFeeBips\",\"type\":\"uint16\"}],\"name\":\"InvalidDelegationFee\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"delegationID\",\"type\":\"bytes32\"}],\"name\":\"InvalidDelegationID\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"enumDelegatorStatus\",\"name\":\"status\",\"type\":\"uint8\"}],\"name\":\"InvalidDelegatorStatus\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitializationStatus\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"maximumChurnPercentage\",\"type\":\"uint8\"}],\"name\":\"InvalidMaximumChurnPercentage\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"minStakeDuration\",\"type\":\"uint64\"}],\"name\":\"InvalidMinStakeDuration\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"nodeID\",\"type\":\"bytes\"}],\"name\":\"InvalidNodeID\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"name\":\"InvalidNonce\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"threshold\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"addressesLength\",\"type\":\"uint256\"}],\"name\":\"InvalidPChainOwnerThreshold\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"registrationExpiry\",\"type\":\"uint64\"}],\"name\":\"InvalidRegistrationExpiry\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"rewardRecipient\",\"type\":\"address\"}],\"name\":\"InvalidRewardRecipient\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"stakeAmount\",\"type\":\"uint256\"}],\"name\":\"InvalidStakeAmount\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"maximumStakeMultiplier\",\"type\":\"uint8\"}],\"name\":\"InvalidStakeMultiplier\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"weight\",\"type\":\"uint64\"}],\"name\":\"InvalidTotalWeight\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"uptimeBlockchainID\",\"type\":\"bytes32\"}],\"name\":\"InvalidUptimeBlockchainID\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"}],\"name\":\"InvalidValidationID\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"validatorManagerAddress\",\"type\":\"address\"}],\"name\":\"InvalidValidatorManagerAddress\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"blockchainID\",\"type\":\"bytes32\"}],\"name\":\"InvalidValidatorManagerBlockchainID\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"enumValidatorStatus\",\"name\":\"status\",\"type\":\"uint8\"}],\"name\":\"InvalidValidatorStatus\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidWarpMessage\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"senderAddress\",\"type\":\"address\"}],\"name\":\"InvalidWarpOriginSenderAddress\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"sourceChainID\",\"type\":\"bytes32\"}],\"name\":\"InvalidWarpSourceChainID\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"churnAmount\",\"type\":\"uint64\"}],\"name\":\"MaxChurnRateExceeded\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"newValidatorWeight\",\"type\":\"uint64\"}],\"name\":\"MaxWeightExceeded\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"endTime\",\"type\":\"uint64\"}],\"name\":\"MinStakeDurationNotPassed\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"nodeID\",\"type\":\"bytes\"}],\"name\":\"NodeAlreadyRegistered\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"PChainOwnerAddressesNotSorted\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ReentrancyGuardReentrantCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"UnauthorizedOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"validRegistration\",\"type\":\"bool\"}],\"name\":\"UnexpectedRegistrationStatus\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"}],\"name\":\"ValidatorIneligibleForRewards\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"}],\"name\":\"ValidatorNotPoS\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZeroWeightToValueFactor\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"delegationID\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"rewards\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"fees\",\"type\":\"uint256\"}],\"name\":\"DelegationEnded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"delegationID\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"delegatorAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"validatorWeight\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"delegatorWeight\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"setWeightMessageID\",\"type\":\"bytes32\"}],\"name\":\"DelegatorAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"delegationID\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"startTime\",\"type\":\"uint256\"}],\"name\":\"DelegatorRegistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"delegationID\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"}],\"name\":\"DelegatorRemovalInitialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes\",\"name\":\"nodeID\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"weight\",\"type\":\"uint64\"}],\"name\":\"InitialValidatorCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"uptime\",\"type\":\"uint64\"}],\"name\":\"UptimeUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes\",\"name\":\"nodeID\",\"type\":\"bytes\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"registerValidationMessageID\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"weight\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"registrationExpiry\",\"type\":\"uint64\"}],\"name\":\"ValidationPeriodCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"enumValidatorStatus\",\"name\":\"status\",\"type\":\"uint8\"}],\"name\":\"ValidationPeriodEnded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"weight\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"name\":\"ValidationPeriodRegistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"setWeightMessageID\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"weight\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"endTime\",\"type\":\"uint256\"}],\"name\":\"ValidatorRemovalInitialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"weight\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"setWeightMessageID\",\"type\":\"bytes32\"}],\"name\":\"ValidatorWeightUpdate\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"ADDRESS_LENGTH\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"BIPS_CONVERSION_FACTOR\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"BLS_PUBLIC_KEY_LENGTH\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MAXIMUM_CHURN_PERCENTAGE_LIMIT\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MAXIMUM_DELEGATION_FEE_BIPS\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MAXIMUM_REGISTRATION_EXPIRY_LENGTH\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MAXIMUM_STAKE_MULTIPLIER_LIMIT\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"NATIVE_MINTER\",\"outputs\":[{\"internalType\":\"contractINativeMinter\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"POS_VALIDATOR_MANAGER_STORAGE_LOCATION\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"P_CHAIN_BLOCKCHAIN_ID\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"VALIDATOR_MANAGER_STORAGE_LOCATION\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"WARP_MESSENGER\",\"outputs\":[{\"internalType\":\"contractIWarpMessenger\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"delegationID\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"rewardRecipient\",\"type\":\"address\"}],\"name\":\"changeDelegatorRewardRecipient\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"rewardRecipient\",\"type\":\"address\"}],\"name\":\"changeValidatorRewardRecipient\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"}],\"name\":\"claimDelegationFees\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"delegationID\",\"type\":\"bytes32\"},{\"internalType\":\"uint32\",\"name\":\"messageIndex\",\"type\":\"uint32\"}],\"name\":\"completeDelegatorRegistration\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"delegationID\",\"type\":\"bytes32\"},{\"internalType\":\"uint32\",\"name\":\"messageIndex\",\"type\":\"uint32\"}],\"name\":\"completeEndDelegation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"messageIndex\",\"type\":\"uint32\"}],\"name\":\"completeEndValidation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"messageIndex\",\"type\":\"uint32\"}],\"name\":\"completeValidatorRegistration\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"delegationID\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"includeUptimeProof\",\"type\":\"bool\"},{\"internalType\":\"uint32\",\"name\":\"messageIndex\",\"type\":\"uint32\"}],\"name\":\"forceInitializeEndDelegation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"delegationID\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"includeUptimeProof\",\"type\":\"bool\"},{\"internalType\":\"uint32\",\"name\":\"messageIndex\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"rewardRecipient\",\"type\":\"address\"}],\"name\":\"forceInitializeEndDelegation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"includeUptimeProof\",\"type\":\"bool\"},{\"internalType\":\"uint32\",\"name\":\"messageIndex\",\"type\":\"uint32\"}],\"name\":\"forceInitializeEndValidation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"includeUptimeProof\",\"type\":\"bool\"},{\"internalType\":\"uint32\",\"name\":\"messageIndex\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"rewardRecipient\",\"type\":\"address\"}],\"name\":\"forceInitializeEndValidation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"}],\"name\":\"getValidator\",\"outputs\":[{\"components\":[{\"internalType\":\"enumValidatorStatus\",\"name\":\"status\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"nodeID\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"startingWeight\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"messageNonce\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"weight\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"startedAt\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"endedAt\",\"type\":\"uint64\"}],\"internalType\":\"structValidator\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"}],\"name\":\"getWeight\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"l1ID\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"churnPeriodSeconds\",\"type\":\"uint64\"},{\"internalType\":\"uint8\",\"name\":\"maximumChurnPercentage\",\"type\":\"uint8\"}],\"internalType\":\"structValidatorManagerSettings\",\"name\":\"baseSettings\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"minimumStakeAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maximumStakeAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"minimumStakeDuration\",\"type\":\"uint64\"},{\"internalType\":\"uint16\",\"name\":\"minimumDelegationFeeBips\",\"type\":\"uint16\"},{\"internalType\":\"uint8\",\"name\":\"maximumStakeMultiplier\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"weightToValueFactor\",\"type\":\"uint256\"},{\"internalType\":\"contractIRewardCalculator\",\"name\":\"rewardCalculator\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"uptimeBlockchainID\",\"type\":\"bytes32\"}],\"internalType\":\"structPoSValidatorManagerSettings\",\"name\":\"settings\",\"type\":\"tuple\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"}],\"name\":\"initializeDelegatorRegistration\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"delegationID\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"includeUptimeProof\",\"type\":\"bool\"},{\"internalType\":\"uint32\",\"name\":\"messageIndex\",\"type\":\"uint32\"}],\"name\":\"initializeEndDelegation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"delegationID\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"includeUptimeProof\",\"type\":\"bool\"},{\"internalType\":\"uint32\",\"name\":\"messageIndex\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"rewardRecipient\",\"type\":\"address\"}],\"name\":\"initializeEndDelegation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"includeUptimeProof\",\"type\":\"bool\"},{\"internalType\":\"uint32\",\"name\":\"messageIndex\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"rewardRecipient\",\"type\":\"address\"}],\"name\":\"initializeEndValidation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"includeUptimeProof\",\"type\":\"bool\"},{\"internalType\":\"uint32\",\"name\":\"messageIndex\",\"type\":\"uint32\"}],\"name\":\"initializeEndValidation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"nodeID\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"blsPublicKey\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"registrationExpiry\",\"type\":\"uint64\"},{\"components\":[{\"internalType\":\"uint32\",\"name\":\"threshold\",\"type\":\"uint32\"},{\"internalType\":\"address[]\",\"name\":\"addresses\",\"type\":\"address[]\"}],\"internalType\":\"structPChainOwner\",\"name\":\"remainingBalanceOwner\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint32\",\"name\":\"threshold\",\"type\":\"uint32\"},{\"internalType\":\"address[]\",\"name\":\"addresses\",\"type\":\"address[]\"}],\"internalType\":\"structPChainOwner\",\"name\":\"disableOwner\",\"type\":\"tuple\"}],\"internalType\":\"structValidatorRegistrationInput\",\"name\":\"registrationInput\",\"type\":\"tuple\"},{\"internalType\":\"uint16\",\"name\":\"delegationFeeBips\",\"type\":\"uint16\"},{\"internalType\":\"uint64\",\"name\":\"minStakeDuration\",\"type\":\"uint64\"}],\"name\":\"initializeValidatorRegistration\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"l1ID\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"validatorManagerBlockchainID\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"validatorManagerAddress\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"bytes\",\"name\":\"nodeID\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"blsPublicKey\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"weight\",\"type\":\"uint64\"}],\"internalType\":\"structInitialValidator[]\",\"name\":\"initialValidators\",\"type\":\"tuple[]\"}],\"internalType\":\"structConversionData\",\"name\":\"conversionData\",\"type\":\"tuple\"},{\"internalType\":\"uint32\",\"name\":\"messageIndex\",\"type\":\"uint32\"}],\"name\":\"initializeValidatorSet\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"nodeID\",\"type\":\"bytes\"}],\"name\":\"registeredValidators\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"}],\"name\":\"resendEndValidatorMessage\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"}],\"name\":\"resendRegisterValidatorMessage\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"delegationID\",\"type\":\"bytes32\"}],\"name\":\"resendUpdateDelegation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"internalType\":\"uint32\",\"name\":\"messageIndex\",\"type\":\"uint32\"}],\"name\":\"submitUptimeProof\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"valueToWeight\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"weight\",\"type\":\"uint64\"}],\"name\":\"weightToValue\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}]", - Bin: "0x608060405234801561000f575f80fd5b50604051615cb8380380615cb883398101604081905261002e91610107565b60018160018111156100425761004261012c565b0361004f5761004f610055565b50610140565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff16156100a55760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b03908116146101045780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b5f60208284031215610117575f80fd5b815160028110610125575f80fd5b9392505050565b634e487b7160e01b5f52602160045260245ffd5b615b6b8061014d5f395ff3fe608060405260043610610233575f3560e01c80637d8d2f7711610129578063b771b3bc116100a8578063c974d1b61161006d578063c974d1b614610690578063d5f20ff6146106a4578063df93d8de146106d0578063fb8b11dd146106e6578063fd7ac5e714610705575f80fd5b8063b771b3bc14610605578063ba3a4b971461061f578063bc5fbfec1461063e578063bee0a03f1461065e578063c599e24f1461067d575f80fd5b80639ae06447116100ee5780639ae0644714610581578063a3a65e48146105a0578063a9778a7a14610387578063af2f5feb146105bf578063afb98096146105d2575f80fd5b80637d8d2f77146104f157806380dd672f146105105780638280a25a1461052f5780638ef34c981461054357806393e2459814610562575f80fd5b806337b9be8f116101b557806360ad77841161017a57806360ad778414610454578063620658561461047357806366435abf146104a0578063732214f8146104bf57806376f78621146104d2575f80fd5b806337b9be8f146103af5780633a1cfff6146103ce578063467ef06f146103ed5780635dd6a6cb1461040c57806360305d621461042b575f80fd5b806320d91b7a116101fb57806320d91b7a146102e057806325e1c776146102ff5780632e2194d81461031e578063329c3e121461035557806335455ded14610387575f80fd5b80630118acc4146102375780630322ed98146102585780630ba512d114610277578063151d30d1146102965780631ec44724146102c1575b5f80fd5b348015610242575f80fd5b50610256610251366004614b3d565b610724565b005b348015610263575f80fd5b50610256610272366004614b78565b610735565b348015610282575f80fd5b50610256610291366004614b8f565b6109c5565b3480156102a1575f80fd5b506102aa600a81565b60405160ff90911681526020015b60405180910390f35b3480156102cc575f80fd5b506102566102db366004614b3d565b610aa2565b3480156102eb575f80fd5b506102566102fa366004614ba6565b610aae565b34801561030a575f80fd5b50610256610319366004614bf4565b611064565b348015610329575f80fd5b5061033d610338366004614b78565b6110d8565b6040516001600160401b0390911681526020016102b8565b348015610360575f80fd5b5061036f6001600160991b0181565b6040516001600160a01b0390911681526020016102b8565b348015610392575f80fd5b5061039c61271081565b60405161ffff90911681526020016102b8565b3480156103ba575f80fd5b506102566103c9366004614c29565b61112c565b3480156103d9575f80fd5b506102566103e8366004614b3d565b61113f565b3480156103f8575f80fd5b50610256610407366004614c77565b61114b565b348015610417575f80fd5b50610256610426366004614c29565b61121d565b348015610436575f80fd5b5061043f601481565b60405163ffffffff90911681526020016102b8565b34801561045f575f80fd5b5061025661046e366004614bf4565b611229565b34801561047e575f80fd5b5061049261048d366004614ca4565b6114f1565b6040519081526020016102b8565b3480156104ab575f80fd5b5061033d6104ba366004614b78565b611511565b3480156104ca575f80fd5b506104925f81565b3480156104dd575f80fd5b506102566104ec366004614b3d565b611525565b3480156104fc575f80fd5b5061025661050b366004614c29565b611531565b34801561051b575f80fd5b5061025661052a366004614bf4565b61153d565b34801561053a575f80fd5b506102aa603081565b34801561054e575f80fd5b5061025661055d366004614cbf565b611777565b34801561056d575f80fd5b5061025661057c366004614b78565b611828565b34801561058c575f80fd5b5061025661059b366004614c29565b6118bc565b3480156105ab575f80fd5b506102566105ba366004614c77565b6118c8565b6104926105cd366004614cfe565b611abe565b3480156105dd575f80fd5b506104927f4317713f7ecbdddd4bc99e95d903adedaa883b2e7c2551610bd13e2c7e473d0081565b348015610610575f80fd5b5061036f6005600160991b0181565b34801561062a575f80fd5b50610256610639366004614b78565b611af2565b348015610649575f80fd5b506104925f80516020615ad683398151915281565b348015610669575f80fd5b50610256610678366004614b78565b611d4b565b61049261068b366004614b78565b611e87565b34801561069b575f80fd5b506102aa601481565b3480156106af575f80fd5b506106c36106be366004614b78565b611eb8565b6040516102b89190614dd4565b3480156106db575f80fd5b5061033d6202a30081565b3480156106f1575f80fd5b50610256610700366004614cbf565b612007565b348015610710575f80fd5b5061049261071f366004614e54565b61209e565b6107308383835f6120f9565b505050565b5f8181525f80516020615af68339815191526020526040808220815160e0810190925280545f80516020615ad683398151915293929190829060ff16600581111561078257610782614d5f565b600581111561079357610793614d5f565b81526020016001820180546107a790614ebf565b80601f01602080910402602001604051908101604052809291908181526020018280546107d390614ebf565b801561081e5780601f106107f55761010080835404028352916020019161081e565b820191905f5260205f20905b81548152906001019060200180831161080157829003601f168201915b505050918352505060028201546001600160401b038082166020840152600160401b820481166040840152600160801b820481166060840152600160c01b909104811660808301526003928301541660a0909101529091508151600581111561088957610889614d5f565b146108c5575f8381526005830160205260409081902054905163170cc93360e21b81526108bc9160ff1690600401614ef1565b60405180910390fd5b606081015160405163854a893f60e01b8152600481018590526001600160401b0390911660248201525f60448201526005600160991b019063ee5b48eb9073__$fd0c147b4031eef6079b0498cbafa865f0$__9063854a893f906064015f60405180830381865af415801561093c573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526109639190810190614ffa565b6040518263ffffffff1660e01b815260040161097f919061502b565b6020604051808303815f875af115801561099b573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109bf919061503d565b50505050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805460029190600160401b900460ff1680610a0e575080546001600160401b03808416911610155b15610a2c5760405163f92ee8a960e01b815260040160405180910390fd5b805468ffffffffffffffffff19166001600160401b03831617600160401b178155610a5683612125565b805460ff60401b191681556040516001600160401b03831681527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a1505050565b6109bf8383835f612136565b7fe92546d698950ddd38910d2e15ed1d923cd0a7b3dde9e2a6a3f380565559cb07545f80516020615ad68339815191529060ff1615610b0057604051637fab81e560e01b815260040160405180910390fd5b6005600160991b016001600160a01b0316634213cf786040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b43573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b67919061503d565b836020013514610b90576040516372b0a7e760e11b8152602084013560048201526024016108bc565b30610ba16060850160408601615054565b6001600160a01b031614610be457610bbf6060840160408501615054565b604051632f88120d60e21b81526001600160a01b0390911660048201526024016108bc565b5f610bf2606085018561506f565b905090505f805b828163ffffffff161015610e5a575f610c15606088018861506f565b8363ffffffff16818110610c2b57610c2b6150b4565b9050602002810190610c3d91906150c8565b610c4690615133565b80516040519192505f916006880191610c5e916151ae565b90815260200160405180910390205414610c8e57805160405163a41f772f60e01b81526108bc919060040161502b565b5f6002885f013584604051602001610cbd92919091825260e01b6001600160e01b031916602082015260240190565b60408051601f1981840301815290829052610cd7916151ae565b602060405180830381855afa158015610cf2573d5f803e3d5ffd5b5050506040513d601f19601f82011682018060405250810190610d15919061503d565b90508086600601835f0151604051610d2d91906151ae565b90815260408051918290036020908101909220929092555f8381526005890190915220805460ff191660021781558251600190910190610d6d9082615203565b50604082810180515f84815260058a016020529290922060028101805492516001600160401b039485166001600160c01b031990941693909317600160801b85851602176001600160c01b0316600160c01b429590951694909402939093179092556003909101805467ffffffffffffffff19169055610ded90856152d2565b8251604051919550610dfe916151ae565b60408051918290038220908401516001600160401b031682529082907ffe3e5983f71c8253fb0b678f2bc587aa8574d8f1aab9cf82b983777f5998392c9060200160405180910390a3505080610e53906152f2565b9050610bf9565b5060038301805467ffffffffffffffff60401b1916600160401b6001600160401b0384168102919091179091556001840154606491610e9d910460ff1683615314565b6001600160401b03161015610ed057604051633e1a785160e01b81526001600160401b03821660048201526024016108bc565b5f73__$fd0c147b4031eef6079b0498cbafa865f0$__634d847884610ef48761246b565b604001516040518263ffffffff1660e01b8152600401610f14919061502b565b602060405180830381865af4158015610f2f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f53919061503d565b90505f73__$fd0c147b4031eef6079b0498cbafa865f0$__6387418b8e886040518263ffffffff1660e01b8152600401610f8d919061546a565b5f60405180830381865af4158015610fa7573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052610fce9190810190614ffa565b90505f600282604051610fe191906151ae565b602060405180830381855afa158015610ffc573d5f803e3d5ffd5b5050506040513d601f19601f8201168201806040525081019061101f919061503d565b905082811461104b5760405163baaea89d60e01b815260048101829052602481018490526044016108bc565b5050506007909201805460ff1916600117905550505050565b61106d82612581565b61108d576040516330efa98b60e01b8152600481018390526024016108bc565b5f61109783611eb8565b51905060028160058111156110ae576110ae614d5f565b146110ce578060405163170cc93360e21b81526004016108bc9190614ef1565b6109bf83836125aa565b5f806110e2612849565b600301546110f090846154fe565b905080158061110557506001600160401b0381115b156111265760405163222d164360e21b8152600481018490526024016108bc565b92915050565b61113884848484612136565b5050505050565b6109bf8383835f61286d565b611153612aaa565b5f61115c612849565b90505f8061116984612ae1565b9150915061117682612581565b61118257505050611204565b5f828152600684016020908152604080832054600b870190925290912080546001600160a01b031981169091556001600160a01b039182169116806111c45750805b6004835160058111156111d9576111d9614d5f565b036111e8576111e88185612e99565b6111fe826111f985604001516114f1565b612ec3565b50505050505b61121a60015f80516020615b1683398151915255565b50565b6109bf84848484612ee9565b5f611232612849565b5f848152600782016020526040808220815160e0810190925280549394509192909190829060ff16600381111561126b5761126b614d5f565b600381111561127c5761127c614d5f565b8152815461010090046001600160a01b0316602082015260018201546040808301919091526002909201546001600160401b038082166060840152600160401b820481166080840152600160801b8204811660a0840152600160c01b9091041660c0909101528101519091505f6112f282611eb8565b905060018351600381111561130957611309614d5f565b1461132a578251604051633b0d540d60e21b81526108bc919060040161551d565b60048151600581111561133f5761133f614d5f565b036113555761134d86612f15565b505050505050565b5f8073__$fd0c147b4031eef6079b0498cbafa865f0$__6350782b0f61137a8961246b565b604001516040518263ffffffff1660e01b815260040161139a919061502b565b606060405180830381865af41580156113b5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113d99190615537565b509150915081841461140657846040015160405163089938b360e11b81526004016108bc91815260200190565b806001600160401b031683606001516001600160401b0316108061143f5750806001600160401b03168560a001516001600160401b0316115b1561146857604051632e19bc2d60e11b81526001600160401b03821660048201526024016108bc565b5f888152600787016020908152604091829020805460ff1916600290811782550180546001600160401b034216600160401b810267ffffffffffffffff60401b1990921691909117909155915191825285918a917f047059b465069b8b751836b41f9f1d83daff583d2238cc7fbb461437ec23a4f6910160405180910390a35050505050505050565b5f6114fa612849565b60030154611126906001600160401b03841661556c565b5f61151b82611eb8565b6080015192915050565b6107308383835f612ee9565b6111388484848461286d565b611545612aaa565b5f61154e612849565b5f848152600782016020526040808220815160e0810190925280549394509192909190829060ff16600381111561158757611587614d5f565b600381111561159857611598614d5f565b8152815461010090046001600160a01b03166020820152600182015460408201526002909101546001600160401b038082166060840152600160401b820481166080840152600160801b8204811660a0840152600160c01b9091041660c090910152905060038151600381111561161157611611614d5f565b14611632578051604051633b0d540d60e21b81526108bc919060040161551d565b60046116418260400151611eb8565b51600581111561165357611653614d5f565b14611752575f6116628461246b565b90505f8073__$fd0c147b4031eef6079b0498cbafa865f0$__6350782b0f84604001516040518263ffffffff1660e01b81526004016116a1919061502b565b606060405180830381865af41580156116bc573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116e09190615537565b50915091508184604001511461170c5760405163089938b360e11b8152600481018390526024016108bc565b806001600160401b03168460c001516001600160401b0316111561174e57604051632e19bc2d60e11b81526001600160401b03821660048201526024016108bc565b5050505b61175b84612f15565b505061177360015f80516020615b1683398151915255565b5050565b5f611780612849565b90506001600160a01b0382166117b45760405163caa903f960e01b81526001600160a01b03831660048201526024016108bc565b5f8381526006820160205260409020546001600160a01b031633146117fa57335b604051636e2ccd7560e11b81526001600160a01b0390911660048201526024016108bc565b5f928352600b01602052604090912080546001600160a01b0319166001600160a01b03909216919091179055565b5f611831612849565b90505f61183d83611eb8565b519050600481600581111561185457611854614d5f565b14611874578060405163170cc93360e21b81526004016108bc9190614ef1565b5f8381526006830160205260409020546001600160a01b0316331461189957336117d5565b5f838152600683016020526040902054610730906001600160a01b031684612e99565b6109bf848484846120f9565b5f80516020615ad68339815191525f8073__$fd0c147b4031eef6079b0498cbafa865f0$__63021de88f6118fb8661246b565b604001516040518263ffffffff1660e01b815260040161191b919061502b565b6040805180830381865af4158015611935573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906119599190615583565b915091508061197f57604051632d07135360e01b815281151560048201526024016108bc565b5f8281526004840160205260409020805461199990614ebf565b90505f036119bd5760405163089938b360e11b8152600481018390526024016108bc565b60015f838152600580860160205260409091205460ff16908111156119e4576119e4614d5f565b14611a17575f8281526005840160205260409081902054905163170cc93360e21b81526108bc9160ff1690600401614ef1565b5f8281526004840160205260408120611a2f91614a91565b5f828152600584016020908152604091829020805460ff1916600290811782550180546001600160401b0342818116600160c01b026001600160c01b0390931692909217928390558451600160801b9093041682529181019190915283917f8629ec2bfd8d3b792ba269096bb679e08f20ba2caec0785ef663cf94788e349b910160405180910390a250505050565b5f611ac7612aaa565b611ad38484843461310f565b9050611aeb60015f80516020615b1683398151915255565b9392505050565b5f611afb612849565b5f838152600782016020526040808220815160e0810190925280549394509192909190829060ff166003811115611b3457611b34614d5f565b6003811115611b4557611b45614d5f565b8152815461010090046001600160a01b0316602082015260018083015460408301526002909201546001600160401b038082166060840152600160401b820481166080840152600160801b8204811660a0840152600160c01b9091041660c09091015290915081516003811115611bbe57611bbe614d5f565b14158015611bdf5750600381516003811115611bdc57611bdc614d5f565b14155b15611c00578051604051633b0d540d60e21b81526108bc919060040161551d565b5f611c0e8260400151611eb8565b905080606001516001600160401b03165f03611c40576040516339b894f960e21b8152600481018590526024016108bc565b60408083015160608301516080840151925163854a893f60e01b81526005600160991b019363ee5b48eb9373__$fd0c147b4031eef6079b0498cbafa865f0$__9363854a893f93611cae93906004019283526001600160401b03918216602084015216604082015260600190565b5f60405180830381865af4158015611cc8573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052611cef9190810190614ffa565b6040518263ffffffff1660e01b8152600401611d0b919061502b565b6020604051808303815f875af1158015611d27573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611138919061503d565b5f8181527fe92546d698950ddd38910d2e15ed1d923cd0a7b3dde9e2a6a3f380565559cb046020526040902080545f80516020615ad68339815191529190611d9290614ebf565b90505f03611db65760405163089938b360e11b8152600481018390526024016108bc565b60015f838152600580840160205260409091205460ff1690811115611ddd57611ddd614d5f565b14611e10575f8281526005820160205260409081902054905163170cc93360e21b81526108bc9160ff1690600401614ef1565b5f8281526004808301602052604091829020915163ee5b48eb60e01b81526005600160991b019263ee5b48eb92611e4792016155a6565b6020604051808303815f875af1158015611e63573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610730919061503d565b5f611e90612aaa565b611e9b823334613284565b9050611eb360015f80516020615b1683398151915255565b919050565b611ec0614ac8565b5f8281525f80516020615af6833981519152602052604090819020815160e0810190925280545f80516020615ad6833981519152929190829060ff166005811115611f0d57611f0d614d5f565b6005811115611f1e57611f1e614d5f565b8152602001600182018054611f3290614ebf565b80601f0160208091040260200160405190810160405280929190818152602001828054611f5e90614ebf565b8015611fa95780601f10611f8057610100808354040283529160200191611fa9565b820191905f5260205f20905b815481529060010190602001808311611f8c57829003601f168201915b505050918352505060028201546001600160401b038082166020840152600160401b820481166040840152600160801b820481166060840152600160c01b9091048116608083015260039092015490911660a0909101529392505050565b6001600160a01b0381166120395760405163caa903f960e01b81526001600160a01b03821660048201526024016108bc565b5f612042612849565b5f8481526007820160205260409020549091506001600160a01b0361010090910416331461207057336117d5565b5f928352600901602052604090912080546001600160a01b0319166001600160a01b03909216919091179055565b6040515f905f80516020615ad6833981519152907fe92546d698950ddd38910d2e15ed1d923cd0a7b3dde9e2a6a3f380565559cb06906120e19086908690615630565b90815260200160405180910390205491505092915050565b61210584848484612136565b6109bf57604051631036cf9160e11b8152600481018590526024016108bc565b61212d6134c4565b61121a8161350f565b5f80612140612849565b5f878152600782016020526040808220815160e0810190925280549394509192909190829060ff16600381111561217957612179614d5f565b600381111561218a5761218a614d5f565b8152815461010090046001600160a01b0316602082015260018201546040808301919091526002909201546001600160401b038082166060840152600160401b820481166080840152600160801b8204811660a0840152600160c01b9091041660c0909101528101519091505f61220082611eb8565b905060028351600381111561221757612217614d5f565b14612238578251604051633b0d540d60e21b81526108bc919060040161551d565b60208301516001600160a01b031633146122d4575f8281526006850160205260409020546001600160a01b0316331461227157336117d5565b5f82815260068501602052604090205460a08201516122a091600160b01b90046001600160401b0316906152d2565b6001600160401b03164210156122d45760405163fb6ce63f60e01b81526001600160401b03421660048201526024016108bc565b6002815160058111156122e9576122e9614d5f565b0361240b576002840154608084015161230b916001600160401b0316906152d2565b6001600160401b031642101561233f5760405163fb6ce63f60e01b81526001600160401b03421660048201526024016108bc565b87156123515761234f82886125aa565b505b5f8981526007850160205260409020805460ff191660031790556060830151608082015161238a918491612385919061563f565b613589565b505f8a8152600786016020526040812060020180546001600160401b03909316600160c01b026001600160c01b03909316929092179091556123cd84888c613760565b9050828a7f366d336c0ab380dc799f095a6f82a26326585c52909cc698b09ba4540709ed5760405160405180910390a3151594506124639350505050565b60048151600581111561242057612420614d5f565b036124475761243083878b613760565b5061243a89612f15565b6001945050505050612463565b805160405163170cc93360e21b81526108bc9190600401614ef1565b949350505050565b60408051606080820183525f8083526020830152918101919091526040516306f8253560e41b815263ffffffff831660048201525f9081906005600160991b0190636f825350906024015f60405180830381865afa1580156124cf573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526124f6919081019061565f565b915091508061251857604051636b2f19e960e01b815260040160405180910390fd5b81511561253e578151604051636ba589a560e01b815260048101919091526024016108bc565b60208201516001600160a01b03161561257a576020820151604051624de75d60e31b81526001600160a01b0390911660048201526024016108bc565b5092915050565b5f8061258b612849565b5f938452600601602052505060409020546001600160a01b0316151590565b6040516306f8253560e41b815263ffffffff821660048201525f90819081906005600160991b0190636f825350906024015f60405180830381865afa1580156125f5573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405261261c919081019061565f565b915091508061263e57604051636b2f19e960e01b815260040160405180910390fd5b5f612647612849565b6005810154845191925014612675578251604051636ba589a560e01b815260048101919091526024016108bc565b60208301516001600160a01b0316156126b1576020830151604051624de75d60e31b81526001600160a01b0390911660048201526024016108bc565b60208301516001600160a01b0316156126ed576020830151604051624de75d60e31b81526001600160a01b0390911660048201526024016108bc565b5f8073__$fd0c147b4031eef6079b0498cbafa865f0$__63088c246386604001516040518263ffffffff1660e01b815260040161272a919061502b565b6040805180830381865af4158015612744573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061276891906156ef565b9150915081881461278f5760405163089938b360e11b8152600481018990526024016108bc565b5f8881526006840160205260409020600101546001600160401b039081169082161115612820575f888152600684016020908152604091829020600101805467ffffffffffffffff19166001600160401b038516908117909155915191825289917fec44148e8ff271f2d0bacef1142154abacb0abb3a29eb3eb50e2ca97e86d0435910160405180910390a261283e565b505f8781526006830160205260409020600101546001600160401b03165b979650505050505050565b7f4317713f7ecbdddd4bc99e95d903adedaa883b2e7c2551610bd13e2c7e473d0090565b5f80612877612849565b90505f6128838761394e565b905061288e87612581565b61289d57600192505050612463565b5f8781526006830160205260409020546001600160a01b031633146128c257336117d5565b5f87815260068301602052604090205460a08201516128f191600160b01b90046001600160401b0316906152d2565b6001600160401b03168160c001516001600160401b031610156129385760c081015160405163fb6ce63f60e01b81526001600160401b0390911660048201526024016108bc565b5f86156129505761294988876125aa565b905061296e565b505f8781526006830160205260409020600101546001600160401b03165b600483015460408301515f916001600160a01b031690634f22429f90612993906114f1565b60a086015160c087015160405160e085901b6001600160e01b031916815260048101939093526001600160401b03918216602484018190526044840152811660648301528516608482015260a401602060405180830381865afa1580156129fc573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612a20919061503d565b90506001600160a01b038616612a4c575f8981526006850160205260409020546001600160a01b031695505b5f898152600a8501602052604081208054839290612a6b908490615712565b90915550505f898152600b909401602052604090932080546001600160a01b0387166001600160a01b0319909116179055505015159050949350505050565b5f80516020615b16833981519152805460011901612adb57604051633ee5aeb560e01b815260040160405180910390fd5b60029055565b5f612aea614ac8565b5f80516020615ad68339815191525f8073__$fd0c147b4031eef6079b0498cbafa865f0$__63021de88f612b1d8861246b565b604001516040518263ffffffff1660e01b8152600401612b3d919061502b565b6040805180830381865af4158015612b57573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612b7b9190615583565b915091508015612ba257604051632d07135360e01b815281151560048201526024016108bc565b5f82815260058085016020526040808320815160e08101909252805491929091839160ff90911690811115612bd957612bd9614d5f565b6005811115612bea57612bea614d5f565b8152602001600182018054612bfe90614ebf565b80601f0160208091040260200160405190810160405280929190818152602001828054612c2a90614ebf565b8015612c755780601f10612c4c57610100808354040283529160200191612c75565b820191905f5260205f20905b815481529060010190602001808311612c5857829003601f168201915b505050918352505060028201546001600160401b038082166020840152600160401b820481166040840152600160801b820481166060840152600160c01b909104811660808301526003928301541660a09091015290915081516005811115612ce057612ce0614d5f565b14158015612d015750600181516005811115612cfe57612cfe614d5f565b14155b15612d2257805160405163170cc93360e21b81526108bc9190600401614ef1565b600381516005811115612d3757612d37614d5f565b03612d455760048152612d4a565b600581525b836006018160200151604051612d6091906151ae565b90815260408051602092819003830190205f90819055858152600587810190935220825181548493839160ff1916906001908490811115612da357612da3614d5f565b021790555060208201516001820190612dbc9082615203565b5060408201516002820180546060850151608086015160a08701516001600160401b039586166001600160801b031990941693909317600160401b92861692909202919091176001600160801b0316600160801b918516919091026001600160c01b031617600160c01b9184169190910217905560c0909201516003909101805467ffffffffffffffff19169190921617905580516005811115612e6257612e62614d5f565b60405184907f1c08e59656f1a18dc2da76826cdc52805c43e897a17c50faefb8ab3c1526cc16905f90a39196919550909350505050565b5f612ea2612849565b5f838152600a82016020526040812080549190559091506109bf8482613c33565b6117736001600160a01b03831682613c91565b60015f80516020615b1683398151915255565b612ef58484848461286d565b6109bf57604051635bff683f60e11b8152600481018590526024016108bc565b5f612f1e612849565b5f838152600782016020526040808220815160e0810190925280549394509192909190829060ff166003811115612f5757612f57614d5f565b6003811115612f6857612f68614d5f565b8152815461010090046001600160a01b0316602082015260018201546040808301919091526002909201546001600160401b038082166060840152600160401b820481166080840152600160801b8204811660a0840152600160c01b9091041660c0909101528101519091506130057fe92546d698950ddd38910d2e15ed1d923cd0a7b3dde9e2a6a3f380565559cb01546001600160401b031690565b826080015161301491906152d2565b6001600160401b03164210156130485760405163fb6ce63f60e01b81526001600160401b03421660048201526024016108bc565b5f848152600784016020908152604080832080546001600160a81b03191681556001810184905560020183905560098601909152902080546001600160a01b031981169091556001600160a01b0316806130a3575060208201515b5f806130b0838886613d24565b915091506130c985602001516111f987606001516114f1565b6040805183815260208101839052859189917f8ececf510070c320d9a55323ffabe350e294ae505fc0c509dc5736da6f5cc993910160405180910390a350505050505050565b5f80613119612849565b600281015490915061ffff600160401b90910481169086161080613142575061271061ffff8616115b1561316657604051635f12e6c360e11b815261ffff861660048201526024016108bc565b60028101546001600160401b0390811690851610156131a2576040516202a06d60e11b81526001600160401b03851660048201526024016108bc565b80548310806131b45750806001015483115b156131d55760405163222d164360e21b8152600481018490526024016108bc565b825f6131e0826110d8565b90505f6131ed8983613dd1565b5f818152600686016020908152604080832080546001600160401b039c909c16600160b01b0267ffffffffffffffff60b01b1961ffff9e909e16600160a01b02336001600160b01b0319909e168e17179d909d169c909c178c556001909b01805467ffffffffffffffff19169055600b9096019095529790932080546001600160a01b031916909617909555509395945050505050565b5f8061328e612849565b90505f61329a846110d8565b90505f6132a687611eb8565b90506132b187612581565b6132d1576040516330efa98b60e01b8152600481018890526024016108bc565b6002815160058111156132e6576132e6614d5f565b1461330757805160405163170cc93360e21b81526108bc9190600401614ef1565b5f82826080015161331891906152d2565b905083600201600a9054906101000a90046001600160401b031682604001516133419190615314565b6001600160401b0316816001600160401b0316111561337e57604051636d51fe0560e11b81526001600160401b03821660048201526024016108bc565b5f8061338a8a84613589565b915091505f8a836040516020016133b892919091825260c01b6001600160c01b031916602082015260280190565b60408051601f1981840301815291815281516020928301205f81815260078b019093529120805491925060019160ff1916828002179055505f8181526007880160209081526040918290208054610100600160a81b0319166101006001600160a01b038f16908102919091178255600182018f9055600290910180546001600160401b038b81166001600160c01b03199092168217600160801b8a8316908102919091176001600160c01b031690935585519283528916938201939093529283019190915260608201849052908c9083907fb0024b263bc3a0b728a6edea50a69efa841189f8d32ee8af9d1c2b1a1a2234269060800160405180910390a49a9950505050505050505050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054600160401b900460ff1661350d57604051631afcd79f60e31b815260040160405180910390fd5b565b6135176134c4565b61352081614343565b61352861435c565b61121a6060820135608083013561354560c0850160a08601614ca4565b61355560e0860160c08701615725565b613566610100870160e0880161573e565b61010087013561357e61014089016101208a01615054565b88610140013561436c565b5f8281525f80516020615af6833981519152602052604081206002015481905f80516020615ad683398151915290600160801b90046001600160401b03166135d18582614551565b5f6135db876147bb565b5f888152600585016020526040808220600201805467ffffffffffffffff60801b1916600160801b6001600160401b038c811691820292909217909255915163854a893f60e01b8152600481018c905291841660248301526044820152919250906005600160991b019063ee5b48eb9073__$fd0c147b4031eef6079b0498cbafa865f0$__9063854a893f906064015f60405180830381865af4158015613684573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526136ab9190810190614ffa565b6040518263ffffffff1660e01b81526004016136c7919061502b565b6020604051808303815f875af11580156136e3573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613707919061503d565b604080516001600160401b038a811682526020820184905282519394508516928b927f07de5ff35a674a8005e661f3333c907ca6333462808762d19dc7b3abb1a8c1df928290030190a3909450925050505b9250929050565b5f8061376a612849565b90505f61377a8660400151611eb8565b90505f60038251600581111561379257613792614d5f565b14806137b057506004825160058111156137ae576137ae614d5f565b145b156137c0575060c08101516137fd565b6002825160058111156137d5576137d5614d5f565b036137e15750426137fd565b815160405163170cc93360e21b81526108bc9190600401614ef1565b86608001516001600160401b0316816001600160401b031611613825575f9350505050611aeb565b600483015460608801515f916001600160a01b031690634f22429f9061384a906114f1565b60a086015160808c01516040808e01515f90815260068b0160205281902060010154905160e086901b6001600160e01b031916815260048101949094526001600160401b0392831660248501529082166044840152818716606484015216608482015260a401602060405180830381865afa1580156138cb573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906138ef919061503d565b90506001600160a01b03871661390757876020015196505b5f8681526008850160209081526040808320849055600990960190529390932080546001600160a01b0388166001600160a01b031990911617905550909150509392505050565b613956614ac8565b5f8281525f80516020615af68339815191526020526040808220815160e0810190925280545f80516020615ad683398151915293929190829060ff1660058111156139a3576139a3614d5f565b60058111156139b4576139b4614d5f565b81526020016001820180546139c890614ebf565b80601f01602080910402602001604051908101604052809291908181526020018280546139f490614ebf565b8015613a3f5780601f10613a1657610100808354040283529160200191613a3f565b820191905f5260205f20905b815481529060010190602001808311613a2257829003601f168201915b50505091835250506002828101546001600160401b038082166020850152600160401b820481166040850152600160801b820481166060850152600160c01b9091048116608084015260039093015490921660a09091015290915081516005811115613aad57613aad614d5f565b14613ae0575f8481526005830160205260409081902054905163170cc93360e21b81526108bc9160ff1690600401614ef1565b60038152426001600160401b031660c08201525f84815260058381016020526040909120825181548493839160ff1916906001908490811115613b2557613b25614d5f565b021790555060208201516001820190613b3e9082615203565b5060408201516002820180546060850151608086015160a08701516001600160401b039586166001600160801b031990941693909317600160401b92861692909202919091176001600160801b0316600160801b918516919091026001600160c01b031617600160c01b9184169190910217905560c0909201516003909101805467ffffffffffffffff1916919092161790555f613bdc8582613589565b6080840151604080516001600160401b03909216825242602083015291935083925087917ffbfc4c00cddda774e9bce93712e29d12887b46526858a1afb0937cce8c30fa42910160405180910390a3509392505050565b6040516327ad555d60e11b81526001600160a01b0383166004820152602481018290526001600160991b0190634f5aaaba906044015f604051808303815f87803b158015613c7f575f80fd5b505af115801561134d573d5f803e3d5ffd5b80471015613cb45760405163cd78605960e01b81523060048201526024016108bc565b5f826001600160a01b0316826040515f6040518083038185875af1925050503d805f8114613cfd576040519150601f19603f3d011682016040523d82523d5f602084013e613d02565b606091505b505090508061073057604051630a12f52160e11b815260040160405180910390fd5b5f805f613d2f612849565b5f86815260088201602052604081208054908290559192509081908015613dc3575f87815260068501602052604090205461271090613d7990600160a01b900461ffff168361556c565b613d8391906154fe565b91508184600a015f8981526020019081526020015f205f828254613da79190615712565b90915550613db79050828261575e565b9250613dc38984613c33565b509097909650945050505050565b7fe92546d698950ddd38910d2e15ed1d923cd0a7b3dde9e2a6a3f380565559cb07545f9060ff16613e1557604051637fab81e560e01b815260040160405180910390fd5b5f80516020615ad683398151915242613e346060860160408701614ca4565b6001600160401b0316111580613e6e5750613e526202a30042615712565b613e626060860160408701614ca4565b6001600160401b031610155b15613ea857613e836060850160408601614ca4565b604051635879da1360e11b81526001600160401b0390911660048201526024016108bc565b60038101546001600160401b0390613ecb90600160401b90048216858316615712565b1115613ef557604051633e1a785160e01b81526001600160401b03841660048201526024016108bc565b613f0a613f056060860186615771565b614830565b613f1a613f056080860186615771565b6030613f296020860186615785565b905014613f5b57613f3d6020850185615785565b6040516326475b2f60e11b81526108bc925060040190815260200190565b613f658480615785565b90505f03613f9257613f778480615785565b604051633e08a12560e11b81526004016108bc9291906157c7565b5f60068201613fa18680615785565b604051613faf929190615630565b90815260200160405180910390205414613fe857613fcd8480615785565b60405163a41f772f60e01b81526004016108bc9291906157c7565b613ff2835f614551565b6040805160e08101909152815481525f90819073__$fd0c147b4031eef6079b0498cbafa865f0$__9063eb97ce51906020810161402f8a80615785565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250505090825250602090810190614077908b018b615785565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152505050908252506020016140c060608b0160408c01614ca4565b6001600160401b031681526020016140db60608b018b615771565b6140e4906157da565b81526020016140f660808b018b615771565b6140ff906157da565b8152602001886001600160401b03168152506040518263ffffffff1660e01b815260040161412d9190615907565b5f60405180830381865af4158015614147573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405261416e91908101906159be565b5f8281526004860160205260409020919350915061418c8282615203565b50816006840161419c8880615785565b6040516141aa929190615630565b9081526040519081900360200181209190915563ee5b48eb60e01b81525f906005600160991b019063ee5b48eb906141e690859060040161502b565b6020604051808303815f875af1158015614202573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190614226919061503d565b5f8481526005860160205260409020805460ff19166001179055905061424c8780615785565b5f85815260058701602052604090206001019161426a919083615a01565b505f83815260058501602052604090206002810180546001600160c01b0319166001600160401b038916908117600160801b91909102176001600160c01b03169055600301805467ffffffffffffffff19169055806142c98880615785565b6040516142d7929190615630565b6040518091039020847fd8a184af94a03e121609cc5f803a446236793e920c7945abc6ba355c8a30cb49898b60400160208101906143159190614ca4565b604080516001600160401b0393841681529290911660208301520160405180910390a4509095945050505050565b61434b6134c4565b614353614999565b61121a816149a1565b6143646134c4565b61350d614a89565b6143746134c4565b5f61437d612849565b905061ffff86161580614395575061271061ffff8716115b156143b957604051635f12e6c360e11b815261ffff871660048201526024016108bc565b878911156143dd5760405163222d164360e21b8152600481018a90526024016108bc565b60ff851615806143f05750600a60ff8616115b156144135760405163170db35960e31b815260ff861660048201526024016108bc565b7fe92546d698950ddd38910d2e15ed1d923cd0a7b3dde9e2a6a3f380565559cb01546001600160401b03166001600160401b0316876001600160401b0316101561447a576040516202a06d60e11b81526001600160401b03881660048201526024016108bc565b835f0361449a5760405163a733007160e01b815260040160405180910390fd5b816144bb57604051632f6bd1db60e01b8152600481018390526024016108bc565b97885560018801969096556002870180546001600160401b039690961669ffffffffffffffffffff1990961695909517600160401b61ffff95909516949094029390931767ffffffffffffffff60501b191660ff92909216600160501b029190911790925560038401919091556004830180546001600160a01b0319166001600160a01b03909216919091179055600590910155565b5f80516020615ad68339815191525f6001600160401b0380841690851611156145855761457e838561563f565b9050614592565b61458f848461563f565b90505b60408051608081018252600284015480825260038501546001600160401b038082166020850152600160401b8204811694840194909452600160801b90049092166060820152429115806145ff5750600184015481516145fb916001600160401b031690615712565b8210155b15614627576001600160401b0380841660608301528282526040820151166020820152614646565b828160600181815161463991906152d2565b6001600160401b03169052505b6060810151614656906064615314565b602082015160018601546001600160401b0392909216916146819190600160401b900460ff16615314565b6001600160401b031610156146ba57606081015160405163dfae880160e01b81526001600160401b0390911660048201526024016108bc565b85816040018181516146cc91906152d2565b6001600160401b03169052506040810180518691906146ec90839061563f565b6001600160401b03169052506001840154604082015160649161471a91600160401b90910460ff1690615314565b6001600160401b03161015614753576040808201519051633e1a785160e01b81526001600160401b0390911660048201526024016108bc565b8051600285015560208101516003909401805460408301516060909301516001600160401b03908116600160801b0267ffffffffffffffff60801b19948216600160401b026001600160801b0319909316919097161717919091169390931790925550505050565b5f8181525f80516020615af68339815191526020526040812060020180545f80516020615ad6833981519152919060089061480590600160401b90046001600160401b0316615aba565b91906101000a8154816001600160401b0302191690836001600160401b031602179055915050919050565b61483d6020820182614c77565b63ffffffff1615801561485d5750614858602082018261506f565b151590505b156148a45761486f6020820182614c77565b61487c602083018361506f565b60405163c08a0f1d60e01b815263ffffffff90931660048401526024830152506044016108bc565b6148b1602082018261506f565b90506148c06020830183614c77565b63ffffffff1611156148d95761486f6020820182614c77565b60015b6148e9602083018361506f565b9050811015611773576148ff602083018361506f565b61490a60018461575e565b818110614919576149196150b4565b905060200201602081019061492e9190615054565b6001600160a01b0316614944602084018461506f565b83818110614954576149546150b4565b90506020020160208101906149699190615054565b6001600160a01b0316101561499157604051630dbc8d5f60e31b815260040160405180910390fd5b6001016148dc565b61350d6134c4565b6149a96134c4565b80355f80516020615ad683398151915290815560146149ce606084016040850161573e565b60ff1611806149ed57506149e8606083016040840161573e565b60ff16155b15614a2157614a02606083016040840161573e565b604051634a59bbff60e11b815260ff90911660048201526024016108bc565b614a31606083016040840161573e565b60018201805460ff92909216600160401b0260ff60401b19909216919091179055614a626040830160208401614ca4565b600191909101805467ffffffffffffffff19166001600160401b0390921691909117905550565b612ed66134c4565b508054614a9d90614ebf565b5f825580601f10614aac575050565b601f0160209004905f5260205f209081019061121a9190614b05565b6040805160e08101909152805f81526060602082018190525f604083018190529082018190526080820181905260a0820181905260c09091015290565b5b80821115614b19575f8155600101614b06565b5090565b801515811461121a575f80fd5b803563ffffffff81168114611eb3575f80fd5b5f805f60608486031215614b4f575f80fd5b833592506020840135614b6181614b1d565b9150614b6f60408501614b2a565b90509250925092565b5f60208284031215614b88575f80fd5b5035919050565b5f6101608284031215614ba0575f80fd5b50919050565b5f8060408385031215614bb7575f80fd5b82356001600160401b03811115614bcc575f80fd5b830160808186031215614bdd575f80fd5b9150614beb60208401614b2a565b90509250929050565b5f8060408385031215614c05575f80fd5b82359150614beb60208401614b2a565b6001600160a01b038116811461121a575f80fd5b5f805f8060808587031215614c3c575f80fd5b843593506020850135614c4e81614b1d565b9250614c5c60408601614b2a565b91506060850135614c6c81614c15565b939692955090935050565b5f60208284031215614c87575f80fd5b611aeb82614b2a565b6001600160401b038116811461121a575f80fd5b5f60208284031215614cb4575f80fd5b8135611aeb81614c90565b5f8060408385031215614cd0575f80fd5b823591506020830135614ce281614c15565b809150509250929050565b803561ffff81168114611eb3575f80fd5b5f805f60608486031215614d10575f80fd5b83356001600160401b03811115614d25575f80fd5b840160a08187031215614d36575f80fd5b9250614d4460208501614ced565b91506040840135614d5481614c90565b809150509250925092565b634e487b7160e01b5f52602160045260245ffd5b60068110614d8357614d83614d5f565b9052565b5f5b83811015614da1578181015183820152602001614d89565b50505f910152565b5f8151808452614dc0816020860160208601614d87565b601f01601f19169290920160200192915050565b60208152614de6602082018351614d73565b5f602083015160e06040840152614e01610100840182614da9565b905060408401516001600160401b0380821660608601528060608701511660808601528060808701511660a08601528060a08701511660c08601528060c08701511660e086015250508091505092915050565b5f8060208385031215614e65575f80fd5b82356001600160401b0380821115614e7b575f80fd5b818501915085601f830112614e8e575f80fd5b813581811115614e9c575f80fd5b866020828501011115614ead575f80fd5b60209290920196919550909350505050565b600181811c90821680614ed357607f821691505b602082108103614ba057634e487b7160e01b5f52602260045260245ffd5b602081016111268284614d73565b634e487b7160e01b5f52604160045260245ffd5b604051606081016001600160401b0381118282101715614f3557614f35614eff565b60405290565b604080519081016001600160401b0381118282101715614f3557614f35614eff565b604051601f8201601f191681016001600160401b0381118282101715614f8557614f85614eff565b604052919050565b5f6001600160401b03821115614fa557614fa5614eff565b50601f01601f191660200190565b5f82601f830112614fc2575f80fd5b8151614fd5614fd082614f8d565b614f5d565b818152846020838601011115614fe9575f80fd5b612463826020830160208701614d87565b5f6020828403121561500a575f80fd5b81516001600160401b0381111561501f575f80fd5b61246384828501614fb3565b602081525f611aeb6020830184614da9565b5f6020828403121561504d575f80fd5b5051919050565b5f60208284031215615064575f80fd5b8135611aeb81614c15565b5f808335601e19843603018112615084575f80fd5b8301803591506001600160401b0382111561509d575f80fd5b6020019150600581901b3603821315613759575f80fd5b634e487b7160e01b5f52603260045260245ffd5b5f8235605e198336030181126150dc575f80fd5b9190910192915050565b5f82601f8301126150f5575f80fd5b8135615103614fd082614f8d565b818152846020838601011115615117575f80fd5b816020850160208301375f918101602001919091529392505050565b5f60608236031215615143575f80fd5b61514b614f13565b82356001600160401b0380821115615161575f80fd5b61516d368387016150e6565b83526020850135915080821115615182575f80fd5b5061518f368286016150e6565b60208301525060408301356151a381614c90565b604082015292915050565b5f82516150dc818460208701614d87565b601f82111561073057805f5260205f20601f840160051c810160208510156151e45750805b601f840160051c820191505b81811015611138575f81556001016151f0565b81516001600160401b0381111561521c5761521c614eff565b6152308161522a8454614ebf565b846151bf565b602080601f831160018114615263575f841561524c5750858301515b5f19600386901b1c1916600185901b17855561134d565b5f85815260208120601f198616915b8281101561529157888601518255948401946001909101908401615272565b50858210156152ae57878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b5f52601160045260245ffd5b6001600160401b0381811683821601908082111561257a5761257a6152be565b5f63ffffffff80831681810361530a5761530a6152be565b6001019392505050565b6001600160401b03818116838216028082169190828114615337576153376152be565b505092915050565b5f808335601e19843603018112615354575f80fd5b83016020810192503590506001600160401b03811115615372575f80fd5b803603821315613759575f80fd5b81835281816020850137505f828201602090810191909152601f909101601f19169091010190565b5f8383855260208086019550808560051b830101845f5b8781101561545d57848303601f19018952813536889003605e190181126153e4575f80fd5b870160606153f2828061533f565b8287526154028388018284615380565b925050506154128683018361533f565b86830388880152615424838284615380565b92505050604080830135925061543983614c90565b6001600160401b0392909216949091019390935297830197908301906001016153bf565b5090979650505050505050565b6020815281356020820152602082013560408201525f604083013561548e81614c15565b6001600160a01b031660608381019190915283013536849003601e190181126154b5575f80fd5b83016020810190356001600160401b038111156154d0575f80fd5b8060051b36038213156154e1575f80fd5b6080808501526154f560a0850182846153a8565b95945050505050565b5f8261551857634e487b7160e01b5f52601260045260245ffd5b500490565b602081016004831061553157615531614d5f565b91905290565b5f805f60608486031215615549575f80fd5b83519250602084015161555b81614c90565b6040850151909250614d5481614c90565b8082028115828204841417611126576111266152be565b5f8060408385031215615594575f80fd5b825191506020830151614ce281614b1d565b5f60208083525f84546155b881614ebf565b806020870152604060018084165f81146155d957600181146155f557615622565b60ff19851660408a0152604084151560051b8a01019550615622565b895f5260205f205f5b858110156156195781548b82018601529083019088016155fe565b8a016040019650505b509398975050505050505050565b818382375f9101908152919050565b6001600160401b0382811682821603908082111561257a5761257a6152be565b5f8060408385031215615670575f80fd5b82516001600160401b0380821115615686575f80fd5b9084019060608287031215615699575f80fd5b6156a1614f13565b8251815260208301516156b381614c15565b60208201526040830151828111156156c9575f80fd5b6156d588828601614fb3565b6040830152508094505050506020830151614ce281614b1d565b5f8060408385031215615700575f80fd5b825191506020830151614ce281614c90565b80820180821115611126576111266152be565b5f60208284031215615735575f80fd5b611aeb82614ced565b5f6020828403121561574e575f80fd5b813560ff81168114611aeb575f80fd5b81810381811115611126576111266152be565b5f8235603e198336030181126150dc575f80fd5b5f808335601e1984360301811261579a575f80fd5b8301803591506001600160401b038211156157b3575f80fd5b602001915036819003821315613759575f80fd5b602081525f612463602083018486615380565b5f604082360312156157ea575f80fd5b6157f2614f3b565b6157fb83614b2a565b81526020808401356001600160401b0380821115615817575f80fd5b9085019036601f830112615829575f80fd5b81358181111561583b5761583b614eff565b8060051b915061584c848301614f5d565b8181529183018401918481019036841115615865575f80fd5b938501935b8385101561588f578435925061587f83614c15565b828252938501939085019061586a565b94860194909452509295945050505050565b5f6040830163ffffffff8351168452602080840151604060208701528281518085526060880191506020830194505f92505b808310156158fc5784516001600160a01b031682529383019360019290920191908301906158d3565b509695505050505050565b60208152815160208201525f602083015160e0604084015261592d610100840182614da9565b90506040840151601f198085840301606086015261594b8383614da9565b92506001600160401b03606087015116608086015260808601519150808584030160a086015261597b83836158a1565b925060a08601519150808584030160c08601525061599982826158a1565b91505060c08401516159b660e08501826001600160401b03169052565b509392505050565b5f80604083850312156159cf575f80fd5b8251915060208301516001600160401b038111156159eb575f80fd5b6159f785828601614fb3565b9150509250929050565b6001600160401b03831115615a1857615a18614eff565b615a2c83615a268354614ebf565b836151bf565b5f601f841160018114615a5d575f8515615a465750838201355b5f19600387901b1c1916600186901b178355611138565b5f83815260208120601f198716915b82811015615a8c5786850135825560209485019460019092019101615a6c565b5086821015615aa8575f1960f88860031b161c19848701351681555b505060018560011b0183555050505050565b5f6001600160401b0380831681810361530a5761530a6152be56fee92546d698950ddd38910d2e15ed1d923cd0a7b3dde9e2a6a3f380565559cb00e92546d698950ddd38910d2e15ed1d923cd0a7b3dde9e2a6a3f380565559cb059b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00a264697066735822122021df0224982cc11df0f1abc9ae6992e31b60f4fb2ff8bf0adc7d7ad0c074388564736f6c63430008190033", + ABI: "[{\"inputs\":[{\"internalType\":\"enumICMInitializable\",\"name\":\"init\",\"type\":\"uint8\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"AddressInsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"delegationID\",\"type\":\"bytes32\"}],\"name\":\"DelegatorIneligibleForRewards\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedInnerCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"}],\"name\":\"InvalidBLSKeyLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"encodedConversionID\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"expectedConversionID\",\"type\":\"bytes32\"}],\"name\":\"InvalidConversionID\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"delegationFeeBips\",\"type\":\"uint16\"}],\"name\":\"InvalidDelegationFee\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"delegationID\",\"type\":\"bytes32\"}],\"name\":\"InvalidDelegationID\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"enumDelegatorStatus\",\"name\":\"status\",\"type\":\"uint8\"}],\"name\":\"InvalidDelegatorStatus\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitializationStatus\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"maximumChurnPercentage\",\"type\":\"uint8\"}],\"name\":\"InvalidMaximumChurnPercentage\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"minStakeDuration\",\"type\":\"uint64\"}],\"name\":\"InvalidMinStakeDuration\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"nodeID\",\"type\":\"bytes\"}],\"name\":\"InvalidNodeID\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"name\":\"InvalidNonce\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"threshold\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"addressesLength\",\"type\":\"uint256\"}],\"name\":\"InvalidPChainOwnerThreshold\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"registrationExpiry\",\"type\":\"uint64\"}],\"name\":\"InvalidRegistrationExpiry\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"rewardRecipient\",\"type\":\"address\"}],\"name\":\"InvalidRewardRecipient\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"stakeAmount\",\"type\":\"uint256\"}],\"name\":\"InvalidStakeAmount\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"maximumStakeMultiplier\",\"type\":\"uint8\"}],\"name\":\"InvalidStakeMultiplier\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"weight\",\"type\":\"uint64\"}],\"name\":\"InvalidTotalWeight\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"uptimeBlockchainID\",\"type\":\"bytes32\"}],\"name\":\"InvalidUptimeBlockchainID\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"}],\"name\":\"InvalidValidationID\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"validatorManagerAddress\",\"type\":\"address\"}],\"name\":\"InvalidValidatorManagerAddress\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"blockchainID\",\"type\":\"bytes32\"}],\"name\":\"InvalidValidatorManagerBlockchainID\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"enumValidatorStatus\",\"name\":\"status\",\"type\":\"uint8\"}],\"name\":\"InvalidValidatorStatus\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidWarpMessage\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"senderAddress\",\"type\":\"address\"}],\"name\":\"InvalidWarpOriginSenderAddress\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"sourceChainID\",\"type\":\"bytes32\"}],\"name\":\"InvalidWarpSourceChainID\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"churnAmount\",\"type\":\"uint64\"}],\"name\":\"MaxChurnRateExceeded\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"newValidatorWeight\",\"type\":\"uint64\"}],\"name\":\"MaxWeightExceeded\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"endTime\",\"type\":\"uint64\"}],\"name\":\"MinStakeDurationNotPassed\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"nodeID\",\"type\":\"bytes\"}],\"name\":\"NodeAlreadyRegistered\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"PChainOwnerAddressesNotSorted\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ReentrancyGuardReentrantCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"UnauthorizedOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"validRegistration\",\"type\":\"bool\"}],\"name\":\"UnexpectedRegistrationStatus\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"}],\"name\":\"ValidatorIneligibleForRewards\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"}],\"name\":\"ValidatorNotPoS\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZeroWeightToValueFactor\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"delegationID\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"rewards\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"fees\",\"type\":\"uint256\"}],\"name\":\"DelegationEnded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"delegationID\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"delegatorAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"validatorWeight\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"delegatorWeight\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"setWeightMessageID\",\"type\":\"bytes32\"}],\"name\":\"DelegatorAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"delegationID\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"startTime\",\"type\":\"uint256\"}],\"name\":\"DelegatorRegistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"delegationID\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"}],\"name\":\"DelegatorRemovalInitialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes\",\"name\":\"nodeID\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"weight\",\"type\":\"uint64\"}],\"name\":\"InitialValidatorCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"uptime\",\"type\":\"uint64\"}],\"name\":\"UptimeUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes\",\"name\":\"nodeID\",\"type\":\"bytes\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"registerValidationMessageID\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"weight\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"registrationExpiry\",\"type\":\"uint64\"}],\"name\":\"ValidationPeriodCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"enumValidatorStatus\",\"name\":\"status\",\"type\":\"uint8\"}],\"name\":\"ValidationPeriodEnded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"weight\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"name\":\"ValidationPeriodRegistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"setWeightMessageID\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"weight\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"endTime\",\"type\":\"uint256\"}],\"name\":\"ValidatorRemovalInitialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"weight\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"setWeightMessageID\",\"type\":\"bytes32\"}],\"name\":\"ValidatorWeightUpdate\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"ADDRESS_LENGTH\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"BIPS_CONVERSION_FACTOR\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"BLS_PUBLIC_KEY_LENGTH\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MAXIMUM_CHURN_PERCENTAGE_LIMIT\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MAXIMUM_DELEGATION_FEE_BIPS\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MAXIMUM_REGISTRATION_EXPIRY_LENGTH\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MAXIMUM_STAKE_MULTIPLIER_LIMIT\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"NATIVE_MINTER\",\"outputs\":[{\"internalType\":\"contractINativeMinter\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"POS_VALIDATOR_MANAGER_STORAGE_LOCATION\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"P_CHAIN_BLOCKCHAIN_ID\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"VALIDATOR_MANAGER_STORAGE_LOCATION\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"WARP_MESSENGER\",\"outputs\":[{\"internalType\":\"contractIWarpMessenger\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"delegationID\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"rewardRecipient\",\"type\":\"address\"}],\"name\":\"changeDelegatorRewardRecipient\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"rewardRecipient\",\"type\":\"address\"}],\"name\":\"changeValidatorRewardRecipient\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"}],\"name\":\"claimDelegationFees\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"delegationID\",\"type\":\"bytes32\"},{\"internalType\":\"uint32\",\"name\":\"messageIndex\",\"type\":\"uint32\"}],\"name\":\"completeDelegatorRegistration\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"delegationID\",\"type\":\"bytes32\"},{\"internalType\":\"uint32\",\"name\":\"messageIndex\",\"type\":\"uint32\"}],\"name\":\"completeEndDelegation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"messageIndex\",\"type\":\"uint32\"}],\"name\":\"completeEndValidation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"messageIndex\",\"type\":\"uint32\"}],\"name\":\"completeValidatorRegistration\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"delegationID\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"includeUptimeProof\",\"type\":\"bool\"},{\"internalType\":\"uint32\",\"name\":\"messageIndex\",\"type\":\"uint32\"}],\"name\":\"forceInitializeEndDelegation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"delegationID\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"includeUptimeProof\",\"type\":\"bool\"},{\"internalType\":\"uint32\",\"name\":\"messageIndex\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"rewardRecipient\",\"type\":\"address\"}],\"name\":\"forceInitializeEndDelegation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"includeUptimeProof\",\"type\":\"bool\"},{\"internalType\":\"uint32\",\"name\":\"messageIndex\",\"type\":\"uint32\"}],\"name\":\"forceInitializeEndValidation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"includeUptimeProof\",\"type\":\"bool\"},{\"internalType\":\"uint32\",\"name\":\"messageIndex\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"rewardRecipient\",\"type\":\"address\"}],\"name\":\"forceInitializeEndValidation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"}],\"name\":\"getValidator\",\"outputs\":[{\"components\":[{\"internalType\":\"enumValidatorStatus\",\"name\":\"status\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"nodeID\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"startingWeight\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"messageNonce\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"weight\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"startedAt\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"endedAt\",\"type\":\"uint64\"}],\"internalType\":\"structValidator\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"l1ID\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"churnPeriodSeconds\",\"type\":\"uint64\"},{\"internalType\":\"uint8\",\"name\":\"maximumChurnPercentage\",\"type\":\"uint8\"}],\"internalType\":\"structValidatorManagerSettings\",\"name\":\"baseSettings\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"minimumStakeAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maximumStakeAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"minimumStakeDuration\",\"type\":\"uint64\"},{\"internalType\":\"uint16\",\"name\":\"minimumDelegationFeeBips\",\"type\":\"uint16\"},{\"internalType\":\"uint8\",\"name\":\"maximumStakeMultiplier\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"weightToValueFactor\",\"type\":\"uint256\"},{\"internalType\":\"contractIRewardCalculator\",\"name\":\"rewardCalculator\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"uptimeBlockchainID\",\"type\":\"bytes32\"}],\"internalType\":\"structPoSValidatorManagerSettings\",\"name\":\"settings\",\"type\":\"tuple\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"}],\"name\":\"initializeDelegatorRegistration\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"delegationID\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"includeUptimeProof\",\"type\":\"bool\"},{\"internalType\":\"uint32\",\"name\":\"messageIndex\",\"type\":\"uint32\"}],\"name\":\"initializeEndDelegation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"delegationID\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"includeUptimeProof\",\"type\":\"bool\"},{\"internalType\":\"uint32\",\"name\":\"messageIndex\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"rewardRecipient\",\"type\":\"address\"}],\"name\":\"initializeEndDelegation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"includeUptimeProof\",\"type\":\"bool\"},{\"internalType\":\"uint32\",\"name\":\"messageIndex\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"rewardRecipient\",\"type\":\"address\"}],\"name\":\"initializeEndValidation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"includeUptimeProof\",\"type\":\"bool\"},{\"internalType\":\"uint32\",\"name\":\"messageIndex\",\"type\":\"uint32\"}],\"name\":\"initializeEndValidation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"nodeID\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"blsPublicKey\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"registrationExpiry\",\"type\":\"uint64\"},{\"components\":[{\"internalType\":\"uint32\",\"name\":\"threshold\",\"type\":\"uint32\"},{\"internalType\":\"address[]\",\"name\":\"addresses\",\"type\":\"address[]\"}],\"internalType\":\"structPChainOwner\",\"name\":\"remainingBalanceOwner\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint32\",\"name\":\"threshold\",\"type\":\"uint32\"},{\"internalType\":\"address[]\",\"name\":\"addresses\",\"type\":\"address[]\"}],\"internalType\":\"structPChainOwner\",\"name\":\"disableOwner\",\"type\":\"tuple\"}],\"internalType\":\"structValidatorRegistrationInput\",\"name\":\"registrationInput\",\"type\":\"tuple\"},{\"internalType\":\"uint16\",\"name\":\"delegationFeeBips\",\"type\":\"uint16\"},{\"internalType\":\"uint64\",\"name\":\"minStakeDuration\",\"type\":\"uint64\"}],\"name\":\"initializeValidatorRegistration\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"l1ID\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"validatorManagerBlockchainID\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"validatorManagerAddress\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"bytes\",\"name\":\"nodeID\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"blsPublicKey\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"weight\",\"type\":\"uint64\"}],\"internalType\":\"structInitialValidator[]\",\"name\":\"initialValidators\",\"type\":\"tuple[]\"}],\"internalType\":\"structConversionData\",\"name\":\"conversionData\",\"type\":\"tuple\"},{\"internalType\":\"uint32\",\"name\":\"messageIndex\",\"type\":\"uint32\"}],\"name\":\"initializeValidatorSet\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"nodeID\",\"type\":\"bytes\"}],\"name\":\"registeredValidators\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"}],\"name\":\"resendEndValidatorMessage\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"}],\"name\":\"resendRegisterValidatorMessage\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"delegationID\",\"type\":\"bytes32\"}],\"name\":\"resendUpdateDelegation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"internalType\":\"uint32\",\"name\":\"messageIndex\",\"type\":\"uint32\"}],\"name\":\"submitUptimeProof\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"valueToWeight\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"weight\",\"type\":\"uint64\"}],\"name\":\"weightToValue\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}]", + Bin: "0x608060405234801561000f575f80fd5b50604051615c7a380380615c7a83398101604081905261002e91610107565b60018160018111156100425761004261012c565b0361004f5761004f610055565b50610140565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff16156100a55760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b03908116146101045780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b5f60208284031215610117575f80fd5b815160028110610125575f80fd5b9392505050565b634e487b7160e01b5f52602160045260245ffd5b615b2d8061014d5f395ff3fe608060405260043610610228575f3560e01c80637d8d2f7711610129578063b771b3bc116100a8578063c974d1b61161006d578063c974d1b614610666578063d5f20ff61461067a578063df93d8de146106a6578063fb8b11dd146106bc578063fd7ac5e7146106db575f80fd5b8063b771b3bc146105db578063ba3a4b97146105f5578063bc5fbfec14610614578063bee0a03f14610634578063c599e24f14610653575f80fd5b80639ae06447116100ee5780639ae0644714610557578063a3a65e4814610576578063a9778a7a1461037c578063af2f5feb14610595578063afb98096146105a8575f80fd5b80637d8d2f77146104c757806380dd672f146104e65780638280a25a146105055780638ef34c981461051957806393e2459814610538575f80fd5b806335455ded116101b557806360305d621161017a57806360305d621461042057806360ad7784146104495780636206585614610468578063732214f81461049557806376f78621146104a8575f80fd5b806335455ded1461037c57806337b9be8f146103a45780633a1cfff6146103c3578063467ef06f146103e25780635dd6a6cb14610401575f80fd5b80631ec44724116101fb5780631ec44724146102b657806320d91b7a146102d557806325e1c776146102f45780632e2194d814610313578063329c3e121461034a575f80fd5b80630118acc41461022c5780630322ed981461024d5780630ba512d11461026c578063151d30d11461028b575b5f80fd5b348015610237575f80fd5b5061024b610246366004614aff565b6106fa565b005b348015610258575f80fd5b5061024b610267366004614b3a565b61070b565b348015610277575f80fd5b5061024b610286366004614b51565b61099b565b348015610296575f80fd5b5061029f600a81565b60405160ff90911681526020015b60405180910390f35b3480156102c1575f80fd5b5061024b6102d0366004614aff565b610a78565b3480156102e0575f80fd5b5061024b6102ef366004614b68565b610a84565b3480156102ff575f80fd5b5061024b61030e366004614bb6565b61103a565b34801561031e575f80fd5b5061033261032d366004614b3a565b6110ae565b6040516001600160401b0390911681526020016102ad565b348015610355575f80fd5b506103646001600160991b0181565b6040516001600160a01b0390911681526020016102ad565b348015610387575f80fd5b5061039161271081565b60405161ffff90911681526020016102ad565b3480156103af575f80fd5b5061024b6103be366004614beb565b611102565b3480156103ce575f80fd5b5061024b6103dd366004614aff565b611115565b3480156103ed575f80fd5b5061024b6103fc366004614c39565b611121565b34801561040c575f80fd5b5061024b61041b366004614beb565b6111f3565b34801561042b575f80fd5b50610434601481565b60405163ffffffff90911681526020016102ad565b348015610454575f80fd5b5061024b610463366004614bb6565b6111ff565b348015610473575f80fd5b50610487610482366004614c66565b6114c7565b6040519081526020016102ad565b3480156104a0575f80fd5b506104875f81565b3480156104b3575f80fd5b5061024b6104c2366004614aff565b6114e7565b3480156104d2575f80fd5b5061024b6104e1366004614beb565b6114f3565b3480156104f1575f80fd5b5061024b610500366004614bb6565b6114ff565b348015610510575f80fd5b5061029f603081565b348015610524575f80fd5b5061024b610533366004614c81565b611739565b348015610543575f80fd5b5061024b610552366004614b3a565b6117ea565b348015610562575f80fd5b5061024b610571366004614beb565b61187e565b348015610581575f80fd5b5061024b610590366004614c39565b61188a565b6104876105a3366004614cc0565b611a80565b3480156105b3575f80fd5b506104877f4317713f7ecbdddd4bc99e95d903adedaa883b2e7c2551610bd13e2c7e473d0081565b3480156105e6575f80fd5b506103646005600160991b0181565b348015610600575f80fd5b5061024b61060f366004614b3a565b611ab4565b34801561061f575f80fd5b506104875f80516020615a9883398151915281565b34801561063f575f80fd5b5061024b61064e366004614b3a565b611d0d565b610487610661366004614b3a565b611e49565b348015610671575f80fd5b5061029f601481565b348015610685575f80fd5b50610699610694366004614b3a565b611e7a565b6040516102ad9190614d96565b3480156106b1575f80fd5b506103326202a30081565b3480156106c7575f80fd5b5061024b6106d6366004614c81565b611fc9565b3480156106e6575f80fd5b506104876106f5366004614e16565b612060565b6107068383835f6120bb565b505050565b5f8181525f80516020615ab88339815191526020526040808220815160e0810190925280545f80516020615a9883398151915293929190829060ff16600581111561075857610758614d21565b600581111561076957610769614d21565b815260200160018201805461077d90614e81565b80601f01602080910402602001604051908101604052809291908181526020018280546107a990614e81565b80156107f45780601f106107cb576101008083540402835291602001916107f4565b820191905f5260205f20905b8154815290600101906020018083116107d757829003601f168201915b505050918352505060028201546001600160401b038082166020840152600160401b820481166040840152600160801b820481166060840152600160c01b909104811660808301526003928301541660a0909101529091508151600581111561085f5761085f614d21565b1461089b575f8381526005830160205260409081902054905163170cc93360e21b81526108929160ff1690600401614eb3565b60405180910390fd5b606081015160405163854a893f60e01b8152600481018590526001600160401b0390911660248201525f60448201526005600160991b019063ee5b48eb9073__$fd0c147b4031eef6079b0498cbafa865f0$__9063854a893f906064015f60405180830381865af4158015610912573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526109399190810190614fbc565b6040518263ffffffff1660e01b81526004016109559190614fed565b6020604051808303815f875af1158015610971573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109959190614fff565b50505050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805460029190600160401b900460ff16806109e4575080546001600160401b03808416911610155b15610a025760405163f92ee8a960e01b815260040160405180910390fd5b805468ffffffffffffffffff19166001600160401b03831617600160401b178155610a2c836120e7565b805460ff60401b191681556040516001600160401b03831681527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a1505050565b6109958383835f6120f8565b7fe92546d698950ddd38910d2e15ed1d923cd0a7b3dde9e2a6a3f380565559cb07545f80516020615a988339815191529060ff1615610ad657604051637fab81e560e01b815260040160405180910390fd5b6005600160991b016001600160a01b0316634213cf786040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b19573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b3d9190614fff565b836020013514610b66576040516372b0a7e760e11b815260208401356004820152602401610892565b30610b776060850160408601615016565b6001600160a01b031614610bba57610b956060840160408501615016565b604051632f88120d60e21b81526001600160a01b039091166004820152602401610892565b5f610bc86060850185615031565b905090505f805b828163ffffffff161015610e30575f610beb6060880188615031565b8363ffffffff16818110610c0157610c01615076565b9050602002810190610c13919061508a565b610c1c906150f5565b80516040519192505f916006880191610c3491615170565b90815260200160405180910390205414610c6457805160405163a41f772f60e01b81526108929190600401614fed565b5f6002885f013584604051602001610c9392919091825260e01b6001600160e01b031916602082015260240190565b60408051601f1981840301815290829052610cad91615170565b602060405180830381855afa158015610cc8573d5f803e3d5ffd5b5050506040513d601f19601f82011682018060405250810190610ceb9190614fff565b90508086600601835f0151604051610d039190615170565b90815260408051918290036020908101909220929092555f8381526005890190915220805460ff191660021781558251600190910190610d4390826151c5565b50604082810180515f84815260058a016020529290922060028101805492516001600160401b039485166001600160c01b031990941693909317600160801b85851602176001600160c01b0316600160c01b429590951694909402939093179092556003909101805467ffffffffffffffff19169055610dc39085615294565b8251604051919550610dd491615170565b60408051918290038220908401516001600160401b031682529082907ffe3e5983f71c8253fb0b678f2bc587aa8574d8f1aab9cf82b983777f5998392c9060200160405180910390a3505080610e29906152b4565b9050610bcf565b5060038301805467ffffffffffffffff60401b1916600160401b6001600160401b0384168102919091179091556001840154606491610e73910460ff16836152d6565b6001600160401b03161015610ea657604051633e1a785160e01b81526001600160401b0382166004820152602401610892565b5f73__$fd0c147b4031eef6079b0498cbafa865f0$__634d847884610eca8761242d565b604001516040518263ffffffff1660e01b8152600401610eea9190614fed565b602060405180830381865af4158015610f05573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f299190614fff565b90505f73__$fd0c147b4031eef6079b0498cbafa865f0$__6387418b8e886040518263ffffffff1660e01b8152600401610f63919061542c565b5f60405180830381865af4158015610f7d573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052610fa49190810190614fbc565b90505f600282604051610fb79190615170565b602060405180830381855afa158015610fd2573d5f803e3d5ffd5b5050506040513d601f19601f82011682018060405250810190610ff59190614fff565b90508281146110215760405163baaea89d60e01b81526004810182905260248101849052604401610892565b5050506007909201805460ff1916600117905550505050565b61104382612543565b611063576040516330efa98b60e01b815260048101839052602401610892565b5f61106d83611e7a565b519050600281600581111561108457611084614d21565b146110a4578060405163170cc93360e21b81526004016108929190614eb3565b610995838361256c565b5f806110b861280b565b600301546110c690846154c0565b90508015806110db57506001600160401b0381115b156110fc5760405163222d164360e21b815260048101849052602401610892565b92915050565b61110e848484846120f8565b5050505050565b6109958383835f61282f565b611129612a6c565b5f61113261280b565b90505f8061113f84612aa3565b9150915061114c82612543565b611158575050506111da565b5f828152600684016020908152604080832054600b870190925290912080546001600160a01b031981169091556001600160a01b0391821691168061119a5750805b6004835160058111156111af576111af614d21565b036111be576111be8185612e5b565b6111d4826111cf85604001516114c7565b612e85565b50505050505b6111f060015f80516020615ad883398151915255565b50565b61099584848484612eab565b5f61120861280b565b5f848152600782016020526040808220815160e0810190925280549394509192909190829060ff16600381111561124157611241614d21565b600381111561125257611252614d21565b8152815461010090046001600160a01b0316602082015260018201546040808301919091526002909201546001600160401b038082166060840152600160401b820481166080840152600160801b8204811660a0840152600160c01b9091041660c0909101528101519091505f6112c882611e7a565b90506001835160038111156112df576112df614d21565b14611300578251604051633b0d540d60e21b815261089291906004016154df565b60048151600581111561131557611315614d21565b0361132b5761132386612ed7565b505050505050565b5f8073__$fd0c147b4031eef6079b0498cbafa865f0$__6350782b0f6113508961242d565b604001516040518263ffffffff1660e01b81526004016113709190614fed565b606060405180830381865af415801561138b573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113af91906154f9565b50915091508184146113dc57846040015160405163089938b360e11b815260040161089291815260200190565b806001600160401b031683606001516001600160401b031610806114155750806001600160401b03168560a001516001600160401b0316115b1561143e57604051632e19bc2d60e11b81526001600160401b0382166004820152602401610892565b5f888152600787016020908152604091829020805460ff1916600290811782550180546001600160401b034216600160401b810267ffffffffffffffff60401b1990921691909117909155915191825285918a917f047059b465069b8b751836b41f9f1d83daff583d2238cc7fbb461437ec23a4f6910160405180910390a35050505050505050565b5f6114d061280b565b600301546110fc906001600160401b03841661552e565b6107068383835f612eab565b61110e8484848461282f565b611507612a6c565b5f61151061280b565b5f848152600782016020526040808220815160e0810190925280549394509192909190829060ff16600381111561154957611549614d21565b600381111561155a5761155a614d21565b8152815461010090046001600160a01b03166020820152600182015460408201526002909101546001600160401b038082166060840152600160401b820481166080840152600160801b8204811660a0840152600160c01b9091041660c09091015290506003815160038111156115d3576115d3614d21565b146115f4578051604051633b0d540d60e21b815261089291906004016154df565b60046116038260400151611e7a565b51600581111561161557611615614d21565b14611714575f6116248461242d565b90505f8073__$fd0c147b4031eef6079b0498cbafa865f0$__6350782b0f84604001516040518263ffffffff1660e01b81526004016116639190614fed565b606060405180830381865af415801561167e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116a291906154f9565b5091509150818460400151146116ce5760405163089938b360e11b815260048101839052602401610892565b806001600160401b03168460c001516001600160401b0316111561171057604051632e19bc2d60e11b81526001600160401b0382166004820152602401610892565b5050505b61171d84612ed7565b505061173560015f80516020615ad883398151915255565b5050565b5f61174261280b565b90506001600160a01b0382166117765760405163caa903f960e01b81526001600160a01b0383166004820152602401610892565b5f8381526006820160205260409020546001600160a01b031633146117bc57335b604051636e2ccd7560e11b81526001600160a01b039091166004820152602401610892565b5f928352600b01602052604090912080546001600160a01b0319166001600160a01b03909216919091179055565b5f6117f361280b565b90505f6117ff83611e7a565b519050600481600581111561181657611816614d21565b14611836578060405163170cc93360e21b81526004016108929190614eb3565b5f8381526006830160205260409020546001600160a01b0316331461185b5733611797565b5f838152600683016020526040902054610706906001600160a01b031684612e5b565b610995848484846120bb565b5f80516020615a988339815191525f8073__$fd0c147b4031eef6079b0498cbafa865f0$__63021de88f6118bd8661242d565b604001516040518263ffffffff1660e01b81526004016118dd9190614fed565b6040805180830381865af41580156118f7573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061191b9190615545565b915091508061194157604051632d07135360e01b81528115156004820152602401610892565b5f8281526004840160205260409020805461195b90614e81565b90505f0361197f5760405163089938b360e11b815260048101839052602401610892565b60015f838152600580860160205260409091205460ff16908111156119a6576119a6614d21565b146119d9575f8281526005840160205260409081902054905163170cc93360e21b81526108929160ff1690600401614eb3565b5f82815260048401602052604081206119f191614a53565b5f828152600584016020908152604091829020805460ff1916600290811782550180546001600160401b0342818116600160c01b026001600160c01b0390931692909217928390558451600160801b9093041682529181019190915283917f8629ec2bfd8d3b792ba269096bb679e08f20ba2caec0785ef663cf94788e349b910160405180910390a250505050565b5f611a89612a6c565b611a95848484346130d1565b9050611aad60015f80516020615ad883398151915255565b9392505050565b5f611abd61280b565b5f838152600782016020526040808220815160e0810190925280549394509192909190829060ff166003811115611af657611af6614d21565b6003811115611b0757611b07614d21565b8152815461010090046001600160a01b0316602082015260018083015460408301526002909201546001600160401b038082166060840152600160401b820481166080840152600160801b8204811660a0840152600160c01b9091041660c09091015290915081516003811115611b8057611b80614d21565b14158015611ba15750600381516003811115611b9e57611b9e614d21565b14155b15611bc2578051604051633b0d540d60e21b815261089291906004016154df565b5f611bd08260400151611e7a565b905080606001516001600160401b03165f03611c02576040516339b894f960e21b815260048101859052602401610892565b60408083015160608301516080840151925163854a893f60e01b81526005600160991b019363ee5b48eb9373__$fd0c147b4031eef6079b0498cbafa865f0$__9363854a893f93611c7093906004019283526001600160401b03918216602084015216604082015260600190565b5f60405180830381865af4158015611c8a573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052611cb19190810190614fbc565b6040518263ffffffff1660e01b8152600401611ccd9190614fed565b6020604051808303815f875af1158015611ce9573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061110e9190614fff565b5f8181527fe92546d698950ddd38910d2e15ed1d923cd0a7b3dde9e2a6a3f380565559cb046020526040902080545f80516020615a988339815191529190611d5490614e81565b90505f03611d785760405163089938b360e11b815260048101839052602401610892565b60015f838152600580840160205260409091205460ff1690811115611d9f57611d9f614d21565b14611dd2575f8281526005820160205260409081902054905163170cc93360e21b81526108929160ff1690600401614eb3565b5f8281526004808301602052604091829020915163ee5b48eb60e01b81526005600160991b019263ee5b48eb92611e099201615568565b6020604051808303815f875af1158015611e25573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107069190614fff565b5f611e52612a6c565b611e5d823334613246565b9050611e7560015f80516020615ad883398151915255565b919050565b611e82614a8a565b5f8281525f80516020615ab8833981519152602052604090819020815160e0810190925280545f80516020615a98833981519152929190829060ff166005811115611ecf57611ecf614d21565b6005811115611ee057611ee0614d21565b8152602001600182018054611ef490614e81565b80601f0160208091040260200160405190810160405280929190818152602001828054611f2090614e81565b8015611f6b5780601f10611f4257610100808354040283529160200191611f6b565b820191905f5260205f20905b815481529060010190602001808311611f4e57829003601f168201915b505050918352505060028201546001600160401b038082166020840152600160401b820481166040840152600160801b820481166060840152600160c01b9091048116608083015260039092015490911660a0909101529392505050565b6001600160a01b038116611ffb5760405163caa903f960e01b81526001600160a01b0382166004820152602401610892565b5f61200461280b565b5f8481526007820160205260409020549091506001600160a01b036101009091041633146120325733611797565b5f928352600901602052604090912080546001600160a01b0319166001600160a01b03909216919091179055565b6040515f905f80516020615a98833981519152907fe92546d698950ddd38910d2e15ed1d923cd0a7b3dde9e2a6a3f380565559cb06906120a390869086906155f2565b90815260200160405180910390205491505092915050565b6120c7848484846120f8565b61099557604051631036cf9160e11b815260048101859052602401610892565b6120ef613486565b6111f0816134d1565b5f8061210261280b565b5f878152600782016020526040808220815160e0810190925280549394509192909190829060ff16600381111561213b5761213b614d21565b600381111561214c5761214c614d21565b8152815461010090046001600160a01b0316602082015260018201546040808301919091526002909201546001600160401b038082166060840152600160401b820481166080840152600160801b8204811660a0840152600160c01b9091041660c0909101528101519091505f6121c282611e7a565b90506002835160038111156121d9576121d9614d21565b146121fa578251604051633b0d540d60e21b815261089291906004016154df565b60208301516001600160a01b03163314612296575f8281526006850160205260409020546001600160a01b031633146122335733611797565b5f82815260068501602052604090205460a082015161226291600160b01b90046001600160401b031690615294565b6001600160401b03164210156122965760405163fb6ce63f60e01b81526001600160401b0342166004820152602401610892565b6002815160058111156122ab576122ab614d21565b036123cd57600284015460808401516122cd916001600160401b031690615294565b6001600160401b03164210156123015760405163fb6ce63f60e01b81526001600160401b0342166004820152602401610892565b871561231357612311828861256c565b505b5f8981526007850160205260409020805460ff191660031790556060830151608082015161234c9184916123479190615601565b61354b565b505f8a8152600786016020526040812060020180546001600160401b03909316600160c01b026001600160c01b039093169290921790915561238f84888c613722565b9050828a7f366d336c0ab380dc799f095a6f82a26326585c52909cc698b09ba4540709ed5760405160405180910390a3151594506124259350505050565b6004815160058111156123e2576123e2614d21565b03612409576123f283878b613722565b506123fc89612ed7565b6001945050505050612425565b805160405163170cc93360e21b81526108929190600401614eb3565b949350505050565b60408051606080820183525f8083526020830152918101919091526040516306f8253560e41b815263ffffffff831660048201525f9081906005600160991b0190636f825350906024015f60405180830381865afa158015612491573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526124b89190810190615621565b91509150806124da57604051636b2f19e960e01b815260040160405180910390fd5b815115612500578151604051636ba589a560e01b81526004810191909152602401610892565b60208201516001600160a01b03161561253c576020820151604051624de75d60e31b81526001600160a01b039091166004820152602401610892565b5092915050565b5f8061254d61280b565b5f938452600601602052505060409020546001600160a01b0316151590565b6040516306f8253560e41b815263ffffffff821660048201525f90819081906005600160991b0190636f825350906024015f60405180830381865afa1580156125b7573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526125de9190810190615621565b915091508061260057604051636b2f19e960e01b815260040160405180910390fd5b5f61260961280b565b6005810154845191925014612637578251604051636ba589a560e01b81526004810191909152602401610892565b60208301516001600160a01b031615612673576020830151604051624de75d60e31b81526001600160a01b039091166004820152602401610892565b60208301516001600160a01b0316156126af576020830151604051624de75d60e31b81526001600160a01b039091166004820152602401610892565b5f8073__$fd0c147b4031eef6079b0498cbafa865f0$__63088c246386604001516040518263ffffffff1660e01b81526004016126ec9190614fed565b6040805180830381865af4158015612706573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061272a91906156b1565b915091508188146127515760405163089938b360e11b815260048101899052602401610892565b5f8881526006840160205260409020600101546001600160401b0390811690821611156127e2575f888152600684016020908152604091829020600101805467ffffffffffffffff19166001600160401b038516908117909155915191825289917fec44148e8ff271f2d0bacef1142154abacb0abb3a29eb3eb50e2ca97e86d0435910160405180910390a2612800565b505f8781526006830160205260409020600101546001600160401b03165b979650505050505050565b7f4317713f7ecbdddd4bc99e95d903adedaa883b2e7c2551610bd13e2c7e473d0090565b5f8061283961280b565b90505f61284587613910565b905061285087612543565b61285f57600192505050612425565b5f8781526006830160205260409020546001600160a01b031633146128845733611797565b5f87815260068301602052604090205460a08201516128b391600160b01b90046001600160401b031690615294565b6001600160401b03168160c001516001600160401b031610156128fa5760c081015160405163fb6ce63f60e01b81526001600160401b039091166004820152602401610892565b5f86156129125761290b888761256c565b9050612930565b505f8781526006830160205260409020600101546001600160401b03165b600483015460408301515f916001600160a01b031690634f22429f90612955906114c7565b60a086015160c087015160405160e085901b6001600160e01b031916815260048101939093526001600160401b03918216602484018190526044840152811660648301528516608482015260a401602060405180830381865afa1580156129be573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906129e29190614fff565b90506001600160a01b038616612a0e575f8981526006850160205260409020546001600160a01b031695505b5f898152600a8501602052604081208054839290612a2d9084906156d4565b90915550505f898152600b909401602052604090932080546001600160a01b0387166001600160a01b0319909116179055505015159050949350505050565b5f80516020615ad8833981519152805460011901612a9d57604051633ee5aeb560e01b815260040160405180910390fd5b60029055565b5f612aac614a8a565b5f80516020615a988339815191525f8073__$fd0c147b4031eef6079b0498cbafa865f0$__63021de88f612adf8861242d565b604001516040518263ffffffff1660e01b8152600401612aff9190614fed565b6040805180830381865af4158015612b19573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612b3d9190615545565b915091508015612b6457604051632d07135360e01b81528115156004820152602401610892565b5f82815260058085016020526040808320815160e08101909252805491929091839160ff90911690811115612b9b57612b9b614d21565b6005811115612bac57612bac614d21565b8152602001600182018054612bc090614e81565b80601f0160208091040260200160405190810160405280929190818152602001828054612bec90614e81565b8015612c375780601f10612c0e57610100808354040283529160200191612c37565b820191905f5260205f20905b815481529060010190602001808311612c1a57829003601f168201915b505050918352505060028201546001600160401b038082166020840152600160401b820481166040840152600160801b820481166060840152600160c01b909104811660808301526003928301541660a09091015290915081516005811115612ca257612ca2614d21565b14158015612cc35750600181516005811115612cc057612cc0614d21565b14155b15612ce457805160405163170cc93360e21b81526108929190600401614eb3565b600381516005811115612cf957612cf9614d21565b03612d075760048152612d0c565b600581525b836006018160200151604051612d229190615170565b90815260408051602092819003830190205f90819055858152600587810190935220825181548493839160ff1916906001908490811115612d6557612d65614d21565b021790555060208201516001820190612d7e90826151c5565b5060408201516002820180546060850151608086015160a08701516001600160401b039586166001600160801b031990941693909317600160401b92861692909202919091176001600160801b0316600160801b918516919091026001600160c01b031617600160c01b9184169190910217905560c0909201516003909101805467ffffffffffffffff19169190921617905580516005811115612e2457612e24614d21565b60405184907f1c08e59656f1a18dc2da76826cdc52805c43e897a17c50faefb8ab3c1526cc16905f90a39196919550909350505050565b5f612e6461280b565b5f838152600a82016020526040812080549190559091506109958482613bf5565b6117356001600160a01b03831682613c53565b60015f80516020615ad883398151915255565b612eb78484848461282f565b61099557604051635bff683f60e11b815260048101859052602401610892565b5f612ee061280b565b5f838152600782016020526040808220815160e0810190925280549394509192909190829060ff166003811115612f1957612f19614d21565b6003811115612f2a57612f2a614d21565b8152815461010090046001600160a01b0316602082015260018201546040808301919091526002909201546001600160401b038082166060840152600160401b820481166080840152600160801b8204811660a0840152600160c01b9091041660c090910152810151909150612fc77fe92546d698950ddd38910d2e15ed1d923cd0a7b3dde9e2a6a3f380565559cb01546001600160401b031690565b8260800151612fd69190615294565b6001600160401b031642101561300a5760405163fb6ce63f60e01b81526001600160401b0342166004820152602401610892565b5f848152600784016020908152604080832080546001600160a81b03191681556001810184905560020183905560098601909152902080546001600160a01b031981169091556001600160a01b031680613065575060208201515b5f80613072838886613ce6565b9150915061308b85602001516111cf87606001516114c7565b6040805183815260208101839052859189917f8ececf510070c320d9a55323ffabe350e294ae505fc0c509dc5736da6f5cc993910160405180910390a350505050505050565b5f806130db61280b565b600281015490915061ffff600160401b90910481169086161080613104575061271061ffff8616115b1561312857604051635f12e6c360e11b815261ffff86166004820152602401610892565b60028101546001600160401b039081169085161015613164576040516202a06d60e11b81526001600160401b0385166004820152602401610892565b80548310806131765750806001015483115b156131975760405163222d164360e21b815260048101849052602401610892565b825f6131a2826110ae565b90505f6131af8983613d93565b5f818152600686016020908152604080832080546001600160401b039c909c16600160b01b0267ffffffffffffffff60b01b1961ffff9e909e16600160a01b02336001600160b01b0319909e168e17179d909d169c909c178c556001909b01805467ffffffffffffffff19169055600b9096019095529790932080546001600160a01b031916909617909555509395945050505050565b5f8061325061280b565b90505f61325c846110ae565b90505f61326887611e7a565b905061327387612543565b613293576040516330efa98b60e01b815260048101889052602401610892565b6002815160058111156132a8576132a8614d21565b146132c957805160405163170cc93360e21b81526108929190600401614eb3565b5f8282608001516132da9190615294565b905083600201600a9054906101000a90046001600160401b0316826040015161330391906152d6565b6001600160401b0316816001600160401b0316111561334057604051636d51fe0560e11b81526001600160401b0382166004820152602401610892565b5f8061334c8a8461354b565b915091505f8a8360405160200161337a92919091825260c01b6001600160c01b031916602082015260280190565b60408051601f1981840301815291815281516020928301205f81815260078b019093529120805491925060019160ff1916828002179055505f8181526007880160209081526040918290208054610100600160a81b0319166101006001600160a01b038f16908102919091178255600182018f9055600290910180546001600160401b038b81166001600160c01b03199092168217600160801b8a8316908102919091176001600160c01b031690935585519283528916938201939093529283019190915260608201849052908c9083907fb0024b263bc3a0b728a6edea50a69efa841189f8d32ee8af9d1c2b1a1a2234269060800160405180910390a49a9950505050505050505050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054600160401b900460ff166134cf57604051631afcd79f60e31b815260040160405180910390fd5b565b6134d9613486565b6134e281614305565b6134ea61431e565b6111f06060820135608083013561350760c0850160a08601614c66565b61351760e0860160c087016156e7565b613528610100870160e08801615700565b61010087013561354061014089016101208a01615016565b88610140013561432e565b5f8281525f80516020615ab8833981519152602052604081206002015481905f80516020615a9883398151915290600160801b90046001600160401b03166135938582614513565b5f61359d8761477d565b5f888152600585016020526040808220600201805467ffffffffffffffff60801b1916600160801b6001600160401b038c811691820292909217909255915163854a893f60e01b8152600481018c905291841660248301526044820152919250906005600160991b019063ee5b48eb9073__$fd0c147b4031eef6079b0498cbafa865f0$__9063854a893f906064015f60405180830381865af4158015613646573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405261366d9190810190614fbc565b6040518263ffffffff1660e01b81526004016136899190614fed565b6020604051808303815f875af11580156136a5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906136c99190614fff565b604080516001600160401b038a811682526020820184905282519394508516928b927f07de5ff35a674a8005e661f3333c907ca6333462808762d19dc7b3abb1a8c1df928290030190a3909450925050505b9250929050565b5f8061372c61280b565b90505f61373c8660400151611e7a565b90505f60038251600581111561375457613754614d21565b1480613772575060048251600581111561377057613770614d21565b145b15613782575060c08101516137bf565b60028251600581111561379757613797614d21565b036137a35750426137bf565b815160405163170cc93360e21b81526108929190600401614eb3565b86608001516001600160401b0316816001600160401b0316116137e7575f9350505050611aad565b600483015460608801515f916001600160a01b031690634f22429f9061380c906114c7565b60a086015160808c01516040808e01515f90815260068b0160205281902060010154905160e086901b6001600160e01b031916815260048101949094526001600160401b0392831660248501529082166044840152818716606484015216608482015260a401602060405180830381865afa15801561388d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906138b19190614fff565b90506001600160a01b0387166138c957876020015196505b5f8681526008850160209081526040808320849055600990960190529390932080546001600160a01b0388166001600160a01b031990911617905550909150509392505050565b613918614a8a565b5f8281525f80516020615ab88339815191526020526040808220815160e0810190925280545f80516020615a9883398151915293929190829060ff16600581111561396557613965614d21565b600581111561397657613976614d21565b815260200160018201805461398a90614e81565b80601f01602080910402602001604051908101604052809291908181526020018280546139b690614e81565b8015613a015780601f106139d857610100808354040283529160200191613a01565b820191905f5260205f20905b8154815290600101906020018083116139e457829003601f168201915b50505091835250506002828101546001600160401b038082166020850152600160401b820481166040850152600160801b820481166060850152600160c01b9091048116608084015260039093015490921660a09091015290915081516005811115613a6f57613a6f614d21565b14613aa2575f8481526005830160205260409081902054905163170cc93360e21b81526108929160ff1690600401614eb3565b60038152426001600160401b031660c08201525f84815260058381016020526040909120825181548493839160ff1916906001908490811115613ae757613ae7614d21565b021790555060208201516001820190613b0090826151c5565b5060408201516002820180546060850151608086015160a08701516001600160401b039586166001600160801b031990941693909317600160401b92861692909202919091176001600160801b0316600160801b918516919091026001600160c01b031617600160c01b9184169190910217905560c0909201516003909101805467ffffffffffffffff1916919092161790555f613b9e858261354b565b6080840151604080516001600160401b03909216825242602083015291935083925087917ffbfc4c00cddda774e9bce93712e29d12887b46526858a1afb0937cce8c30fa42910160405180910390a3509392505050565b6040516327ad555d60e11b81526001600160a01b0383166004820152602481018290526001600160991b0190634f5aaaba906044015f604051808303815f87803b158015613c41575f80fd5b505af1158015611323573d5f803e3d5ffd5b80471015613c765760405163cd78605960e01b8152306004820152602401610892565b5f826001600160a01b0316826040515f6040518083038185875af1925050503d805f8114613cbf576040519150601f19603f3d011682016040523d82523d5f602084013e613cc4565b606091505b505090508061070657604051630a12f52160e11b815260040160405180910390fd5b5f805f613cf161280b565b5f86815260088201602052604081208054908290559192509081908015613d85575f87815260068501602052604090205461271090613d3b90600160a01b900461ffff168361552e565b613d4591906154c0565b91508184600a015f8981526020019081526020015f205f828254613d6991906156d4565b90915550613d7990508282615720565b9250613d858984613bf5565b509097909650945050505050565b7fe92546d698950ddd38910d2e15ed1d923cd0a7b3dde9e2a6a3f380565559cb07545f9060ff16613dd757604051637fab81e560e01b815260040160405180910390fd5b5f80516020615a9883398151915242613df66060860160408701614c66565b6001600160401b0316111580613e305750613e146202a300426156d4565b613e246060860160408701614c66565b6001600160401b031610155b15613e6a57613e456060850160408601614c66565b604051635879da1360e11b81526001600160401b039091166004820152602401610892565b60038101546001600160401b0390613e8d90600160401b900482168583166156d4565b1115613eb757604051633e1a785160e01b81526001600160401b0384166004820152602401610892565b613ecc613ec76060860186615733565b6147f2565b613edc613ec76080860186615733565b6030613eeb6020860186615747565b905014613f1d57613eff6020850185615747565b6040516326475b2f60e11b8152610892925060040190815260200190565b613f278480615747565b90505f03613f5457613f398480615747565b604051633e08a12560e11b8152600401610892929190615789565b5f60068201613f638680615747565b604051613f719291906155f2565b90815260200160405180910390205414613faa57613f8f8480615747565b60405163a41f772f60e01b8152600401610892929190615789565b613fb4835f614513565b6040805160e08101909152815481525f90819073__$fd0c147b4031eef6079b0498cbafa865f0$__9063eb97ce519060208101613ff18a80615747565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250505090825250602090810190614039908b018b615747565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201919091525050509082525060200161408260608b0160408c01614c66565b6001600160401b0316815260200161409d60608b018b615733565b6140a69061579c565b81526020016140b860808b018b615733565b6140c19061579c565b8152602001886001600160401b03168152506040518263ffffffff1660e01b81526004016140ef91906158c9565b5f60405180830381865af4158015614109573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526141309190810190615980565b5f8281526004860160205260409020919350915061414e82826151c5565b50816006840161415e8880615747565b60405161416c9291906155f2565b9081526040519081900360200181209190915563ee5b48eb60e01b81525f906005600160991b019063ee5b48eb906141a8908590600401614fed565b6020604051808303815f875af11580156141c4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906141e89190614fff565b5f8481526005860160205260409020805460ff19166001179055905061420e8780615747565b5f85815260058701602052604090206001019161422c9190836159c3565b505f83815260058501602052604090206002810180546001600160c01b0319166001600160401b038916908117600160801b91909102176001600160c01b03169055600301805467ffffffffffffffff191690558061428b8880615747565b6040516142999291906155f2565b6040518091039020847fd8a184af94a03e121609cc5f803a446236793e920c7945abc6ba355c8a30cb49898b60400160208101906142d79190614c66565b604080516001600160401b0393841681529290911660208301520160405180910390a4509095945050505050565b61430d613486565b61431561495b565b6111f081614963565b614326613486565b6134cf614a4b565b614336613486565b5f61433f61280b565b905061ffff86161580614357575061271061ffff8716115b1561437b57604051635f12e6c360e11b815261ffff87166004820152602401610892565b8789111561439f5760405163222d164360e21b8152600481018a9052602401610892565b60ff851615806143b25750600a60ff8616115b156143d55760405163170db35960e31b815260ff86166004820152602401610892565b7fe92546d698950ddd38910d2e15ed1d923cd0a7b3dde9e2a6a3f380565559cb01546001600160401b03166001600160401b0316876001600160401b0316101561443c576040516202a06d60e11b81526001600160401b0388166004820152602401610892565b835f0361445c5760405163a733007160e01b815260040160405180910390fd5b8161447d57604051632f6bd1db60e01b815260048101839052602401610892565b97885560018801969096556002870180546001600160401b039690961669ffffffffffffffffffff1990961695909517600160401b61ffff95909516949094029390931767ffffffffffffffff60501b191660ff92909216600160501b029190911790925560038401919091556004830180546001600160a01b0319166001600160a01b03909216919091179055600590910155565b5f80516020615a988339815191525f6001600160401b038084169085161115614547576145408385615601565b9050614554565b6145518484615601565b90505b60408051608081018252600284015480825260038501546001600160401b038082166020850152600160401b8204811694840194909452600160801b90049092166060820152429115806145c15750600184015481516145bd916001600160401b0316906156d4565b8210155b156145e9576001600160401b0380841660608301528282526040820151166020820152614608565b82816060018181516145fb9190615294565b6001600160401b03169052505b60608101516146189060646152d6565b602082015160018601546001600160401b0392909216916146439190600160401b900460ff166152d6565b6001600160401b0316101561467c57606081015160405163dfae880160e01b81526001600160401b039091166004820152602401610892565b858160400181815161468e9190615294565b6001600160401b03169052506040810180518691906146ae908390615601565b6001600160401b0316905250600184015460408201516064916146dc91600160401b90910460ff16906152d6565b6001600160401b03161015614715576040808201519051633e1a785160e01b81526001600160401b039091166004820152602401610892565b8051600285015560208101516003909401805460408301516060909301516001600160401b03908116600160801b0267ffffffffffffffff60801b19948216600160401b026001600160801b0319909316919097161717919091169390931790925550505050565b5f8181525f80516020615ab88339815191526020526040812060020180545f80516020615a9883398151915291906008906147c790600160401b90046001600160401b0316615a7c565b91906101000a8154816001600160401b0302191690836001600160401b031602179055915050919050565b6147ff6020820182614c39565b63ffffffff1615801561481f575061481a6020820182615031565b151590505b15614866576148316020820182614c39565b61483e6020830183615031565b60405163c08a0f1d60e01b815263ffffffff9093166004840152602483015250604401610892565b6148736020820182615031565b90506148826020830183614c39565b63ffffffff16111561489b576148316020820182614c39565b60015b6148ab6020830183615031565b9050811015611735576148c16020830183615031565b6148cc600184615720565b8181106148db576148db615076565b90506020020160208101906148f09190615016565b6001600160a01b03166149066020840184615031565b8381811061491657614916615076565b905060200201602081019061492b9190615016565b6001600160a01b0316101561495357604051630dbc8d5f60e31b815260040160405180910390fd5b60010161489e565b6134cf613486565b61496b613486565b80355f80516020615a9883398151915290815560146149906060840160408501615700565b60ff1611806149af57506149aa6060830160408401615700565b60ff16155b156149e3576149c46060830160408401615700565b604051634a59bbff60e11b815260ff9091166004820152602401610892565b6149f36060830160408401615700565b60018201805460ff92909216600160401b0260ff60401b19909216919091179055614a246040830160208401614c66565b600191909101805467ffffffffffffffff19166001600160401b0390921691909117905550565b612e98613486565b508054614a5f90614e81565b5f825580601f10614a6e575050565b601f0160209004905f5260205f20908101906111f09190614ac7565b6040805160e08101909152805f81526060602082018190525f604083018190529082018190526080820181905260a0820181905260c09091015290565b5b80821115614adb575f8155600101614ac8565b5090565b80151581146111f0575f80fd5b803563ffffffff81168114611e75575f80fd5b5f805f60608486031215614b11575f80fd5b833592506020840135614b2381614adf565b9150614b3160408501614aec565b90509250925092565b5f60208284031215614b4a575f80fd5b5035919050565b5f6101608284031215614b62575f80fd5b50919050565b5f8060408385031215614b79575f80fd5b82356001600160401b03811115614b8e575f80fd5b830160808186031215614b9f575f80fd5b9150614bad60208401614aec565b90509250929050565b5f8060408385031215614bc7575f80fd5b82359150614bad60208401614aec565b6001600160a01b03811681146111f0575f80fd5b5f805f8060808587031215614bfe575f80fd5b843593506020850135614c1081614adf565b9250614c1e60408601614aec565b91506060850135614c2e81614bd7565b939692955090935050565b5f60208284031215614c49575f80fd5b611aad82614aec565b6001600160401b03811681146111f0575f80fd5b5f60208284031215614c76575f80fd5b8135611aad81614c52565b5f8060408385031215614c92575f80fd5b823591506020830135614ca481614bd7565b809150509250929050565b803561ffff81168114611e75575f80fd5b5f805f60608486031215614cd2575f80fd5b83356001600160401b03811115614ce7575f80fd5b840160a08187031215614cf8575f80fd5b9250614d0660208501614caf565b91506040840135614d1681614c52565b809150509250925092565b634e487b7160e01b5f52602160045260245ffd5b60068110614d4557614d45614d21565b9052565b5f5b83811015614d63578181015183820152602001614d4b565b50505f910152565b5f8151808452614d82816020860160208601614d49565b601f01601f19169290920160200192915050565b60208152614da8602082018351614d35565b5f602083015160e06040840152614dc3610100840182614d6b565b905060408401516001600160401b0380821660608601528060608701511660808601528060808701511660a08601528060a08701511660c08601528060c08701511660e086015250508091505092915050565b5f8060208385031215614e27575f80fd5b82356001600160401b0380821115614e3d575f80fd5b818501915085601f830112614e50575f80fd5b813581811115614e5e575f80fd5b866020828501011115614e6f575f80fd5b60209290920196919550909350505050565b600181811c90821680614e9557607f821691505b602082108103614b6257634e487b7160e01b5f52602260045260245ffd5b602081016110fc8284614d35565b634e487b7160e01b5f52604160045260245ffd5b604051606081016001600160401b0381118282101715614ef757614ef7614ec1565b60405290565b604080519081016001600160401b0381118282101715614ef757614ef7614ec1565b604051601f8201601f191681016001600160401b0381118282101715614f4757614f47614ec1565b604052919050565b5f6001600160401b03821115614f6757614f67614ec1565b50601f01601f191660200190565b5f82601f830112614f84575f80fd5b8151614f97614f9282614f4f565b614f1f565b818152846020838601011115614fab575f80fd5b612425826020830160208701614d49565b5f60208284031215614fcc575f80fd5b81516001600160401b03811115614fe1575f80fd5b61242584828501614f75565b602081525f611aad6020830184614d6b565b5f6020828403121561500f575f80fd5b5051919050565b5f60208284031215615026575f80fd5b8135611aad81614bd7565b5f808335601e19843603018112615046575f80fd5b8301803591506001600160401b0382111561505f575f80fd5b6020019150600581901b360382131561371b575f80fd5b634e487b7160e01b5f52603260045260245ffd5b5f8235605e1983360301811261509e575f80fd5b9190910192915050565b5f82601f8301126150b7575f80fd5b81356150c5614f9282614f4f565b8181528460208386010111156150d9575f80fd5b816020850160208301375f918101602001919091529392505050565b5f60608236031215615105575f80fd5b61510d614ed5565b82356001600160401b0380821115615123575f80fd5b61512f368387016150a8565b83526020850135915080821115615144575f80fd5b50615151368286016150a8565b602083015250604083013561516581614c52565b604082015292915050565b5f825161509e818460208701614d49565b601f82111561070657805f5260205f20601f840160051c810160208510156151a65750805b601f840160051c820191505b8181101561110e575f81556001016151b2565b81516001600160401b038111156151de576151de614ec1565b6151f2816151ec8454614e81565b84615181565b602080601f831160018114615225575f841561520e5750858301515b5f19600386901b1c1916600185901b178555611323565b5f85815260208120601f198616915b8281101561525357888601518255948401946001909101908401615234565b508582101561527057878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b5f52601160045260245ffd5b6001600160401b0381811683821601908082111561253c5761253c615280565b5f63ffffffff8083168181036152cc576152cc615280565b6001019392505050565b6001600160401b038181168382160280821691908281146152f9576152f9615280565b505092915050565b5f808335601e19843603018112615316575f80fd5b83016020810192503590506001600160401b03811115615334575f80fd5b80360382131561371b575f80fd5b81835281816020850137505f828201602090810191909152601f909101601f19169091010190565b5f8383855260208086019550808560051b830101845f5b8781101561541f57848303601f19018952813536889003605e190181126153a6575f80fd5b870160606153b48280615301565b8287526153c48388018284615342565b925050506153d486830183615301565b868303888801526153e6838284615342565b9250505060408083013592506153fb83614c52565b6001600160401b039290921694909101939093529783019790830190600101615381565b5090979650505050505050565b6020815281356020820152602082013560408201525f604083013561545081614bd7565b6001600160a01b031660608381019190915283013536849003601e19018112615477575f80fd5b83016020810190356001600160401b03811115615492575f80fd5b8060051b36038213156154a3575f80fd5b6080808501526154b760a08501828461536a565b95945050505050565b5f826154da57634e487b7160e01b5f52601260045260245ffd5b500490565b60208101600483106154f3576154f3614d21565b91905290565b5f805f6060848603121561550b575f80fd5b83519250602084015161551d81614c52565b6040850151909250614d1681614c52565b80820281158282048414176110fc576110fc615280565b5f8060408385031215615556575f80fd5b825191506020830151614ca481614adf565b5f60208083525f845461557a81614e81565b806020870152604060018084165f811461559b57600181146155b7576155e4565b60ff19851660408a0152604084151560051b8a010195506155e4565b895f5260205f205f5b858110156155db5781548b82018601529083019088016155c0565b8a016040019650505b509398975050505050505050565b818382375f9101908152919050565b6001600160401b0382811682821603908082111561253c5761253c615280565b5f8060408385031215615632575f80fd5b82516001600160401b0380821115615648575f80fd5b908401906060828703121561565b575f80fd5b615663614ed5565b82518152602083015161567581614bd7565b602082015260408301518281111561568b575f80fd5b61569788828601614f75565b6040830152508094505050506020830151614ca481614adf565b5f80604083850312156156c2575f80fd5b825191506020830151614ca481614c52565b808201808211156110fc576110fc615280565b5f602082840312156156f7575f80fd5b611aad82614caf565b5f60208284031215615710575f80fd5b813560ff81168114611aad575f80fd5b818103818111156110fc576110fc615280565b5f8235603e1983360301811261509e575f80fd5b5f808335601e1984360301811261575c575f80fd5b8301803591506001600160401b03821115615775575f80fd5b60200191503681900382131561371b575f80fd5b602081525f612425602083018486615342565b5f604082360312156157ac575f80fd5b6157b4614efd565b6157bd83614aec565b81526020808401356001600160401b03808211156157d9575f80fd5b9085019036601f8301126157eb575f80fd5b8135818111156157fd576157fd614ec1565b8060051b915061580e848301614f1f565b8181529183018401918481019036841115615827575f80fd5b938501935b83851015615851578435925061584183614bd7565b828252938501939085019061582c565b94860194909452509295945050505050565b5f6040830163ffffffff8351168452602080840151604060208701528281518085526060880191506020830194505f92505b808310156158be5784516001600160a01b03168252938301936001929092019190830190615895565b509695505050505050565b60208152815160208201525f602083015160e060408401526158ef610100840182614d6b565b90506040840151601f198085840301606086015261590d8383614d6b565b92506001600160401b03606087015116608086015260808601519150808584030160a086015261593d8383615863565b925060a08601519150808584030160c08601525061595b8282615863565b91505060c084015161597860e08501826001600160401b03169052565b509392505050565b5f8060408385031215615991575f80fd5b8251915060208301516001600160401b038111156159ad575f80fd5b6159b985828601614f75565b9150509250929050565b6001600160401b038311156159da576159da614ec1565b6159ee836159e88354614e81565b83615181565b5f601f841160018114615a1f575f8515615a085750838201355b5f19600387901b1c1916600186901b17835561110e565b5f83815260208120601f198716915b82811015615a4e5786850135825560209485019460019092019101615a2e565b5086821015615a6a575f1960f88860031b161c19848701351681555b505060018560011b0183555050505050565b5f6001600160401b038083168181036152cc576152cc61528056fee92546d698950ddd38910d2e15ed1d923cd0a7b3dde9e2a6a3f380565559cb00e92546d698950ddd38910d2e15ed1d923cd0a7b3dde9e2a6a3f380565559cb059b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00a2646970667358221220f55aacf4312652d343da09decbd91c1bd9ed93761651237aa875d924cd08544464736f6c63430008190033", } // NativeTokenStakingManagerABI is the input ABI used to generate the binding from. @@ -680,37 +680,6 @@ func (_NativeTokenStakingManager *NativeTokenStakingManagerCallerSession) GetVal return _NativeTokenStakingManager.Contract.GetValidator(&_NativeTokenStakingManager.CallOpts, validationID) } -// GetWeight is a free data retrieval call binding the contract method 0x66435abf. -// -// Solidity: function getWeight(bytes32 validationID) view returns(uint64) -func (_NativeTokenStakingManager *NativeTokenStakingManagerCaller) GetWeight(opts *bind.CallOpts, validationID [32]byte) (uint64, error) { - var out []interface{} - err := _NativeTokenStakingManager.contract.Call(opts, &out, "getWeight", validationID) - - if err != nil { - return *new(uint64), err - } - - out0 := *abi.ConvertType(out[0], new(uint64)).(*uint64) - - return out0, err - -} - -// GetWeight is a free data retrieval call binding the contract method 0x66435abf. -// -// Solidity: function getWeight(bytes32 validationID) view returns(uint64) -func (_NativeTokenStakingManager *NativeTokenStakingManagerSession) GetWeight(validationID [32]byte) (uint64, error) { - return _NativeTokenStakingManager.Contract.GetWeight(&_NativeTokenStakingManager.CallOpts, validationID) -} - -// GetWeight is a free data retrieval call binding the contract method 0x66435abf. -// -// Solidity: function getWeight(bytes32 validationID) view returns(uint64) -func (_NativeTokenStakingManager *NativeTokenStakingManagerCallerSession) GetWeight(validationID [32]byte) (uint64, error) { - return _NativeTokenStakingManager.Contract.GetWeight(&_NativeTokenStakingManager.CallOpts, validationID) -} - // RegisteredValidators is a free data retrieval call binding the contract method 0xfd7ac5e7. // // Solidity: function registeredValidators(bytes nodeID) view returns(bytes32) diff --git a/abi-bindings/go/validator-manager/PoAValidatorManager/PoAValidatorManager.go b/abi-bindings/go/validator-manager/PoAValidatorManager/PoAValidatorManager.go index 2341a23a2..57959c8b7 100644 --- a/abi-bindings/go/validator-manager/PoAValidatorManager/PoAValidatorManager.go +++ b/abi-bindings/go/validator-manager/PoAValidatorManager/PoAValidatorManager.go @@ -90,8 +90,8 @@ type ValidatorRegistrationInput struct { // PoAValidatorManagerMetaData contains all meta data concerning the PoAValidatorManager contract. var PoAValidatorManagerMetaData = &bind.MetaData{ - ABI: "[{\"inputs\":[{\"internalType\":\"enumICMInitializable\",\"name\":\"init\",\"type\":\"uint8\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"}],\"name\":\"InvalidBLSKeyLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"encodedConversionID\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"expectedConversionID\",\"type\":\"bytes32\"}],\"name\":\"InvalidConversionID\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitializationStatus\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"maximumChurnPercentage\",\"type\":\"uint8\"}],\"name\":\"InvalidMaximumChurnPercentage\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"nodeID\",\"type\":\"bytes\"}],\"name\":\"InvalidNodeID\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"threshold\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"addressesLength\",\"type\":\"uint256\"}],\"name\":\"InvalidPChainOwnerThreshold\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"registrationExpiry\",\"type\":\"uint64\"}],\"name\":\"InvalidRegistrationExpiry\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"weight\",\"type\":\"uint64\"}],\"name\":\"InvalidTotalWeight\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"}],\"name\":\"InvalidValidationID\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"validatorManagerAddress\",\"type\":\"address\"}],\"name\":\"InvalidValidatorManagerAddress\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"blockchainID\",\"type\":\"bytes32\"}],\"name\":\"InvalidValidatorManagerBlockchainID\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"enumValidatorStatus\",\"name\":\"status\",\"type\":\"uint8\"}],\"name\":\"InvalidValidatorStatus\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidWarpMessage\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"senderAddress\",\"type\":\"address\"}],\"name\":\"InvalidWarpOriginSenderAddress\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"sourceChainID\",\"type\":\"bytes32\"}],\"name\":\"InvalidWarpSourceChainID\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"churnAmount\",\"type\":\"uint64\"}],\"name\":\"MaxChurnRateExceeded\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"nodeID\",\"type\":\"bytes\"}],\"name\":\"NodeAlreadyRegistered\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"PChainOwnerAddressesNotSorted\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"validRegistration\",\"type\":\"bool\"}],\"name\":\"UnexpectedRegistrationStatus\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes\",\"name\":\"nodeID\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"weight\",\"type\":\"uint64\"}],\"name\":\"InitialValidatorCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes\",\"name\":\"nodeID\",\"type\":\"bytes\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"registerValidationMessageID\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"weight\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"registrationExpiry\",\"type\":\"uint64\"}],\"name\":\"ValidationPeriodCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"enumValidatorStatus\",\"name\":\"status\",\"type\":\"uint8\"}],\"name\":\"ValidationPeriodEnded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"weight\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"name\":\"ValidationPeriodRegistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"setWeightMessageID\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"weight\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"endTime\",\"type\":\"uint256\"}],\"name\":\"ValidatorRemovalInitialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"weight\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"setWeightMessageID\",\"type\":\"bytes32\"}],\"name\":\"ValidatorWeightUpdate\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"ADDRESS_LENGTH\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"BLS_PUBLIC_KEY_LENGTH\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MAXIMUM_CHURN_PERCENTAGE_LIMIT\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MAXIMUM_REGISTRATION_EXPIRY_LENGTH\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"P_CHAIN_BLOCKCHAIN_ID\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"VALIDATOR_MANAGER_STORAGE_LOCATION\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"WARP_MESSENGER\",\"outputs\":[{\"internalType\":\"contractIWarpMessenger\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"messageIndex\",\"type\":\"uint32\"}],\"name\":\"completeEndValidation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"messageIndex\",\"type\":\"uint32\"}],\"name\":\"completeValidatorRegistration\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"}],\"name\":\"getValidator\",\"outputs\":[{\"components\":[{\"internalType\":\"enumValidatorStatus\",\"name\":\"status\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"nodeID\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"startingWeight\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"messageNonce\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"weight\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"startedAt\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"endedAt\",\"type\":\"uint64\"}],\"internalType\":\"structValidator\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"}],\"name\":\"getWeight\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"l1ID\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"churnPeriodSeconds\",\"type\":\"uint64\"},{\"internalType\":\"uint8\",\"name\":\"maximumChurnPercentage\",\"type\":\"uint8\"}],\"internalType\":\"structValidatorManagerSettings\",\"name\":\"settings\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"initialOwner\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"}],\"name\":\"initializeEndValidation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"nodeID\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"blsPublicKey\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"registrationExpiry\",\"type\":\"uint64\"},{\"components\":[{\"internalType\":\"uint32\",\"name\":\"threshold\",\"type\":\"uint32\"},{\"internalType\":\"address[]\",\"name\":\"addresses\",\"type\":\"address[]\"}],\"internalType\":\"structPChainOwner\",\"name\":\"remainingBalanceOwner\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint32\",\"name\":\"threshold\",\"type\":\"uint32\"},{\"internalType\":\"address[]\",\"name\":\"addresses\",\"type\":\"address[]\"}],\"internalType\":\"structPChainOwner\",\"name\":\"disableOwner\",\"type\":\"tuple\"}],\"internalType\":\"structValidatorRegistrationInput\",\"name\":\"registrationInput\",\"type\":\"tuple\"},{\"internalType\":\"uint64\",\"name\":\"weight\",\"type\":\"uint64\"}],\"name\":\"initializeValidatorRegistration\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"l1ID\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"validatorManagerBlockchainID\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"validatorManagerAddress\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"bytes\",\"name\":\"nodeID\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"blsPublicKey\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"weight\",\"type\":\"uint64\"}],\"internalType\":\"structInitialValidator[]\",\"name\":\"initialValidators\",\"type\":\"tuple[]\"}],\"internalType\":\"structConversionData\",\"name\":\"conversionData\",\"type\":\"tuple\"},{\"internalType\":\"uint32\",\"name\":\"messageIndex\",\"type\":\"uint32\"}],\"name\":\"initializeValidatorSet\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"nodeID\",\"type\":\"bytes\"}],\"name\":\"registeredValidators\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"}],\"name\":\"resendEndValidatorMessage\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"}],\"name\":\"resendRegisterValidatorMessage\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]", - Bin: "0x608060405234801561000f575f80fd5b5060405161380838038061380883398101604081905261002e91610107565b60018160018111156100425761004261012c565b0361004f5761004f610055565b50610140565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff16156100a55760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b03908116146101045780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b5f60208284031215610117575f80fd5b815160028110610125575f80fd5b9392505050565b634e487b7160e01b5f52602160045260245ffd5b6136bb8061014d5f395ff3fe608060405234801561000f575f80fd5b5060043610610132575f3560e01c80639ba96b86116100b4578063c974d1b611610079578063c974d1b6146102a7578063d588c18f146102af578063d5f20ff6146102c2578063df93d8de146102e2578063f2fde38b146102ec578063fd7ac5e7146102ff575f80fd5b80639ba96b861461024c578063a3a65e481461025f578063b771b3bc14610272578063bc5fbfec14610280578063bee0a03f14610294575f80fd5b8063715018a6116100fa578063715018a6146101be578063732214f8146101c65780638280a25a146101db5780638da5cb5b146101f557806397fb70d414610239575f80fd5b80630322ed981461013657806320d91b7a1461014b578063467ef06f1461015e57806360305d621461017157806366435abf14610193575b5f80fd5b61014961014436600461280a565b610312565b005b610149610159366004612839565b6105a2565b61014961016c366004612887565b610b5d565b610179601481565b60405163ffffffff90911681526020015b60405180910390f35b6101a66101a136600461280a565b610b6b565b6040516001600160401b03909116815260200161018a565b610149610b7f565b6101cd5f81565b60405190815260200161018a565b6101e3603081565b60405160ff909116815260200161018a565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b03165b6040516001600160a01b03909116815260200161018a565b61014961024736600461280a565b610b92565b6101cd61025a3660046128b6565b610ba7565b61014961026d366004612887565b610bc3565b6102216005600160991b0181565b6101cd5f8051602061364683398151915281565b6101496102a236600461280a565b610db9565b6101e3601481565b6101496102bd36600461290f565b610ef5565b6102d56102d036600461280a565b611003565b60405161018a91906129cc565b6101a66202a30081565b6101496102fa366004612a4c565b611152565b6101cd61030d366004612a6e565b61118f565b5f8181525f805160206136668339815191526020526040808220815160e0810190925280545f8051602061364683398151915293929190829060ff16600581111561035f5761035f61294b565b60058111156103705761037061294b565b815260200160018201805461038490612ad9565b80601f01602080910402602001604051908101604052809291908181526020018280546103b090612ad9565b80156103fb5780601f106103d2576101008083540402835291602001916103fb565b820191905f5260205f20905b8154815290600101906020018083116103de57829003601f168201915b505050918352505060028201546001600160401b038082166020840152600160401b820481166040840152600160801b820481166060840152600160c01b909104811660808301526003928301541660a090910152909150815160058111156104665761046661294b565b146104a2575f8381526005830160205260409081902054905163170cc93360e21b81526104999160ff1690600401612b11565b60405180910390fd5b606081015160405163854a893f60e01b8152600481018590526001600160401b0390911660248201525f60448201526005600160991b019063ee5b48eb9073__$fd0c147b4031eef6079b0498cbafa865f0$__9063854a893f906064015f60405180830381865af4158015610519573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526105409190810190612c22565b6040518263ffffffff1660e01b815260040161055c9190612c53565b6020604051808303815f875af1158015610578573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061059c9190612c65565b50505050565b7fe92546d698950ddd38910d2e15ed1d923cd0a7b3dde9e2a6a3f380565559cb07545f805160206136468339815191529060ff16156105f457604051637fab81e560e01b815260040160405180910390fd5b6005600160991b016001600160a01b0316634213cf786040518163ffffffff1660e01b8152600401602060405180830381865afa158015610637573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061065b9190612c65565b836020013514610684576040516372b0a7e760e11b815260208401356004820152602401610499565b306106956060850160408601612a4c565b6001600160a01b0316146106d8576106b36060840160408501612a4c565b604051632f88120d60e21b81526001600160a01b039091166004820152602401610499565b5f6106e66060850185612c7c565b905090505f805b828163ffffffff16101561094e575f6107096060880188612c7c565b8363ffffffff1681811061071f5761071f612cc1565b90506020028101906107319190612cd5565b61073a90612d40565b80516040519192505f91600688019161075291612db9565b9081526020016040518091039020541461078257805160405163a41f772f60e01b81526104999190600401612c53565b5f6002885f0135846040516020016107b192919091825260e01b6001600160e01b031916602082015260240190565b60408051601f19818403018152908290526107cb91612db9565b602060405180830381855afa1580156107e6573d5f803e3d5ffd5b5050506040513d601f19601f820116820180604052508101906108099190612c65565b90508086600601835f01516040516108219190612db9565b90815260408051918290036020908101909220929092555f8381526005890190915220805460ff1916600217815582516001909101906108619082612e15565b50604082810180515f84815260058a016020529290922060028101805492516001600160401b039485166001600160c01b031990941693909317600160801b85851602176001600160c01b0316600160c01b429590951694909402939093179092556003909101805467ffffffffffffffff191690556108e19085612ee8565b82516040519195506108f291612db9565b60408051918290038220908401516001600160401b031682529082907ffe3e5983f71c8253fb0b678f2bc587aa8574d8f1aab9cf82b983777f5998392c9060200160405180910390a350508061094790612f08565b90506106ed565b506003830180546fffffffffffffffff00000000000000001916600160401b6001600160401b0384168102919091179091556001840154606491610996910460ff1683612f2a565b6001600160401b031610156109c957604051633e1a785160e01b81526001600160401b0382166004820152602401610499565b5f73__$fd0c147b4031eef6079b0498cbafa865f0$__634d8478846109ed876111ea565b604001516040518263ffffffff1660e01b8152600401610a0d9190612c53565b602060405180830381865af4158015610a28573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a4c9190612c65565b90505f73__$fd0c147b4031eef6079b0498cbafa865f0$__6387418b8e886040518263ffffffff1660e01b8152600401610a869190613078565b5f60405180830381865af4158015610aa0573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052610ac79190810190612c22565b90505f600282604051610ada9190612db9565b602060405180830381855afa158015610af5573d5f803e3d5ffd5b5050506040513d601f19601f82011682018060405250810190610b189190612c65565b9050828114610b445760405163baaea89d60e01b81526004810182905260248101849052604401610499565b5050506007909201805460ff1916600117905550505050565b610b6681611300565b505050565b5f610b7582611003565b6080015192915050565b610b876116b8565b610b905f611713565b565b610b9a6116b8565b610ba381611783565b5050565b5f610bb06116b8565b610bba8383611a68565b90505b92915050565b5f805160206136468339815191525f8073__$fd0c147b4031eef6079b0498cbafa865f0$__63021de88f610bf6866111ea565b604001516040518263ffffffff1660e01b8152600401610c169190612c53565b6040805180830381865af4158015610c30573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c54919061311b565b9150915080610c7a57604051632d07135360e01b81528115156004820152602401610499565b5f82815260048401602052604090208054610c9490612ad9565b90505f03610cb85760405163089938b360e11b815260048101839052602401610499565b60015f838152600580860160205260409091205460ff1690811115610cdf57610cdf61294b565b14610d12575f8281526005840160205260409081902054905163170cc93360e21b81526104999160ff1690600401612b11565b5f8281526004840160205260408120610d2a9161277e565b5f828152600584016020908152604091829020805460ff1916600290811782550180546001600160401b0342818116600160c01b026001600160c01b0390931692909217928390558451600160801b9093041682529181019190915283917f8629ec2bfd8d3b792ba269096bb679e08f20ba2caec0785ef663cf94788e349b910160405180910390a250505050565b5f8181527fe92546d698950ddd38910d2e15ed1d923cd0a7b3dde9e2a6a3f380565559cb046020526040902080545f805160206136468339815191529190610e0090612ad9565b90505f03610e245760405163089938b360e11b815260048101839052602401610499565b60015f838152600580840160205260409091205460ff1690811115610e4b57610e4b61294b565b14610e7e575f8281526005820160205260409081902054905163170cc93360e21b81526104999160ff1690600401612b11565b5f8281526004808301602052604091829020915163ee5b48eb60e01b81526005600160991b019263ee5b48eb92610eb5920161313c565b6020604051808303815f875af1158015610ed1573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b669190612c65565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff1615906001600160401b03165f81158015610f395750825b90505f826001600160401b03166001148015610f545750303b155b905081158015610f62575080155b15610f805760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff191660011785558315610faa57845460ff60401b1916600160401b1785555b610fb48787611fda565b8315610ffa57845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50505050505050565b61100b6127b5565b5f8281525f80516020613666833981519152602052604090819020815160e0810190925280545f80516020613646833981519152929190829060ff1660058111156110585761105861294b565b60058111156110695761106961294b565b815260200160018201805461107d90612ad9565b80601f01602080910402602001604051908101604052809291908181526020018280546110a990612ad9565b80156110f45780601f106110cb576101008083540402835291602001916110f4565b820191905f5260205f20905b8154815290600101906020018083116110d757829003601f168201915b505050918352505060028201546001600160401b038082166020840152600160401b820481166040840152600160801b820481166060840152600160c01b9091048116608083015260039092015490911660a0909101529392505050565b61115a6116b8565b6001600160a01b03811661118357604051631e4fbdf760e01b81525f6004820152602401610499565b61118c81611713565b50565b6040515f905f80516020613646833981519152907fe92546d698950ddd38910d2e15ed1d923cd0a7b3dde9e2a6a3f380565559cb06906111d290869086906131c6565b90815260200160405180910390205491505092915050565b60408051606080820183525f8083526020830152918101919091526040516306f8253560e41b815263ffffffff831660048201525f9081906005600160991b0190636f825350906024015f60405180830381865afa15801561124e573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405261127591908101906131d5565b915091508061129757604051636b2f19e960e01b815260040160405180910390fd5b8151156112bd578151604051636ba589a560e01b81526004810191909152602401610499565b60208201516001600160a01b0316156112f9576020820151604051624de75d60e31b81526001600160a01b039091166004820152602401610499565b5092915050565b5f6113096127b5565b5f805160206136468339815191525f8073__$fd0c147b4031eef6079b0498cbafa865f0$__63021de88f61133c886111ea565b604001516040518263ffffffff1660e01b815260040161135c9190612c53565b6040805180830381865af4158015611376573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061139a919061311b565b9150915080156113c157604051632d07135360e01b81528115156004820152602401610499565b5f82815260058085016020526040808320815160e08101909252805491929091839160ff909116908111156113f8576113f861294b565b60058111156114095761140961294b565b815260200160018201805461141d90612ad9565b80601f016020809104026020016040519081016040528092919081815260200182805461144990612ad9565b80156114945780601f1061146b57610100808354040283529160200191611494565b820191905f5260205f20905b81548152906001019060200180831161147757829003601f168201915b505050918352505060028201546001600160401b038082166020840152600160401b820481166040840152600160801b820481166060840152600160c01b909104811660808301526003928301541660a090910152909150815160058111156114ff576114ff61294b565b14158015611520575060018151600581111561151d5761151d61294b565b14155b1561154157805160405163170cc93360e21b81526104999190600401612b11565b6003815160058111156115565761155661294b565b036115645760048152611569565b600581525b83600601816020015160405161157f9190612db9565b90815260408051602092819003830190205f90819055858152600587810190935220825181548493839160ff19169060019084908111156115c2576115c261294b565b0217905550602082015160018201906115db9082612e15565b5060408201516002820180546060850151608086015160a08701516001600160401b039586166001600160801b031990941693909317600160401b92861692909202919091176001600160801b0316600160801b918516919091026001600160c01b031617600160c01b9184169190910217905560c0909201516003909101805467ffffffffffffffff191691909216179055805160058111156116815761168161294b565b60405184907f1c08e59656f1a18dc2da76826cdc52805c43e897a17c50faefb8ab3c1526cc16905f90a39196919550909350505050565b336116ea7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6001600160a01b031614610b905760405163118cdaa760e01b8152336004820152602401610499565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a3505050565b61178b6127b5565b5f8281525f805160206136668339815191526020526040808220815160e0810190925280545f8051602061364683398151915293929190829060ff1660058111156117d8576117d861294b565b60058111156117e9576117e961294b565b81526020016001820180546117fd90612ad9565b80601f016020809104026020016040519081016040528092919081815260200182805461182990612ad9565b80156118745780601f1061184b57610100808354040283529160200191611874565b820191905f5260205f20905b81548152906001019060200180831161185757829003601f168201915b50505091835250506002828101546001600160401b038082166020850152600160401b820481166040850152600160801b820481166060850152600160c01b9091048116608084015260039093015490921660a090910152909150815160058111156118e2576118e261294b565b14611915575f8481526005830160205260409081902054905163170cc93360e21b81526104999160ff1690600401612b11565b60038152426001600160401b031660c08201525f84815260058381016020526040909120825181548493839160ff191690600190849081111561195a5761195a61294b565b0217905550602082015160018201906119739082612e15565b5060408201516002820180546060850151608086015160a08701516001600160401b039586166001600160801b031990941693909317600160401b92861692909202919091176001600160801b0316600160801b918516919091026001600160c01b031617600160c01b9184169190910217905560c0909201516003909101805467ffffffffffffffff1916919092161790555f611a118582611ff4565b6080840151604080516001600160401b03909216825242602083015291935083925087917ffbfc4c00cddda774e9bce93712e29d12887b46526858a1afb0937cce8c30fa42910160405180910390a3509392505050565b7fe92546d698950ddd38910d2e15ed1d923cd0a7b3dde9e2a6a3f380565559cb07545f9060ff16611aac57604051637fab81e560e01b815260040160405180910390fd5b5f8051602061364683398151915242611acb6060860160408701613262565b6001600160401b0316111580611b055750611ae96202a3004261327b565b611af96060860160408701613262565b6001600160401b031610155b15611b3f57611b1a6060850160408601613262565b604051635879da1360e11b81526001600160401b039091166004820152602401610499565b60038101546001600160401b0390611b6290600160401b9004821685831661327b565b1115611b8c57604051633e1a785160e01b81526001600160401b0384166004820152602401610499565b611ba1611b9c606086018661328e565b6121cb565b611bb1611b9c608086018661328e565b6030611bc060208601866132a2565b905014611bf257611bd460208501856132a2565b6040516326475b2f60e11b8152610499925060040190815260200190565b611bfc84806132a2565b90505f03611c2957611c0e84806132a2565b604051633e08a12560e11b81526004016104999291906132e4565b5f60068201611c3886806132a2565b604051611c469291906131c6565b90815260200160405180910390205414611c7f57611c6484806132a2565b60405163a41f772f60e01b81526004016104999291906132e4565b611c89835f612334565b6040805160e08101909152815481525f90819073__$fd0c147b4031eef6079b0498cbafa865f0$__9063eb97ce519060208101611cc68a806132a2565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250505090825250602090810190611d0e908b018b6132a2565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250505090825250602001611d5760608b0160408c01613262565b6001600160401b03168152602001611d7260608b018b61328e565b611d7b906132f7565b8152602001611d8d60808b018b61328e565b611d96906132f7565b8152602001886001600160401b03168152506040518263ffffffff1660e01b8152600401611dc49190613424565b5f60405180830381865af4158015611dde573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052611e0591908101906134db565b5f82815260048601602052604090209193509150611e238282612e15565b508160068401611e3388806132a2565b604051611e419291906131c6565b9081526040519081900360200181209190915563ee5b48eb60e01b81525f906005600160991b019063ee5b48eb90611e7d908590600401612c53565b6020604051808303815f875af1158015611e99573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611ebd9190612c65565b5f8481526005860160205260409020805460ff191660011790559050611ee387806132a2565b5f858152600587016020526040902060010191611f0191908361351e565b505f83815260058501602052604090206002810180546001600160c01b0319166001600160401b038916908117600160801b91909102176001600160c01b03169055600301805467ffffffffffffffff1916905580611f6088806132a2565b604051611f6e9291906131c6565b6040518091039020847fd8a184af94a03e121609cc5f803a446236793e920c7945abc6ba355c8a30cb49898b6040016020810190611fac9190613262565b604080516001600160401b0393841681529290911660208301520160405180910390a4509095945050505050565b611fe261259e565b611feb826125e7565b610ba381612600565b5f8281525f80516020613666833981519152602052604081206002015481905f8051602061364683398151915290600160801b90046001600160401b031661203c8582612334565b5f61204687612611565b5f888152600585016020526040808220600201805467ffffffffffffffff60801b1916600160801b6001600160401b038c811691820292909217909255915163854a893f60e01b8152600481018c905291841660248301526044820152919250906005600160991b019063ee5b48eb9073__$fd0c147b4031eef6079b0498cbafa865f0$__9063854a893f906064015f60405180830381865af41580156120ef573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526121169190810190612c22565b6040518263ffffffff1660e01b81526004016121329190612c53565b6020604051808303815f875af115801561214e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906121729190612c65565b604080516001600160401b038a811682526020820184905282519394508516928b927f07de5ff35a674a8005e661f3333c907ca6333462808762d19dc7b3abb1a8c1df928290030190a3909450925050505b9250929050565b6121d86020820182612887565b63ffffffff161580156121f857506121f36020820182612c7c565b151590505b1561223f5761220a6020820182612887565b6122176020830183612c7c565b60405163c08a0f1d60e01b815263ffffffff9093166004840152602483015250604401610499565b61224c6020820182612c7c565b905061225b6020830183612887565b63ffffffff1611156122745761220a6020820182612887565b60015b6122846020830183612c7c565b9050811015610ba35761229a6020830183612c7c565b6122a56001846135d7565b8181106122b4576122b4612cc1565b90506020020160208101906122c99190612a4c565b6001600160a01b03166122df6020840184612c7c565b838181106122ef576122ef612cc1565b90506020020160208101906123049190612a4c565b6001600160a01b0316101561232c57604051630dbc8d5f60e31b815260040160405180910390fd5b600101612277565b5f805160206136468339815191525f6001600160401b0380841690851611156123685761236183856135ea565b9050612375565b61237284846135ea565b90505b60408051608081018252600284015480825260038501546001600160401b038082166020850152600160401b8204811694840194909452600160801b90049092166060820152429115806123e25750600184015481516123de916001600160401b03169061327b565b8210155b1561240a576001600160401b0380841660608301528282526040820151166020820152612429565b828160600181815161241c9190612ee8565b6001600160401b03169052505b6060810151612439906064612f2a565b602082015160018601546001600160401b0392909216916124649190600160401b900460ff16612f2a565b6001600160401b0316101561249d57606081015160405163dfae880160e01b81526001600160401b039091166004820152602401610499565b85816040018181516124af9190612ee8565b6001600160401b03169052506040810180518691906124cf9083906135ea565b6001600160401b0316905250600184015460408201516064916124fd91600160401b90910460ff1690612f2a565b6001600160401b03161015612536576040808201519051633e1a785160e01b81526001600160401b039091166004820152602401610499565b8051600285015560208101516003909401805460408301516060909301516001600160401b03908116600160801b0267ffffffffffffffff60801b19948216600160401b026001600160801b0319909316919097161717919091169390931790925550505050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054600160401b900460ff16610b9057604051631afcd79f60e31b815260040160405180910390fd5b6125ef61259e565b6125f7612686565b61118c8161268e565b61260861259e565b61118c81612776565b5f8181525f805160206136668339815191526020526040812060020180545f80516020613646833981519152919060089061265b90600160401b90046001600160401b031661360a565b91906101000a8154816001600160401b0302191690836001600160401b031602179055915050919050565b610b9061259e565b61269661259e565b80355f8051602061364683398151915290815560146126bb6060840160408501613625565b60ff1611806126da57506126d56060830160408401613625565b60ff16155b1561270e576126ef6060830160408401613625565b604051634a59bbff60e11b815260ff9091166004820152602401610499565b61271e6060830160408401613625565b60018201805460ff92909216600160401b0260ff60401b1990921691909117905561274f6040830160208401613262565b600191909101805467ffffffffffffffff19166001600160401b0390921691909117905550565b61115a61259e565b50805461278a90612ad9565b5f825580601f10612799575050565b601f0160209004905f5260205f209081019061118c91906127f2565b6040805160e08101909152805f81526060602082018190525f604083018190529082018190526080820181905260a0820181905260c09091015290565b5b80821115612806575f81556001016127f3565b5090565b5f6020828403121561281a575f80fd5b5035919050565b803563ffffffff81168114612834575f80fd5b919050565b5f806040838503121561284a575f80fd5b82356001600160401b0381111561285f575f80fd5b830160808186031215612870575f80fd5b915061287e60208401612821565b90509250929050565b5f60208284031215612897575f80fd5b610bba82612821565b80356001600160401b0381168114612834575f80fd5b5f80604083850312156128c7575f80fd5b82356001600160401b038111156128dc575f80fd5b830160a081860312156128ed575f80fd5b915061287e602084016128a0565b6001600160a01b038116811461118c575f80fd5b5f808284036080811215612921575f80fd5b606081121561292e575f80fd5b508291506060830135612940816128fb565b809150509250929050565b634e487b7160e01b5f52602160045260245ffd5b6006811061297b57634e487b7160e01b5f52602160045260245ffd5b9052565b5f5b83811015612999578181015183820152602001612981565b50505f910152565b5f81518084526129b881602086016020860161297f565b601f01601f19169290920160200192915050565b602081526129de60208201835161295f565b5f602083015160e060408401526129f96101008401826129a1565b905060408401516001600160401b0380821660608601528060608701511660808601528060808701511660a08601528060a08701511660c08601528060c08701511660e086015250508091505092915050565b5f60208284031215612a5c575f80fd5b8135612a67816128fb565b9392505050565b5f8060208385031215612a7f575f80fd5b82356001600160401b0380821115612a95575f80fd5b818501915085601f830112612aa8575f80fd5b813581811115612ab6575f80fd5b866020828501011115612ac7575f80fd5b60209290920196919550909350505050565b600181811c90821680612aed57607f821691505b602082108103612b0b57634e487b7160e01b5f52602260045260245ffd5b50919050565b60208101610bbd828461295f565b634e487b7160e01b5f52604160045260245ffd5b604051606081016001600160401b0381118282101715612b5557612b55612b1f565b60405290565b604080519081016001600160401b0381118282101715612b5557612b55612b1f565b604051601f8201601f191681016001600160401b0381118282101715612ba557612ba5612b1f565b604052919050565b5f6001600160401b03821115612bc557612bc5612b1f565b50601f01601f191660200190565b5f82601f830112612be2575f80fd5b8151612bf5612bf082612bad565b612b7d565b818152846020838601011115612c09575f80fd5b612c1a82602083016020870161297f565b949350505050565b5f60208284031215612c32575f80fd5b81516001600160401b03811115612c47575f80fd5b612c1a84828501612bd3565b602081525f610bba60208301846129a1565b5f60208284031215612c75575f80fd5b5051919050565b5f808335601e19843603018112612c91575f80fd5b8301803591506001600160401b03821115612caa575f80fd5b6020019150600581901b36038213156121c4575f80fd5b634e487b7160e01b5f52603260045260245ffd5b5f8235605e19833603018112612ce9575f80fd5b9190910192915050565b5f82601f830112612d02575f80fd5b8135612d10612bf082612bad565b818152846020838601011115612d24575f80fd5b816020850160208301375f918101602001919091529392505050565b5f60608236031215612d50575f80fd5b612d58612b33565b82356001600160401b0380821115612d6e575f80fd5b612d7a36838701612cf3565b83526020850135915080821115612d8f575f80fd5b50612d9c36828601612cf3565b602083015250612dae604084016128a0565b604082015292915050565b5f8251612ce981846020870161297f565b601f821115610b6657805f5260205f20601f840160051c81016020851015612def5750805b601f840160051c820191505b81811015612e0e575f8155600101612dfb565b5050505050565b81516001600160401b03811115612e2e57612e2e612b1f565b612e4281612e3c8454612ad9565b84612dca565b602080601f831160018114612e75575f8415612e5e5750858301515b5f19600386901b1c1916600185901b178555612ecc565b5f85815260208120601f198616915b82811015612ea357888601518255948401946001909101908401612e84565b5085821015612ec057878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b634e487b7160e01b5f52601160045260245ffd5b6001600160401b038181168382160190808211156112f9576112f9612ed4565b5f63ffffffff808316818103612f2057612f20612ed4565b6001019392505050565b6001600160401b03818116838216028082169190828114612f4d57612f4d612ed4565b505092915050565b5f808335601e19843603018112612f6a575f80fd5b83016020810192503590506001600160401b03811115612f88575f80fd5b8036038213156121c4575f80fd5b81835281816020850137505f828201602090810191909152601f909101601f19169091010190565b5f8383855260208086019550808560051b830101845f5b8781101561306b57848303601f19018952813536889003605e19018112612ffa575f80fd5b870160606130088280612f55565b8287526130188388018284612f96565b9250505061302886830183612f55565b8683038888015261303a838284612f96565b9250505060406001600160401b036130538285016128a0565b16950194909452509783019790830190600101612fd5565b5090979650505050505050565b6020815281356020820152602082013560408201525f604083013561309c816128fb565b6001600160a01b031660608381019190915283013536849003601e190181126130c3575f80fd5b83016020810190356001600160401b038111156130de575f80fd5b8060051b36038213156130ef575f80fd5b60808085015261310360a085018284612fbe565b95945050505050565b80518015158114612834575f80fd5b5f806040838503121561312c575f80fd5b8251915061287e6020840161310c565b5f60208083525f845461314e81612ad9565b806020870152604060018084165f811461316f576001811461318b576131b8565b60ff19851660408a0152604084151560051b8a010195506131b8565b895f5260205f205f5b858110156131af5781548b8201860152908301908801613194565b8a016040019650505b509398975050505050505050565b818382375f9101908152919050565b5f80604083850312156131e6575f80fd5b82516001600160401b03808211156131fc575f80fd5b908401906060828703121561320f575f80fd5b613217612b33565b825181526020830151613229816128fb565b602082015260408301518281111561323f575f80fd5b61324b88828601612bd3565b604083015250935061287e9150506020840161310c565b5f60208284031215613272575f80fd5b610bba826128a0565b80820180821115610bbd57610bbd612ed4565b5f8235603e19833603018112612ce9575f80fd5b5f808335601e198436030181126132b7575f80fd5b8301803591506001600160401b038211156132d0575f80fd5b6020019150368190038213156121c4575f80fd5b602081525f612c1a602083018486612f96565b5f60408236031215613307575f80fd5b61330f612b5b565b61331883612821565b81526020808401356001600160401b0380821115613334575f80fd5b9085019036601f830112613346575f80fd5b81358181111561335857613358612b1f565b8060051b9150613369848301612b7d565b8181529183018401918481019036841115613382575f80fd5b938501935b838510156133ac578435925061339c836128fb565b8282529385019390850190613387565b94860194909452509295945050505050565b5f6040830163ffffffff8351168452602080840151604060208701528281518085526060880191506020830194505f92505b808310156134195784516001600160a01b031682529383019360019290920191908301906133f0565b509695505050505050565b60208152815160208201525f602083015160e0604084015261344a6101008401826129a1565b90506040840151601f198085840301606086015261346883836129a1565b92506001600160401b03606087015116608086015260808601519150808584030160a086015261349883836133be565b925060a08601519150808584030160c0860152506134b682826133be565b91505060c08401516134d360e08501826001600160401b03169052565b509392505050565b5f80604083850312156134ec575f80fd5b8251915060208301516001600160401b03811115613508575f80fd5b61351485828601612bd3565b9150509250929050565b6001600160401b0383111561353557613535612b1f565b613549836135438354612ad9565b83612dca565b5f601f84116001811461357a575f85156135635750838201355b5f19600387901b1c1916600186901b178355612e0e565b5f83815260208120601f198716915b828110156135a95786850135825560209485019460019092019101613589565b50868210156135c5575f1960f88860031b161c19848701351681555b505060018560011b0183555050505050565b81810381811115610bbd57610bbd612ed4565b6001600160401b038281168282160390808211156112f9576112f9612ed4565b5f6001600160401b03808316818103612f2057612f20612ed4565b5f60208284031215613635575f80fd5b813560ff81168114612a67575f80fdfee92546d698950ddd38910d2e15ed1d923cd0a7b3dde9e2a6a3f380565559cb00e92546d698950ddd38910d2e15ed1d923cd0a7b3dde9e2a6a3f380565559cb05a26469706673582212204d1f238a89dfc49f99b9821e969b63baa8b0adcda7b653790ff31499db8db81364736f6c63430008190033", + ABI: "[{\"inputs\":[{\"internalType\":\"enumICMInitializable\",\"name\":\"init\",\"type\":\"uint8\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"}],\"name\":\"InvalidBLSKeyLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"encodedConversionID\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"expectedConversionID\",\"type\":\"bytes32\"}],\"name\":\"InvalidConversionID\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitializationStatus\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"maximumChurnPercentage\",\"type\":\"uint8\"}],\"name\":\"InvalidMaximumChurnPercentage\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"nodeID\",\"type\":\"bytes\"}],\"name\":\"InvalidNodeID\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"threshold\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"addressesLength\",\"type\":\"uint256\"}],\"name\":\"InvalidPChainOwnerThreshold\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"registrationExpiry\",\"type\":\"uint64\"}],\"name\":\"InvalidRegistrationExpiry\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"weight\",\"type\":\"uint64\"}],\"name\":\"InvalidTotalWeight\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"}],\"name\":\"InvalidValidationID\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"validatorManagerAddress\",\"type\":\"address\"}],\"name\":\"InvalidValidatorManagerAddress\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"blockchainID\",\"type\":\"bytes32\"}],\"name\":\"InvalidValidatorManagerBlockchainID\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"enumValidatorStatus\",\"name\":\"status\",\"type\":\"uint8\"}],\"name\":\"InvalidValidatorStatus\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidWarpMessage\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"senderAddress\",\"type\":\"address\"}],\"name\":\"InvalidWarpOriginSenderAddress\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"sourceChainID\",\"type\":\"bytes32\"}],\"name\":\"InvalidWarpSourceChainID\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"churnAmount\",\"type\":\"uint64\"}],\"name\":\"MaxChurnRateExceeded\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"nodeID\",\"type\":\"bytes\"}],\"name\":\"NodeAlreadyRegistered\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"PChainOwnerAddressesNotSorted\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"validRegistration\",\"type\":\"bool\"}],\"name\":\"UnexpectedRegistrationStatus\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes\",\"name\":\"nodeID\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"weight\",\"type\":\"uint64\"}],\"name\":\"InitialValidatorCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes\",\"name\":\"nodeID\",\"type\":\"bytes\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"registerValidationMessageID\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"weight\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"registrationExpiry\",\"type\":\"uint64\"}],\"name\":\"ValidationPeriodCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"enumValidatorStatus\",\"name\":\"status\",\"type\":\"uint8\"}],\"name\":\"ValidationPeriodEnded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"weight\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"name\":\"ValidationPeriodRegistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"setWeightMessageID\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"weight\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"endTime\",\"type\":\"uint256\"}],\"name\":\"ValidatorRemovalInitialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"weight\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"setWeightMessageID\",\"type\":\"bytes32\"}],\"name\":\"ValidatorWeightUpdate\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"ADDRESS_LENGTH\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"BLS_PUBLIC_KEY_LENGTH\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MAXIMUM_CHURN_PERCENTAGE_LIMIT\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MAXIMUM_REGISTRATION_EXPIRY_LENGTH\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"P_CHAIN_BLOCKCHAIN_ID\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"VALIDATOR_MANAGER_STORAGE_LOCATION\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"WARP_MESSENGER\",\"outputs\":[{\"internalType\":\"contractIWarpMessenger\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"messageIndex\",\"type\":\"uint32\"}],\"name\":\"completeEndValidation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"messageIndex\",\"type\":\"uint32\"}],\"name\":\"completeValidatorRegistration\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"}],\"name\":\"getValidator\",\"outputs\":[{\"components\":[{\"internalType\":\"enumValidatorStatus\",\"name\":\"status\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"nodeID\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"startingWeight\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"messageNonce\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"weight\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"startedAt\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"endedAt\",\"type\":\"uint64\"}],\"internalType\":\"structValidator\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"l1ID\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"churnPeriodSeconds\",\"type\":\"uint64\"},{\"internalType\":\"uint8\",\"name\":\"maximumChurnPercentage\",\"type\":\"uint8\"}],\"internalType\":\"structValidatorManagerSettings\",\"name\":\"settings\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"initialOwner\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"}],\"name\":\"initializeEndValidation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"nodeID\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"blsPublicKey\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"registrationExpiry\",\"type\":\"uint64\"},{\"components\":[{\"internalType\":\"uint32\",\"name\":\"threshold\",\"type\":\"uint32\"},{\"internalType\":\"address[]\",\"name\":\"addresses\",\"type\":\"address[]\"}],\"internalType\":\"structPChainOwner\",\"name\":\"remainingBalanceOwner\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint32\",\"name\":\"threshold\",\"type\":\"uint32\"},{\"internalType\":\"address[]\",\"name\":\"addresses\",\"type\":\"address[]\"}],\"internalType\":\"structPChainOwner\",\"name\":\"disableOwner\",\"type\":\"tuple\"}],\"internalType\":\"structValidatorRegistrationInput\",\"name\":\"registrationInput\",\"type\":\"tuple\"},{\"internalType\":\"uint64\",\"name\":\"weight\",\"type\":\"uint64\"}],\"name\":\"initializeValidatorRegistration\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"l1ID\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"validatorManagerBlockchainID\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"validatorManagerAddress\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"bytes\",\"name\":\"nodeID\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"blsPublicKey\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"weight\",\"type\":\"uint64\"}],\"internalType\":\"structInitialValidator[]\",\"name\":\"initialValidators\",\"type\":\"tuple[]\"}],\"internalType\":\"structConversionData\",\"name\":\"conversionData\",\"type\":\"tuple\"},{\"internalType\":\"uint32\",\"name\":\"messageIndex\",\"type\":\"uint32\"}],\"name\":\"initializeValidatorSet\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"nodeID\",\"type\":\"bytes\"}],\"name\":\"registeredValidators\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"}],\"name\":\"resendEndValidatorMessage\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"validationID\",\"type\":\"bytes32\"}],\"name\":\"resendRegisterValidatorMessage\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]", + Bin: "0x608060405234801561000f575f80fd5b506040516137d63803806137d683398101604081905261002e91610107565b60018160018111156100425761004261012c565b0361004f5761004f610055565b50610140565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff16156100a55760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b03908116146101045780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b5f60208284031215610117575f80fd5b815160028110610125575f80fd5b9392505050565b634e487b7160e01b5f52602160045260245ffd5b6136898061014d5f395ff3fe608060405234801561000f575f80fd5b5060043610610127575f3560e01c8063a3a65e48116100a9578063d588c18f1161006e578063d588c18f14610279578063d5f20ff61461028c578063df93d8de146102ac578063f2fde38b146102ce578063fd7ac5e7146102e1575f80fd5b8063a3a65e4814610229578063b771b3bc1461023c578063bc5fbfec1461024a578063bee0a03f1461025e578063c974d1b614610271575f80fd5b8063732214f8116100ef578063732214f8146101905780638280a25a146101a55780638da5cb5b146101bf57806397fb70d4146102035780639ba96b8614610216575f80fd5b80630322ed981461012b57806320d91b7a14610140578063467ef06f1461015357806360305d6214610166578063715018a614610188575b5f80fd5b61013e6101393660046127d8565b6102f4565b005b61013e61014e366004612807565b610584565b61013e610161366004612855565b610b3f565b61016e601481565b60405163ffffffff90911681526020015b60405180910390f35b61013e610b4d565b6101975f81565b60405190815260200161017f565b6101ad603081565b60405160ff909116815260200161017f565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b03165b6040516001600160a01b03909116815260200161017f565b61013e6102113660046127d8565b610b60565b610197610224366004612884565b610b75565b61013e610237366004612855565b610b91565b6101eb6005600160991b0181565b6101975f8051602061361483398151915281565b61013e61026c3660046127d8565b610d87565b6101ad601481565b61013e6102873660046128dd565b610ec3565b61029f61029a3660046127d8565b610fd1565b60405161017f919061299a565b6102b66202a30081565b6040516001600160401b03909116815260200161017f565b61013e6102dc366004612a1a565b611120565b6101976102ef366004612a3c565b61115d565b5f8181525f805160206136348339815191526020526040808220815160e0810190925280545f8051602061361483398151915293929190829060ff16600581111561034157610341612919565b600581111561035257610352612919565b815260200160018201805461036690612aa7565b80601f016020809104026020016040519081016040528092919081815260200182805461039290612aa7565b80156103dd5780601f106103b4576101008083540402835291602001916103dd565b820191905f5260205f20905b8154815290600101906020018083116103c057829003601f168201915b505050918352505060028201546001600160401b038082166020840152600160401b820481166040840152600160801b820481166060840152600160c01b909104811660808301526003928301541660a0909101529091508151600581111561044857610448612919565b14610484575f8381526005830160205260409081902054905163170cc93360e21b815261047b9160ff1690600401612adf565b60405180910390fd5b606081015160405163854a893f60e01b8152600481018590526001600160401b0390911660248201525f60448201526005600160991b019063ee5b48eb9073__$fd0c147b4031eef6079b0498cbafa865f0$__9063854a893f906064015f60405180830381865af41580156104fb573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526105229190810190612bf0565b6040518263ffffffff1660e01b815260040161053e9190612c21565b6020604051808303815f875af115801561055a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061057e9190612c33565b50505050565b7fe92546d698950ddd38910d2e15ed1d923cd0a7b3dde9e2a6a3f380565559cb07545f805160206136148339815191529060ff16156105d657604051637fab81e560e01b815260040160405180910390fd5b6005600160991b016001600160a01b0316634213cf786040518163ffffffff1660e01b8152600401602060405180830381865afa158015610619573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061063d9190612c33565b836020013514610666576040516372b0a7e760e11b81526020840135600482015260240161047b565b306106776060850160408601612a1a565b6001600160a01b0316146106ba576106956060840160408501612a1a565b604051632f88120d60e21b81526001600160a01b03909116600482015260240161047b565b5f6106c86060850185612c4a565b905090505f805b828163ffffffff161015610930575f6106eb6060880188612c4a565b8363ffffffff1681811061070157610701612c8f565b90506020028101906107139190612ca3565b61071c90612d0e565b80516040519192505f91600688019161073491612d87565b9081526020016040518091039020541461076457805160405163a41f772f60e01b815261047b9190600401612c21565b5f6002885f01358460405160200161079392919091825260e01b6001600160e01b031916602082015260240190565b60408051601f19818403018152908290526107ad91612d87565b602060405180830381855afa1580156107c8573d5f803e3d5ffd5b5050506040513d601f19601f820116820180604052508101906107eb9190612c33565b90508086600601835f01516040516108039190612d87565b90815260408051918290036020908101909220929092555f8381526005890190915220805460ff1916600217815582516001909101906108439082612de3565b50604082810180515f84815260058a016020529290922060028101805492516001600160401b039485166001600160c01b031990941693909317600160801b85851602176001600160c01b0316600160c01b429590951694909402939093179092556003909101805467ffffffffffffffff191690556108c39085612eb6565b82516040519195506108d491612d87565b60408051918290038220908401516001600160401b031682529082907ffe3e5983f71c8253fb0b678f2bc587aa8574d8f1aab9cf82b983777f5998392c9060200160405180910390a350508061092990612ed6565b90506106cf565b506003830180546fffffffffffffffff00000000000000001916600160401b6001600160401b0384168102919091179091556001840154606491610978910460ff1683612ef8565b6001600160401b031610156109ab57604051633e1a785160e01b81526001600160401b038216600482015260240161047b565b5f73__$fd0c147b4031eef6079b0498cbafa865f0$__634d8478846109cf876111b8565b604001516040518263ffffffff1660e01b81526004016109ef9190612c21565b602060405180830381865af4158015610a0a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a2e9190612c33565b90505f73__$fd0c147b4031eef6079b0498cbafa865f0$__6387418b8e886040518263ffffffff1660e01b8152600401610a689190613046565b5f60405180830381865af4158015610a82573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052610aa99190810190612bf0565b90505f600282604051610abc9190612d87565b602060405180830381855afa158015610ad7573d5f803e3d5ffd5b5050506040513d601f19601f82011682018060405250810190610afa9190612c33565b9050828114610b265760405163baaea89d60e01b8152600481018290526024810184905260440161047b565b5050506007909201805460ff1916600117905550505050565b610b48816112ce565b505050565b610b55611686565b610b5e5f6116e1565b565b610b68611686565b610b7181611751565b5050565b5f610b7e611686565b610b888383611a36565b90505b92915050565b5f805160206136148339815191525f8073__$fd0c147b4031eef6079b0498cbafa865f0$__63021de88f610bc4866111b8565b604001516040518263ffffffff1660e01b8152600401610be49190612c21565b6040805180830381865af4158015610bfe573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c2291906130e9565b9150915080610c4857604051632d07135360e01b8152811515600482015260240161047b565b5f82815260048401602052604090208054610c6290612aa7565b90505f03610c865760405163089938b360e11b81526004810183905260240161047b565b60015f838152600580860160205260409091205460ff1690811115610cad57610cad612919565b14610ce0575f8281526005840160205260409081902054905163170cc93360e21b815261047b9160ff1690600401612adf565b5f8281526004840160205260408120610cf89161274c565b5f828152600584016020908152604091829020805460ff1916600290811782550180546001600160401b0342818116600160c01b026001600160c01b0390931692909217928390558451600160801b9093041682529181019190915283917f8629ec2bfd8d3b792ba269096bb679e08f20ba2caec0785ef663cf94788e349b910160405180910390a250505050565b5f8181527fe92546d698950ddd38910d2e15ed1d923cd0a7b3dde9e2a6a3f380565559cb046020526040902080545f805160206136148339815191529190610dce90612aa7565b90505f03610df25760405163089938b360e11b81526004810183905260240161047b565b60015f838152600580840160205260409091205460ff1690811115610e1957610e19612919565b14610e4c575f8281526005820160205260409081902054905163170cc93360e21b815261047b9160ff1690600401612adf565b5f8281526004808301602052604091829020915163ee5b48eb60e01b81526005600160991b019263ee5b48eb92610e83920161310a565b6020604051808303815f875af1158015610e9f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b489190612c33565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff1615906001600160401b03165f81158015610f075750825b90505f826001600160401b03166001148015610f225750303b155b905081158015610f30575080155b15610f4e5760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff191660011785558315610f7857845460ff60401b1916600160401b1785555b610f828787611fa8565b8315610fc857845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50505050505050565b610fd9612783565b5f8281525f80516020613634833981519152602052604090819020815160e0810190925280545f80516020613614833981519152929190829060ff16600581111561102657611026612919565b600581111561103757611037612919565b815260200160018201805461104b90612aa7565b80601f016020809104026020016040519081016040528092919081815260200182805461107790612aa7565b80156110c25780601f10611099576101008083540402835291602001916110c2565b820191905f5260205f20905b8154815290600101906020018083116110a557829003601f168201915b505050918352505060028201546001600160401b038082166020840152600160401b820481166040840152600160801b820481166060840152600160c01b9091048116608083015260039092015490911660a0909101529392505050565b611128611686565b6001600160a01b03811661115157604051631e4fbdf760e01b81525f600482015260240161047b565b61115a816116e1565b50565b6040515f905f80516020613614833981519152907fe92546d698950ddd38910d2e15ed1d923cd0a7b3dde9e2a6a3f380565559cb06906111a09086908690613194565b90815260200160405180910390205491505092915050565b60408051606080820183525f8083526020830152918101919091526040516306f8253560e41b815263ffffffff831660048201525f9081906005600160991b0190636f825350906024015f60405180830381865afa15801561121c573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405261124391908101906131a3565b915091508061126557604051636b2f19e960e01b815260040160405180910390fd5b81511561128b578151604051636ba589a560e01b8152600481019190915260240161047b565b60208201516001600160a01b0316156112c7576020820151604051624de75d60e31b81526001600160a01b03909116600482015260240161047b565b5092915050565b5f6112d7612783565b5f805160206136148339815191525f8073__$fd0c147b4031eef6079b0498cbafa865f0$__63021de88f61130a886111b8565b604001516040518263ffffffff1660e01b815260040161132a9190612c21565b6040805180830381865af4158015611344573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061136891906130e9565b91509150801561138f57604051632d07135360e01b8152811515600482015260240161047b565b5f82815260058085016020526040808320815160e08101909252805491929091839160ff909116908111156113c6576113c6612919565b60058111156113d7576113d7612919565b81526020016001820180546113eb90612aa7565b80601f016020809104026020016040519081016040528092919081815260200182805461141790612aa7565b80156114625780601f1061143957610100808354040283529160200191611462565b820191905f5260205f20905b81548152906001019060200180831161144557829003601f168201915b505050918352505060028201546001600160401b038082166020840152600160401b820481166040840152600160801b820481166060840152600160c01b909104811660808301526003928301541660a090910152909150815160058111156114cd576114cd612919565b141580156114ee57506001815160058111156114eb576114eb612919565b14155b1561150f57805160405163170cc93360e21b815261047b9190600401612adf565b60038151600581111561152457611524612919565b036115325760048152611537565b600581525b83600601816020015160405161154d9190612d87565b90815260408051602092819003830190205f90819055858152600587810190935220825181548493839160ff191690600190849081111561159057611590612919565b0217905550602082015160018201906115a99082612de3565b5060408201516002820180546060850151608086015160a08701516001600160401b039586166001600160801b031990941693909317600160401b92861692909202919091176001600160801b0316600160801b918516919091026001600160c01b031617600160c01b9184169190910217905560c0909201516003909101805467ffffffffffffffff1916919092161790558051600581111561164f5761164f612919565b60405184907f1c08e59656f1a18dc2da76826cdc52805c43e897a17c50faefb8ab3c1526cc16905f90a39196919550909350505050565b336116b87f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6001600160a01b031614610b5e5760405163118cdaa760e01b815233600482015260240161047b565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a3505050565b611759612783565b5f8281525f805160206136348339815191526020526040808220815160e0810190925280545f8051602061361483398151915293929190829060ff1660058111156117a6576117a6612919565b60058111156117b7576117b7612919565b81526020016001820180546117cb90612aa7565b80601f01602080910402602001604051908101604052809291908181526020018280546117f790612aa7565b80156118425780601f1061181957610100808354040283529160200191611842565b820191905f5260205f20905b81548152906001019060200180831161182557829003601f168201915b50505091835250506002828101546001600160401b038082166020850152600160401b820481166040850152600160801b820481166060850152600160c01b9091048116608084015260039093015490921660a090910152909150815160058111156118b0576118b0612919565b146118e3575f8481526005830160205260409081902054905163170cc93360e21b815261047b9160ff1690600401612adf565b60038152426001600160401b031660c08201525f84815260058381016020526040909120825181548493839160ff191690600190849081111561192857611928612919565b0217905550602082015160018201906119419082612de3565b5060408201516002820180546060850151608086015160a08701516001600160401b039586166001600160801b031990941693909317600160401b92861692909202919091176001600160801b0316600160801b918516919091026001600160c01b031617600160c01b9184169190910217905560c0909201516003909101805467ffffffffffffffff1916919092161790555f6119df8582611fc2565b6080840151604080516001600160401b03909216825242602083015291935083925087917ffbfc4c00cddda774e9bce93712e29d12887b46526858a1afb0937cce8c30fa42910160405180910390a3509392505050565b7fe92546d698950ddd38910d2e15ed1d923cd0a7b3dde9e2a6a3f380565559cb07545f9060ff16611a7a57604051637fab81e560e01b815260040160405180910390fd5b5f8051602061361483398151915242611a996060860160408701613230565b6001600160401b0316111580611ad35750611ab76202a30042613249565b611ac76060860160408701613230565b6001600160401b031610155b15611b0d57611ae86060850160408601613230565b604051635879da1360e11b81526001600160401b03909116600482015260240161047b565b60038101546001600160401b0390611b3090600160401b90048216858316613249565b1115611b5a57604051633e1a785160e01b81526001600160401b038416600482015260240161047b565b611b6f611b6a606086018661325c565b612199565b611b7f611b6a608086018661325c565b6030611b8e6020860186613270565b905014611bc057611ba26020850185613270565b6040516326475b2f60e11b815261047b925060040190815260200190565b611bca8480613270565b90505f03611bf757611bdc8480613270565b604051633e08a12560e11b815260040161047b9291906132b2565b5f60068201611c068680613270565b604051611c14929190613194565b90815260200160405180910390205414611c4d57611c328480613270565b60405163a41f772f60e01b815260040161047b9291906132b2565b611c57835f612302565b6040805160e08101909152815481525f90819073__$fd0c147b4031eef6079b0498cbafa865f0$__9063eb97ce519060208101611c948a80613270565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250505090825250602090810190611cdc908b018b613270565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250505090825250602001611d2560608b0160408c01613230565b6001600160401b03168152602001611d4060608b018b61325c565b611d49906132c5565b8152602001611d5b60808b018b61325c565b611d64906132c5565b8152602001886001600160401b03168152506040518263ffffffff1660e01b8152600401611d9291906133f2565b5f60405180830381865af4158015611dac573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052611dd391908101906134a9565b5f82815260048601602052604090209193509150611df18282612de3565b508160068401611e018880613270565b604051611e0f929190613194565b9081526040519081900360200181209190915563ee5b48eb60e01b81525f906005600160991b019063ee5b48eb90611e4b908590600401612c21565b6020604051808303815f875af1158015611e67573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611e8b9190612c33565b5f8481526005860160205260409020805460ff191660011790559050611eb18780613270565b5f858152600587016020526040902060010191611ecf9190836134ec565b505f83815260058501602052604090206002810180546001600160c01b0319166001600160401b038916908117600160801b91909102176001600160c01b03169055600301805467ffffffffffffffff1916905580611f2e8880613270565b604051611f3c929190613194565b6040518091039020847fd8a184af94a03e121609cc5f803a446236793e920c7945abc6ba355c8a30cb49898b6040016020810190611f7a9190613230565b604080516001600160401b0393841681529290911660208301520160405180910390a4509095945050505050565b611fb061256c565b611fb9826125b5565b610b71816125ce565b5f8281525f80516020613634833981519152602052604081206002015481905f8051602061361483398151915290600160801b90046001600160401b031661200a8582612302565b5f612014876125df565b5f888152600585016020526040808220600201805467ffffffffffffffff60801b1916600160801b6001600160401b038c811691820292909217909255915163854a893f60e01b8152600481018c905291841660248301526044820152919250906005600160991b019063ee5b48eb9073__$fd0c147b4031eef6079b0498cbafa865f0$__9063854a893f906064015f60405180830381865af41580156120bd573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526120e49190810190612bf0565b6040518263ffffffff1660e01b81526004016121009190612c21565b6020604051808303815f875af115801561211c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906121409190612c33565b604080516001600160401b038a811682526020820184905282519394508516928b927f07de5ff35a674a8005e661f3333c907ca6333462808762d19dc7b3abb1a8c1df928290030190a3909450925050505b9250929050565b6121a66020820182612855565b63ffffffff161580156121c657506121c16020820182612c4a565b151590505b1561220d576121d86020820182612855565b6121e56020830183612c4a565b60405163c08a0f1d60e01b815263ffffffff909316600484015260248301525060440161047b565b61221a6020820182612c4a565b90506122296020830183612855565b63ffffffff161115612242576121d86020820182612855565b60015b6122526020830183612c4a565b9050811015610b71576122686020830183612c4a565b6122736001846135a5565b81811061228257612282612c8f565b90506020020160208101906122979190612a1a565b6001600160a01b03166122ad6020840184612c4a565b838181106122bd576122bd612c8f565b90506020020160208101906122d29190612a1a565b6001600160a01b031610156122fa57604051630dbc8d5f60e31b815260040160405180910390fd5b600101612245565b5f805160206136148339815191525f6001600160401b0380841690851611156123365761232f83856135b8565b9050612343565b61234084846135b8565b90505b60408051608081018252600284015480825260038501546001600160401b038082166020850152600160401b8204811694840194909452600160801b90049092166060820152429115806123b05750600184015481516123ac916001600160401b031690613249565b8210155b156123d8576001600160401b03808416606083015282825260408201511660208201526123f7565b82816060018181516123ea9190612eb6565b6001600160401b03169052505b6060810151612407906064612ef8565b602082015160018601546001600160401b0392909216916124329190600160401b900460ff16612ef8565b6001600160401b0316101561246b57606081015160405163dfae880160e01b81526001600160401b03909116600482015260240161047b565b858160400181815161247d9190612eb6565b6001600160401b031690525060408101805186919061249d9083906135b8565b6001600160401b0316905250600184015460408201516064916124cb91600160401b90910460ff1690612ef8565b6001600160401b03161015612504576040808201519051633e1a785160e01b81526001600160401b03909116600482015260240161047b565b8051600285015560208101516003909401805460408301516060909301516001600160401b03908116600160801b0267ffffffffffffffff60801b19948216600160401b026001600160801b0319909316919097161717919091169390931790925550505050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054600160401b900460ff16610b5e57604051631afcd79f60e31b815260040160405180910390fd5b6125bd61256c565b6125c5612654565b61115a8161265c565b6125d661256c565b61115a81612744565b5f8181525f805160206136348339815191526020526040812060020180545f80516020613614833981519152919060089061262990600160401b90046001600160401b03166135d8565b91906101000a8154816001600160401b0302191690836001600160401b031602179055915050919050565b610b5e61256c565b61266461256c565b80355f80516020613614833981519152908155601461268960608401604085016135f3565b60ff1611806126a857506126a360608301604084016135f3565b60ff16155b156126dc576126bd60608301604084016135f3565b604051634a59bbff60e11b815260ff909116600482015260240161047b565b6126ec60608301604084016135f3565b60018201805460ff92909216600160401b0260ff60401b1990921691909117905561271d6040830160208401613230565b600191909101805467ffffffffffffffff19166001600160401b0390921691909117905550565b61112861256c565b50805461275890612aa7565b5f825580601f10612767575050565b601f0160209004905f5260205f209081019061115a91906127c0565b6040805160e08101909152805f81526060602082018190525f604083018190529082018190526080820181905260a0820181905260c09091015290565b5b808211156127d4575f81556001016127c1565b5090565b5f602082840312156127e8575f80fd5b5035919050565b803563ffffffff81168114612802575f80fd5b919050565b5f8060408385031215612818575f80fd5b82356001600160401b0381111561282d575f80fd5b83016080818603121561283e575f80fd5b915061284c602084016127ef565b90509250929050565b5f60208284031215612865575f80fd5b610b88826127ef565b80356001600160401b0381168114612802575f80fd5b5f8060408385031215612895575f80fd5b82356001600160401b038111156128aa575f80fd5b830160a081860312156128bb575f80fd5b915061284c6020840161286e565b6001600160a01b038116811461115a575f80fd5b5f8082840360808112156128ef575f80fd5b60608112156128fc575f80fd5b50829150606083013561290e816128c9565b809150509250929050565b634e487b7160e01b5f52602160045260245ffd5b6006811061294957634e487b7160e01b5f52602160045260245ffd5b9052565b5f5b8381101561296757818101518382015260200161294f565b50505f910152565b5f815180845261298681602086016020860161294d565b601f01601f19169290920160200192915050565b602081526129ac60208201835161292d565b5f602083015160e060408401526129c761010084018261296f565b905060408401516001600160401b0380821660608601528060608701511660808601528060808701511660a08601528060a08701511660c08601528060c08701511660e086015250508091505092915050565b5f60208284031215612a2a575f80fd5b8135612a35816128c9565b9392505050565b5f8060208385031215612a4d575f80fd5b82356001600160401b0380821115612a63575f80fd5b818501915085601f830112612a76575f80fd5b813581811115612a84575f80fd5b866020828501011115612a95575f80fd5b60209290920196919550909350505050565b600181811c90821680612abb57607f821691505b602082108103612ad957634e487b7160e01b5f52602260045260245ffd5b50919050565b60208101610b8b828461292d565b634e487b7160e01b5f52604160045260245ffd5b604051606081016001600160401b0381118282101715612b2357612b23612aed565b60405290565b604080519081016001600160401b0381118282101715612b2357612b23612aed565b604051601f8201601f191681016001600160401b0381118282101715612b7357612b73612aed565b604052919050565b5f6001600160401b03821115612b9357612b93612aed565b50601f01601f191660200190565b5f82601f830112612bb0575f80fd5b8151612bc3612bbe82612b7b565b612b4b565b818152846020838601011115612bd7575f80fd5b612be882602083016020870161294d565b949350505050565b5f60208284031215612c00575f80fd5b81516001600160401b03811115612c15575f80fd5b612be884828501612ba1565b602081525f610b88602083018461296f565b5f60208284031215612c43575f80fd5b5051919050565b5f808335601e19843603018112612c5f575f80fd5b8301803591506001600160401b03821115612c78575f80fd5b6020019150600581901b3603821315612192575f80fd5b634e487b7160e01b5f52603260045260245ffd5b5f8235605e19833603018112612cb7575f80fd5b9190910192915050565b5f82601f830112612cd0575f80fd5b8135612cde612bbe82612b7b565b818152846020838601011115612cf2575f80fd5b816020850160208301375f918101602001919091529392505050565b5f60608236031215612d1e575f80fd5b612d26612b01565b82356001600160401b0380821115612d3c575f80fd5b612d4836838701612cc1565b83526020850135915080821115612d5d575f80fd5b50612d6a36828601612cc1565b602083015250612d7c6040840161286e565b604082015292915050565b5f8251612cb781846020870161294d565b601f821115610b4857805f5260205f20601f840160051c81016020851015612dbd5750805b601f840160051c820191505b81811015612ddc575f8155600101612dc9565b5050505050565b81516001600160401b03811115612dfc57612dfc612aed565b612e1081612e0a8454612aa7565b84612d98565b602080601f831160018114612e43575f8415612e2c5750858301515b5f19600386901b1c1916600185901b178555612e9a565b5f85815260208120601f198616915b82811015612e7157888601518255948401946001909101908401612e52565b5085821015612e8e57878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b634e487b7160e01b5f52601160045260245ffd5b6001600160401b038181168382160190808211156112c7576112c7612ea2565b5f63ffffffff808316818103612eee57612eee612ea2565b6001019392505050565b6001600160401b03818116838216028082169190828114612f1b57612f1b612ea2565b505092915050565b5f808335601e19843603018112612f38575f80fd5b83016020810192503590506001600160401b03811115612f56575f80fd5b803603821315612192575f80fd5b81835281816020850137505f828201602090810191909152601f909101601f19169091010190565b5f8383855260208086019550808560051b830101845f5b8781101561303957848303601f19018952813536889003605e19018112612fc8575f80fd5b87016060612fd68280612f23565b828752612fe68388018284612f64565b92505050612ff686830183612f23565b86830388880152613008838284612f64565b9250505060406001600160401b0361302182850161286e565b16950194909452509783019790830190600101612fa3565b5090979650505050505050565b6020815281356020820152602082013560408201525f604083013561306a816128c9565b6001600160a01b031660608381019190915283013536849003601e19018112613091575f80fd5b83016020810190356001600160401b038111156130ac575f80fd5b8060051b36038213156130bd575f80fd5b6080808501526130d160a085018284612f8c565b95945050505050565b80518015158114612802575f80fd5b5f80604083850312156130fa575f80fd5b8251915061284c602084016130da565b5f60208083525f845461311c81612aa7565b806020870152604060018084165f811461313d576001811461315957613186565b60ff19851660408a0152604084151560051b8a01019550613186565b895f5260205f205f5b8581101561317d5781548b8201860152908301908801613162565b8a016040019650505b509398975050505050505050565b818382375f9101908152919050565b5f80604083850312156131b4575f80fd5b82516001600160401b03808211156131ca575f80fd5b90840190606082870312156131dd575f80fd5b6131e5612b01565b8251815260208301516131f7816128c9565b602082015260408301518281111561320d575f80fd5b61321988828601612ba1565b604083015250935061284c915050602084016130da565b5f60208284031215613240575f80fd5b610b888261286e565b80820180821115610b8b57610b8b612ea2565b5f8235603e19833603018112612cb7575f80fd5b5f808335601e19843603018112613285575f80fd5b8301803591506001600160401b0382111561329e575f80fd5b602001915036819003821315612192575f80fd5b602081525f612be8602083018486612f64565b5f604082360312156132d5575f80fd5b6132dd612b29565b6132e6836127ef565b81526020808401356001600160401b0380821115613302575f80fd5b9085019036601f830112613314575f80fd5b81358181111561332657613326612aed565b8060051b9150613337848301612b4b565b8181529183018401918481019036841115613350575f80fd5b938501935b8385101561337a578435925061336a836128c9565b8282529385019390850190613355565b94860194909452509295945050505050565b5f6040830163ffffffff8351168452602080840151604060208701528281518085526060880191506020830194505f92505b808310156133e75784516001600160a01b031682529383019360019290920191908301906133be565b509695505050505050565b60208152815160208201525f602083015160e0604084015261341861010084018261296f565b90506040840151601f1980858403016060860152613436838361296f565b92506001600160401b03606087015116608086015260808601519150808584030160a0860152613466838361338c565b925060a08601519150808584030160c086015250613484828261338c565b91505060c08401516134a160e08501826001600160401b03169052565b509392505050565b5f80604083850312156134ba575f80fd5b8251915060208301516001600160401b038111156134d6575f80fd5b6134e285828601612ba1565b9150509250929050565b6001600160401b0383111561350357613503612aed565b613517836135118354612aa7565b83612d98565b5f601f841160018114613548575f85156135315750838201355b5f19600387901b1c1916600186901b178355612ddc565b5f83815260208120601f198716915b828110156135775786850135825560209485019460019092019101613557565b5086821015613593575f1960f88860031b161c19848701351681555b505060018560011b0183555050505050565b81810381811115610b8b57610b8b612ea2565b6001600160401b038281168282160390808211156112c7576112c7612ea2565b5f6001600160401b03808316818103612eee57612eee612ea2565b5f60208284031215613603575f80fd5b813560ff81168114612a35575f80fdfee92546d698950ddd38910d2e15ed1d923cd0a7b3dde9e2a6a3f380565559cb00e92546d698950ddd38910d2e15ed1d923cd0a7b3dde9e2a6a3f380565559cb05a2646970667358221220040d41f90cba281d6fbbf3f31f319373bb76cab609214c5f7291b54cfc5a4a3f64736f6c63430008190033", } // PoAValidatorManagerABI is the input ABI used to generate the binding from. @@ -512,37 +512,6 @@ func (_PoAValidatorManager *PoAValidatorManagerCallerSession) GetValidator(valid return _PoAValidatorManager.Contract.GetValidator(&_PoAValidatorManager.CallOpts, validationID) } -// GetWeight is a free data retrieval call binding the contract method 0x66435abf. -// -// Solidity: function getWeight(bytes32 validationID) view returns(uint64) -func (_PoAValidatorManager *PoAValidatorManagerCaller) GetWeight(opts *bind.CallOpts, validationID [32]byte) (uint64, error) { - var out []interface{} - err := _PoAValidatorManager.contract.Call(opts, &out, "getWeight", validationID) - - if err != nil { - return *new(uint64), err - } - - out0 := *abi.ConvertType(out[0], new(uint64)).(*uint64) - - return out0, err - -} - -// GetWeight is a free data retrieval call binding the contract method 0x66435abf. -// -// Solidity: function getWeight(bytes32 validationID) view returns(uint64) -func (_PoAValidatorManager *PoAValidatorManagerSession) GetWeight(validationID [32]byte) (uint64, error) { - return _PoAValidatorManager.Contract.GetWeight(&_PoAValidatorManager.CallOpts, validationID) -} - -// GetWeight is a free data retrieval call binding the contract method 0x66435abf. -// -// Solidity: function getWeight(bytes32 validationID) view returns(uint64) -func (_PoAValidatorManager *PoAValidatorManagerCallerSession) GetWeight(validationID [32]byte) (uint64, error) { - return _PoAValidatorManager.Contract.GetWeight(&_PoAValidatorManager.CallOpts, validationID) -} - // Owner is a free data retrieval call binding the contract method 0x8da5cb5b. // // Solidity: function owner() view returns(address) diff --git a/contracts/validator-manager/PoSValidatorManager.sol b/contracts/validator-manager/PoSValidatorManager.sol index cb824b888..48adb7bb0 100644 --- a/contracts/validator-manager/PoSValidatorManager.sol +++ b/contracts/validator-manager/PoSValidatorManager.sol @@ -100,8 +100,13 @@ abstract contract PoSValidatorManager is error InvalidUptimeBlockchainID(bytes32 uptimeBlockchainID); // solhint-disable ordering + /** + * @dev This storage is visible to child contracts for convenience. + * External getters would be better practice, but code size limitations are preventing this. + * Child contracts should probably never write to this storage. + */ function _getPoSValidatorManagerStorage() - private + internal pure returns (PoSValidatorManagerStorage storage $) { diff --git a/contracts/validator-manager/ValidatorManager.sol b/contracts/validator-manager/ValidatorManager.sol index d1c58c680..180847cea 100644 --- a/contracts/validator-manager/ValidatorManager.sol +++ b/contracts/validator-manager/ValidatorManager.sol @@ -86,8 +86,13 @@ abstract contract ValidatorManager is Initializable, ContextUpgradeable, IValida error PChainOwnerAddressesNotSorted(); // solhint-disable ordering + /** + * @dev This storage is visible to child contracts for convenience. + * External getters would be better practice, but code size limitations are preventing this. + * Child contracts should probably never write to this storage. + */ function _getValidatorManagerStorage() - private + internal pure returns (ValidatorManagerStorage storage $) { @@ -469,14 +474,6 @@ abstract contract ValidatorManager is Initializable, ContextUpgradeable, IValida return (validationID, validator); } - /** - * @notice Returns the validator's weight. This weight is not guaranteed to be known by the P-Chain - * @return Weight of the validator. If the validation ID does not exist, the weight will be 0. - */ - function getWeight(bytes32 validationID) external view returns (uint64) { - return getValidator(validationID).weight; - } - function _incrementAndGetNonce(bytes32 validationID) internal returns (uint64) { ValidatorManagerStorage storage $ = _getValidatorManagerStorage(); return ++$._validationPeriods[validationID].messageNonce; diff --git a/contracts/validator-manager/tests/PoSValidatorManagerTests.t.sol b/contracts/validator-manager/tests/PoSValidatorManagerTests.t.sol index b338f38d5..53f6c7691 100644 --- a/contracts/validator-manager/tests/PoSValidatorManagerTests.t.sol +++ b/contracts/validator-manager/tests/PoSValidatorManagerTests.t.sol @@ -2365,7 +2365,7 @@ abstract contract PoSValidatorManagerTest is ValidatorManagerTest { _completeEndDelegation(delegationID, weightUpdateMessage); - assertEq(posValidatorManager.getWeight(validationID), expectedValidatorWeight); + assertEq(posValidatorManager.getValidator(validationID).weight, expectedValidatorWeight); if (rewardRecipient == delegator) { assertEq(