@keep-network/tbtc-v2 1.7.0-dev.1 → 1.7.0-dev.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/artifacts/BLS.json +1 -1
- package/artifacts/Bank.json +3 -3
- package/artifacts/BeaconAuthorization.json +1 -1
- package/artifacts/BeaconDkg.json +1 -1
- package/artifacts/BeaconDkgValidator.json +1 -1
- package/artifacts/BeaconInactivity.json +1 -1
- package/artifacts/BeaconSortitionPool.json +3 -3
- package/artifacts/Bridge.json +5 -5
- package/artifacts/BridgeGovernance.json +2 -2
- package/artifacts/BridgeGovernanceParameters.json +2 -2
- package/artifacts/Deposit.json +2 -2
- package/artifacts/DepositSweep.json +2 -2
- package/artifacts/DonationVault.json +3 -3
- package/artifacts/EcdsaDkgValidator.json +1 -1
- package/artifacts/EcdsaInactivity.json +1 -1
- package/artifacts/EcdsaSortitionPool.json +3 -3
- package/artifacts/Fraud.json +2 -2
- package/artifacts/LightRelay.json +18 -18
- package/artifacts/LightRelayMaintainerProxy.json +8 -8
- package/artifacts/MaintainerProxy.json +19 -19
- package/artifacts/MovingFunds.json +2 -2
- package/artifacts/NuCypherToken.json +2 -2
- package/artifacts/RandomBeacon.json +2 -2
- package/artifacts/RandomBeaconChaosnet.json +2 -2
- package/artifacts/RandomBeaconGovernance.json +2 -2
- package/artifacts/Redemption.json +2 -2
- package/artifacts/RedemptionWatchtower.json +5 -5
- package/artifacts/ReimbursementPool.json +2 -2
- package/artifacts/T.json +2 -2
- package/artifacts/TBTC.json +3 -3
- package/artifacts/TBTCToken.json +3 -3
- package/artifacts/TBTCVault.json +23 -23
- package/artifacts/TokenStaking.json +1 -1
- package/artifacts/TokenholderGovernor.json +9 -9
- package/artifacts/TokenholderTimelock.json +8 -8
- package/artifacts/VendingMachine.json +3 -3
- package/artifacts/VendingMachineNuCypher.json +1 -1
- package/artifacts/VendingMachineV2.json +3 -3
- package/artifacts/VendingMachineV3.json +3 -3
- package/artifacts/WalletProposalValidator.json +2 -2
- package/artifacts/WalletRegistry.json +5 -5
- package/artifacts/WalletRegistryGovernance.json +2 -2
- package/artifacts/Wallets.json +2 -2
- package/artifacts/solcInputs/{5e7ccc0c6c4f37b06cfdd9690093102b.json → 9e25453061017eb37854db4f2196e831.json} +2 -2
- package/build/contracts/GovernanceUtils.sol/GovernanceUtils.dbg.json +1 -1
- package/build/contracts/bank/Bank.sol/Bank.dbg.json +1 -1
- package/build/contracts/bank/IReceiveBalanceApproval.sol/IReceiveBalanceApproval.dbg.json +1 -1
- package/build/contracts/bridge/BitcoinTx.sol/BitcoinTx.dbg.json +1 -1
- package/build/contracts/bridge/Bridge.sol/Bridge.dbg.json +1 -1
- package/build/contracts/bridge/BridgeGovernanceParameters.sol/BridgeGovernanceParameters.dbg.json +1 -1
- package/build/contracts/bridge/BridgeState.sol/BridgeState.dbg.json +1 -1
- package/build/contracts/bridge/Deposit.sol/Deposit.dbg.json +1 -1
- package/build/contracts/bridge/DepositSweep.sol/DepositSweep.dbg.json +1 -1
- package/build/contracts/bridge/EcdsaLib.sol/EcdsaLib.dbg.json +1 -1
- package/build/contracts/bridge/Fraud.sol/Fraud.dbg.json +1 -1
- package/build/contracts/bridge/Heartbeat.sol/Heartbeat.dbg.json +1 -1
- package/build/contracts/bridge/IRelay.sol/IRelay.dbg.json +1 -1
- package/build/contracts/bridge/MovingFunds.sol/MovingFunds.dbg.json +1 -1
- package/build/contracts/bridge/Redemption.sol/IRedemptionWatchtower.dbg.json +1 -1
- package/build/contracts/bridge/Redemption.sol/OutboundTx.dbg.json +1 -1
- package/build/contracts/bridge/Redemption.sol/Redemption.dbg.json +1 -1
- package/build/contracts/bridge/RedemptionWatchtower.sol/RedemptionWatchtower.dbg.json +1 -1
- package/build/contracts/bridge/VendingMachine.sol/VendingMachine.dbg.json +1 -1
- package/build/contracts/bridge/VendingMachineV2.sol/VendingMachineV2.dbg.json +1 -1
- package/build/contracts/bridge/VendingMachineV3.sol/VendingMachineV3.dbg.json +1 -1
- package/build/contracts/bridge/WalletProposalValidator.sol/WalletProposalValidator.dbg.json +1 -1
- package/build/contracts/bridge/Wallets.sol/Wallets.dbg.json +1 -1
- package/build/contracts/integrator/AbstractTBTCDepositor.sol/AbstractTBTCDepositor.dbg.json +1 -1
- package/build/contracts/integrator/IBridge.sol/IBridge.dbg.json +1 -1
- package/build/contracts/integrator/IBridge.sol/IBridgeTypes.dbg.json +1 -1
- package/build/contracts/integrator/ITBTCVault.sol/ITBTCVault.dbg.json +1 -1
- package/build/contracts/l2/L1BitcoinDepositor.sol/L1BitcoinDepositor.dbg.json +1 -1
- package/build/contracts/l2/L1BitcoinDepositor.sol/L1BitcoinDepositor.json +58 -2
- package/build/contracts/l2/L2BitcoinDepositor.sol/IL2WormholeGateway.dbg.json +1 -1
- package/build/contracts/l2/L2BitcoinDepositor.sol/L2BitcoinDepositor.dbg.json +1 -1
- package/build/contracts/l2/L2BitcoinDepositor.sol/L2BitcoinDepositor.json +2 -2
- package/build/contracts/l2/L2TBTC.sol/L2TBTC.dbg.json +1 -1
- package/build/contracts/l2/L2WormholeGateway.sol/L2WormholeGateway.dbg.json +1 -1
- package/build/contracts/l2/Wormhole.sol/IWormhole.dbg.json +1 -1
- package/build/contracts/l2/Wormhole.sol/IWormholeReceiver.dbg.json +1 -1
- package/build/contracts/l2/Wormhole.sol/IWormholeRelayer.dbg.json +1 -1
- package/build/contracts/l2/Wormhole.sol/IWormholeTokenBridge.dbg.json +1 -1
- package/build/contracts/l2/Wormhole.sol/WormholeTypes.dbg.json +1 -1
- package/build/contracts/l2/Wormhole.sol/WormholeUtils.dbg.json +1 -1
- package/build/contracts/maintainer/MaintainerProxy.sol/MaintainerProxy.dbg.json +1 -1
- package/build/contracts/relay/LightRelay.sol/ILightRelay.dbg.json +1 -1
- package/build/contracts/relay/LightRelay.sol/LightRelay.dbg.json +1 -1
- package/build/contracts/relay/LightRelay.sol/RelayUtils.dbg.json +1 -1
- package/build/contracts/relay/LightRelayMaintainerProxy.sol/LightRelayMaintainerProxy.dbg.json +1 -1
- package/build/contracts/test/BankStub.sol/BankStub.dbg.json +1 -1
- package/build/contracts/test/BridgeStub.sol/BridgeStub.dbg.json +1 -1
- package/build/contracts/test/HeartbeatStub.sol/HeartbeatStub.dbg.json +1 -1
- package/build/contracts/test/LightRelayStub.sol/LightRelayStub.dbg.json +1 -1
- package/build/contracts/test/ReceiveApprovalStub.sol/ReceiveApprovalStub.dbg.json +1 -1
- package/build/contracts/test/SepoliaLightRelay.sol/SepoliaLightRelay.dbg.json +1 -1
- package/build/contracts/test/SystemTestRelay.sol/SystemTestRelay.dbg.json +1 -1
- package/build/contracts/test/TestBitcoinTx.sol/TestBitcoinTx.dbg.json +1 -1
- package/build/contracts/test/TestERC20.sol/TestERC20.dbg.json +1 -1
- package/build/contracts/test/TestERC721.sol/TestERC721.dbg.json +1 -1
- package/build/contracts/test/TestEcdsaLib.sol/TestEcdsaLib.dbg.json +1 -1
- package/build/contracts/test/TestTBTCDepositor.sol/MockBridge.dbg.json +1 -1
- package/build/contracts/test/TestTBTCDepositor.sol/MockTBTCVault.dbg.json +1 -1
- package/build/contracts/test/TestTBTCDepositor.sol/TestTBTCDepositor.dbg.json +1 -1
- package/build/contracts/test/WormholeBridgeStub.sol/WormholeBridgeStub.dbg.json +1 -1
- package/build/contracts/token/TBTC.sol/TBTC.dbg.json +1 -1
- package/build/contracts/vault/DonationVault.sol/DonationVault.dbg.json +1 -1
- package/build/contracts/vault/IVault.sol/IVault.dbg.json +1 -1
- package/build/contracts/vault/TBTCOptimisticMinting.sol/TBTCOptimisticMinting.dbg.json +1 -1
- package/build/contracts/vault/TBTCVault.sol/TBTCVault.dbg.json +1 -1
- package/contracts/l2/L1BitcoinDepositor.sol +68 -19
- package/contracts/l2/L2BitcoinDepositor.sol +9 -0
- package/export/artifacts/contracts/bridge/VendingMachine.sol/VendingMachine.json +6 -6
- package/export/artifacts/contracts/bridge/VendingMachineV2.sol/VendingMachineV2.json +6 -6
- package/export/artifacts/contracts/bridge/VendingMachineV3.sol/VendingMachineV3.json +6 -6
- package/export/artifacts/contracts/l2/L1BitcoinDepositor.sol/L1BitcoinDepositor.json +7180 -5768
- package/export/artifacts/contracts/l2/L2BitcoinDepositor.sol/L2BitcoinDepositor.json +654 -192
- package/export/artifacts/contracts/l2/L2TBTC.sol/L2TBTC.json +40 -40
- package/export/artifacts/contracts/l2/L2WormholeGateway.sol/L2WormholeGateway.json +51 -51
- package/export/artifacts/contracts/maintainer/MaintainerProxy.sol/MaintainerProxy.json +88 -88
- package/export/artifacts/contracts/relay/LightRelay.sol/LightRelay.json +57 -57
- package/export/artifacts/contracts/relay/LightRelayMaintainerProxy.sol/LightRelayMaintainerProxy.json +31 -31
- package/export/artifacts/contracts/test/BankStub.sol/BankStub.json +2 -2
- package/export/artifacts/contracts/test/BridgeStub.sol/BridgeStub.json +30 -30
- package/export/artifacts/contracts/test/HeartbeatStub.sol/HeartbeatStub.json +2 -2
- package/export/artifacts/contracts/test/LightRelayStub.sol/LightRelayStub.json +59 -59
- package/export/artifacts/contracts/test/ReceiveApprovalStub.sol/ReceiveApprovalStub.json +7 -7
- package/export/artifacts/contracts/test/SepoliaLightRelay.sol/SepoliaLightRelay.json +59 -59
- package/export/artifacts/contracts/test/SystemTestRelay.sol/SystemTestRelay.json +14 -14
- package/export/artifacts/contracts/test/TestBitcoinTx.sol/TestBitcoinTx.json +5 -5
- package/export/artifacts/contracts/test/TestERC20.sol/TestERC20.json +6 -6
- package/export/artifacts/contracts/test/TestERC721.sol/TestERC721.json +8 -8
- package/export/artifacts/contracts/test/TestEcdsaLib.sol/TestEcdsaLib.json +2 -2
- package/export/artifacts/contracts/test/TestTBTCDepositor.sol/MockBridge.json +18 -18
- package/export/artifacts/contracts/test/TestTBTCDepositor.sol/MockTBTCVault.json +20 -20
- package/export/artifacts/contracts/test/TestTBTCDepositor.sol/TestTBTCDepositor.json +10 -10
- package/export/artifacts/contracts/test/WormholeBridgeStub.sol/WormholeBridgeStub.json +37 -37
- package/export/artifacts/contracts/token/TBTC.sol/TBTC.json +2 -2
- package/export/artifacts/contracts/vault/DonationVault.sol/DonationVault.json +11 -11
- package/export/artifacts/contracts/vault/TBTCVault.sol/TBTCVault.json +135 -135
- package/export/typechain/factories/L1BitcoinDepositor__factory.js +57 -1
- package/export/typechain/factories/L2BitcoinDepositor__factory.js +1 -1
- package/package.json +1 -1
|
@@ -1098,7 +1098,7 @@
|
|
|
1098
1098
|
"transactionIndex": 0,
|
|
1099
1099
|
"gasUsed": "3215309",
|
|
1100
1100
|
"logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
|
|
1101
|
-
"blockHash": "
|
|
1101
|
+
"blockHash": "0x11e34f188ee98e106f7198b98d3f0b3eef10ab9fdadbc39a9ac04d958517b5cf",
|
|
1102
1102
|
"transactionHash": "0xa88fd82aa925d78667feafc7d05ee75ec294cad3cde5a141d437e14d94738422",
|
|
1103
1103
|
"logs": [],
|
|
1104
1104
|
"blockNumber": 60,
|
|
@@ -1108,7 +1108,7 @@
|
|
|
1108
1108
|
},
|
|
1109
1109
|
"args": [],
|
|
1110
1110
|
"numDeployments": 1,
|
|
1111
|
-
"solcInputHash": "
|
|
1111
|
+
"solcInputHash": "9e25453061017eb37854db4f2196e831",
|
|
1112
1112
|
"metadata": "{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"newDepositDustThreshold\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"name\":\"DepositDustThresholdUpdateStarted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"depositDustThreshold\",\"type\":\"uint64\"}],\"name\":\"DepositDustThresholdUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"newDepositRevealAheadPeriod\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"name\":\"DepositRevealAheadPeriodUpdateStarted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"depositRevealAheadPeriod\",\"type\":\"uint32\"}],\"name\":\"DepositRevealAheadPeriodUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"depositTreasuryFeeDivisor\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"name\":\"DepositTreasuryFeeDivisorUpdateStarted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"depositTreasuryFeeDivisor\",\"type\":\"uint64\"}],\"name\":\"DepositTreasuryFeeDivisorUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"newDepositTxMaxFee\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"name\":\"DepositTxMaxFeeUpdateStarted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"depositTxMaxFee\",\"type\":\"uint64\"}],\"name\":\"DepositTxMaxFeeUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"newFraudChallengeDefeatTimeout\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"name\":\"FraudChallengeDefeatTimeoutUpdateStarted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"fraudChallengeDefeatTimeout\",\"type\":\"uint32\"}],\"name\":\"FraudChallengeDefeatTimeoutUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint96\",\"name\":\"newFraudChallengeDepositAmount\",\"type\":\"uint96\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"name\":\"FraudChallengeDepositAmountUpdateStarted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint96\",\"name\":\"fraudChallengeDepositAmount\",\"type\":\"uint96\"}],\"name\":\"FraudChallengeDepositAmountUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"newFraudNotifierRewardMultiplier\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"name\":\"FraudNotifierRewardMultiplierUpdateStarted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"fraudNotifierRewardMultiplier\",\"type\":\"uint32\"}],\"name\":\"FraudNotifierRewardMultiplierUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint96\",\"name\":\"newFraudSlashingAmount\",\"type\":\"uint96\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"name\":\"FraudSlashingAmountUpdateStarted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint96\",\"name\":\"fraudSlashingAmount\",\"type\":\"uint96\"}],\"name\":\"FraudSlashingAmountUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"newMovedFundsSweepTimeoutNotifierRewardMultiplier\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"name\":\"MovedFundsSweepTimeoutNotifierRewardMultiplierUpdateStarted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"movedFundsSweepTimeoutNotifierRewardMultiplier\",\"type\":\"uint32\"}],\"name\":\"MovedFundsSweepTimeoutNotifierRewardMultiplierUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint96\",\"name\":\"newMovedFundsSweepTimeoutSlashingAmount\",\"type\":\"uint96\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"name\":\"MovedFundsSweepTimeoutSlashingAmountUpdateStarted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint96\",\"name\":\"movedFundsSweepTimeoutSlashingAmount\",\"type\":\"uint96\"}],\"name\":\"MovedFundsSweepTimeoutSlashingAmountUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"newMovedFundsSweepTimeout\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"name\":\"MovedFundsSweepTimeoutUpdateStarted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"movedFundsSweepTimeout\",\"type\":\"uint32\"}],\"name\":\"MovedFundsSweepTimeoutUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"newMovedFundsSweepTxMaxTotalFee\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"name\":\"MovedFundsSweepTxMaxTotalFeeUpdateStarted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"movedFundsSweepTxMaxTotalFee\",\"type\":\"uint64\"}],\"name\":\"MovedFundsSweepTxMaxTotalFeeUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"newMovingFundsCommitmentGasOffset\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"name\":\"MovingFundsCommitmentGasOffsetUpdateStarted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"movingFundsCommitmentGasOffset\",\"type\":\"uint16\"}],\"name\":\"MovingFundsCommitmentGasOffsetUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"newMovingFundsDustThreshold\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"name\":\"MovingFundsDustThresholdUpdateStarted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"movingFundsDustThreshold\",\"type\":\"uint64\"}],\"name\":\"MovingFundsDustThresholdUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"newMovingFundsTimeoutNotifierRewardMultiplier\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"name\":\"MovingFundsTimeoutNotifierRewardMultiplierUpdateStarted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"movingFundsTimeoutNotifierRewardMultiplier\",\"type\":\"uint32\"}],\"name\":\"MovingFundsTimeoutNotifierRewardMultiplierUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"newMovingFundsTimeoutResetDelay\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"name\":\"MovingFundsTimeoutResetDelayUpdateStarted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"movingFundsTimeoutResetDelay\",\"type\":\"uint32\"}],\"name\":\"MovingFundsTimeoutResetDelayUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint96\",\"name\":\"newMovingFundsTimeoutSlashingAmount\",\"type\":\"uint96\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"name\":\"MovingFundsTimeoutSlashingAmountUpdateStarted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint96\",\"name\":\"movingFundsTimeoutSlashingAmount\",\"type\":\"uint96\"}],\"name\":\"MovingFundsTimeoutSlashingAmountUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"newMovingFundsTimeout\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"name\":\"MovingFundsTimeoutUpdateStarted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"movingFundsTimeout\",\"type\":\"uint32\"}],\"name\":\"MovingFundsTimeoutUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"newMovingFundsTxMaxTotalFee\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"name\":\"MovingFundsTxMaxTotalFeeUpdateStarted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"movingFundsTxMaxTotalFee\",\"type\":\"uint64\"}],\"name\":\"MovingFundsTxMaxTotalFeeUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"newRedemptionDustThreshold\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"name\":\"RedemptionDustThresholdUpdateStarted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"redemptionDustThreshold\",\"type\":\"uint64\"}],\"name\":\"RedemptionDustThresholdUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"newRedemptionTimeoutNotifierRewardMultiplier\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"name\":\"RedemptionTimeoutNotifierRewardMultiplierUpdateStarted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"redemptionTimeoutNotifierRewardMultiplier\",\"type\":\"uint32\"}],\"name\":\"RedemptionTimeoutNotifierRewardMultiplierUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint96\",\"name\":\"newRedemptionTimeoutSlashingAmount\",\"type\":\"uint96\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"name\":\"RedemptionTimeoutSlashingAmountUpdateStarted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint96\",\"name\":\"redemptionTimeoutSlashingAmount\",\"type\":\"uint96\"}],\"name\":\"RedemptionTimeoutSlashingAmountUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"newRedemptionTimeout\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"name\":\"RedemptionTimeoutUpdateStarted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"redemptionTimeout\",\"type\":\"uint32\"}],\"name\":\"RedemptionTimeoutUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"newRedemptionTreasuryFeeDivisor\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"name\":\"RedemptionTreasuryFeeDivisorUpdateStarted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"redemptionTreasuryFeeDivisor\",\"type\":\"uint64\"}],\"name\":\"RedemptionTreasuryFeeDivisorUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"newRedemptionTxMaxFee\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"name\":\"RedemptionTxMaxFeeUpdateStarted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"redemptionTxMaxFee\",\"type\":\"uint64\"}],\"name\":\"RedemptionTxMaxFeeUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"newRedemptionTxMaxTotalFee\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"name\":\"RedemptionTxMaxTotalFeeUpdateStarted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"redemptionTxMaxTotalFee\",\"type\":\"uint64\"}],\"name\":\"RedemptionTxMaxTotalFeeUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newTreasury\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"name\":\"TreasuryUpdateStarted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"treasury\",\"type\":\"address\"}],\"name\":\"TreasuryUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"newWalletClosingPeriod\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"name\":\"WalletClosingPeriodUpdateStarted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"walletClosingPeriod\",\"type\":\"uint32\"}],\"name\":\"WalletClosingPeriodUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"newWalletClosureMinBtcBalance\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"name\":\"WalletClosureMinBtcBalanceUpdateStarted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"walletClosureMinBtcBalance\",\"type\":\"uint64\"}],\"name\":\"WalletClosureMinBtcBalanceUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"newWalletCreationMaxBtcBalance\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"name\":\"WalletCreationMaxBtcBalanceUpdateStarted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"walletCreationMaxBtcBalance\",\"type\":\"uint64\"}],\"name\":\"WalletCreationMaxBtcBalanceUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"newWalletCreationMinBtcBalance\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"name\":\"WalletCreationMinBtcBalanceUpdateStarted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"walletCreationMinBtcBalance\",\"type\":\"uint64\"}],\"name\":\"WalletCreationMinBtcBalanceUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"newWalletCreationPeriod\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"name\":\"WalletCreationPeriodUpdateStarted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"walletCreationPeriod\",\"type\":\"uint32\"}],\"name\":\"WalletCreationPeriodUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"newWalletMaxAge\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"name\":\"WalletMaxAgeUpdateStarted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"walletMaxAge\",\"type\":\"uint32\"}],\"name\":\"WalletMaxAgeUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"newWalletMaxBtcTransfer\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"name\":\"WalletMaxBtcTransferUpdateStarted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"walletMaxBtcTransfer\",\"type\":\"uint64\"}],\"name\":\"WalletMaxBtcTransferUpdated\",\"type\":\"event\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"beginDepositDustThresholdUpdate(BridgeGovernanceParameters.DepositData storage,uint64)\":{\"params\":{\"_newDepositDustThreshold\":\"New deposit dust threshold amount.\"}},\"beginDepositRevealAheadPeriodUpdate(BridgeGovernanceParameters.DepositData storage,uint32)\":{\"params\":{\"_newDepositRevealAheadPeriod\":\"New deposit reveal ahead period.\"}},\"beginDepositTreasuryFeeDivisorUpdate(BridgeGovernanceParameters.DepositData storage,uint64)\":{\"params\":{\"_newDepositTreasuryFeeDivisor\":\"New deposit treasury fee divisor amount.\"}},\"beginDepositTxMaxFeeUpdate(BridgeGovernanceParameters.DepositData storage,uint64)\":{\"params\":{\"_newDepositTxMaxFee\":\"New deposit tx max fee amount.\"}},\"beginFraudChallengeDefeatTimeoutUpdate(BridgeGovernanceParameters.FraudData storage,uint32)\":{\"params\":{\"_newFraudChallengeDefeatTimeout\":\"New fraud challenge defeat timeout amount.\"}},\"beginFraudChallengeDepositAmountUpdate(BridgeGovernanceParameters.FraudData storage,uint96)\":{\"params\":{\"_newFraudChallengeDepositAmount\":\"New fraud challenge deposit amount.\"}},\"beginFraudNotifierRewardMultiplierUpdate(BridgeGovernanceParameters.FraudData storage,uint32)\":{\"params\":{\"_newFraudNotifierRewardMultiplier\":\"New fraud notifier reward multiplier amount.\"}},\"beginFraudSlashingAmountUpdate(BridgeGovernanceParameters.FraudData storage,uint96)\":{\"params\":{\"_newFraudSlashingAmount\":\"New fraud slashing amount.\"}},\"beginMovedFundsSweepTimeoutNotifierRewardMultiplierUpdate(BridgeGovernanceParameters.MovingFundsData storage,uint32)\":{\"params\":{\"_newMovedFundsSweepTimeoutNotifierRewardMultiplier\":\"New moved funds sweep timeout notifier reward multiplier amount.\"}},\"beginMovedFundsSweepTimeoutSlashingAmountUpdate(BridgeGovernanceParameters.MovingFundsData storage,uint96)\":{\"params\":{\"_newMovedFundsSweepTimeoutSlashingAmount\":\"New moved funds sweep timeout slashing amount.\"}},\"beginMovedFundsSweepTimeoutUpdate(BridgeGovernanceParameters.MovingFundsData storage,uint32)\":{\"params\":{\"_newMovedFundsSweepTimeout\":\"New moved funds sweep timeout amount.\"}},\"beginMovedFundsSweepTxMaxTotalFeeUpdate(BridgeGovernanceParameters.MovingFundsData storage,uint64)\":{\"params\":{\"_newMovedFundsSweepTxMaxTotalFee\":\"New moved funds sweep tx max total fee amount.\"}},\"beginMovingFundsCommitmentGasOffsetUpdate(BridgeGovernanceParameters.MovingFundsData storage,uint16)\":{\"params\":{\"_newMovingFundsCommitmentGasOffset\":\"New moving funds commitment gas offset.\"}},\"beginMovingFundsDustThresholdUpdate(BridgeGovernanceParameters.MovingFundsData storage,uint64)\":{\"params\":{\"_newMovingFundsDustThreshold\":\"New moving funds dust threshold amount.\"}},\"beginMovingFundsTimeoutNotifierRewardMultiplierUpdate(BridgeGovernanceParameters.MovingFundsData storage,uint32)\":{\"params\":{\"_newMovingFundsTimeoutNotifierRewardMultiplier\":\"New moving funds timeout notifier reward multiplier amount.\"}},\"beginMovingFundsTimeoutResetDelayUpdate(BridgeGovernanceParameters.MovingFundsData storage,uint32)\":{\"params\":{\"_newMovingFundsTimeoutResetDelay\":\"New moving funds timeout reset delay amount.\"}},\"beginMovingFundsTimeoutSlashingAmountUpdate(BridgeGovernanceParameters.MovingFundsData storage,uint96)\":{\"params\":{\"_newMovingFundsTimeoutSlashingAmount\":\"New moving funds timeout slashing amount.\"}},\"beginMovingFundsTimeoutUpdate(BridgeGovernanceParameters.MovingFundsData storage,uint32)\":{\"params\":{\"_newMovingFundsTimeout\":\"New moving funds timeout amount.\"}},\"beginMovingFundsTxMaxTotalFeeUpdate(BridgeGovernanceParameters.MovingFundsData storage,uint64)\":{\"params\":{\"_newMovingFundsTxMaxTotalFee\":\"New moving funds tx max total fee amount.\"}},\"beginRedemptionDustThresholdUpdate(BridgeGovernanceParameters.RedemptionData storage,uint64)\":{\"params\":{\"_newRedemptionDustThreshold\":\"New redemption dust threshold amount.\"}},\"beginRedemptionTimeoutNotifierRewardMultiplierUpdate(BridgeGovernanceParameters.RedemptionData storage,uint32)\":{\"params\":{\"_newRedemptionTimeoutNotifierRewardMultiplier\":\"New redemption timeout notifier reward multiplier amount.\"}},\"beginRedemptionTimeoutSlashingAmountUpdate(BridgeGovernanceParameters.RedemptionData storage,uint96)\":{\"params\":{\"_newRedemptionTimeoutSlashingAmount\":\"New redemption timeout slashing amount.\"}},\"beginRedemptionTimeoutUpdate(BridgeGovernanceParameters.RedemptionData storage,uint32)\":{\"params\":{\"_newRedemptionTimeout\":\"New redemption timeout amount.\"}},\"beginRedemptionTreasuryFeeDivisorUpdate(BridgeGovernanceParameters.RedemptionData storage,uint64)\":{\"params\":{\"_newRedemptionTreasuryFeeDivisor\":\"New redemption treasury fee divisor amount.\"}},\"beginRedemptionTxMaxFeeUpdate(BridgeGovernanceParameters.RedemptionData storage,uint64)\":{\"params\":{\"_newRedemptionTxMaxFee\":\"New redemption tx max fee amount.\"}},\"beginRedemptionTxMaxTotalFeeUpdate(BridgeGovernanceParameters.RedemptionData storage,uint64)\":{\"params\":{\"_newRedemptionTxMaxTotalFee\":\"New redemption tx max total fee amount.\"}},\"beginTreasuryUpdate(BridgeGovernanceParameters.TreasuryData storage,address)\":{\"details\":\"It does not perform any parameter validation.\",\"params\":{\"_newTreasury\":\"New treasury address.\"}},\"beginWalletClosingPeriodUpdate(BridgeGovernanceParameters.WalletData storage,uint32)\":{\"params\":{\"_newWalletClosingPeriod\":\"New wallet closing period amount.\"}},\"beginWalletClosureMinBtcBalanceUpdate(BridgeGovernanceParameters.WalletData storage,uint64)\":{\"params\":{\"_newWalletClosureMinBtcBalance\":\"New wallet closure min btc balance amount.\"}},\"beginWalletCreationMaxBtcBalanceUpdate(BridgeGovernanceParameters.WalletData storage,uint64)\":{\"params\":{\"_newWalletCreationMaxBtcBalance\":\"New wallet creation max btc balance amount.\"}},\"beginWalletCreationMinBtcBalanceUpdate(BridgeGovernanceParameters.WalletData storage,uint64)\":{\"params\":{\"_newWalletCreationMinBtcBalance\":\"New wallet creation min btc balance amount.\"}},\"beginWalletCreationPeriodUpdate(BridgeGovernanceParameters.WalletData storage,uint32)\":{\"params\":{\"_newWalletCreationPeriod\":\"New wallet creation period amount.\"}},\"beginWalletMaxAgeUpdate(BridgeGovernanceParameters.WalletData storage,uint32)\":{\"params\":{\"_newWalletMaxAge\":\"New wallet max age amount.\"}},\"beginWalletMaxBtcTransferUpdate(BridgeGovernanceParameters.WalletData storage,uint64)\":{\"params\":{\"_newWalletMaxBtcTransfer\":\"New wallet max btc transfer amount.\"}},\"finalizeDepositDustThresholdUpdate(BridgeGovernanceParameters.DepositData storage,uint256)\":{\"details\":\"Can be called after the governance delay elapses.\"},\"finalizeDepositRevealAheadPeriodUpdate(BridgeGovernanceParameters.DepositData storage,uint256)\":{\"details\":\"Can be called after the governance delay elapses.\"},\"finalizeDepositTreasuryFeeDivisorUpdate(BridgeGovernanceParameters.DepositData storage,uint256)\":{\"details\":\"Can be called after the governance delay elapses.\"},\"finalizeDepositTxMaxFeeUpdate(BridgeGovernanceParameters.DepositData storage,uint256)\":{\"details\":\"Can be called after the governance delay elapses.\"},\"finalizeFraudChallengeDefeatTimeoutUpdate(BridgeGovernanceParameters.FraudData storage,uint256)\":{\"details\":\"Can be called after the governance delay elapses.\"},\"finalizeFraudChallengeDepositAmountUpdate(BridgeGovernanceParameters.FraudData storage,uint256)\":{\"details\":\"Can be called after the governance delay elapses.\"},\"finalizeFraudNotifierRewardMultiplierUpdate(BridgeGovernanceParameters.FraudData storage,uint256)\":{\"details\":\"Can be called after the governance delay elapses.\"},\"finalizeFraudSlashingAmountUpdate(BridgeGovernanceParameters.FraudData storage,uint256)\":{\"details\":\"Can be called after the governance delay elapses.\"},\"finalizeMovedFundsSweepTimeoutNotifierRewardMultiplierUpdate(BridgeGovernanceParameters.MovingFundsData storage,uint256)\":{\"details\":\"Can be called after the governance delay elapses.\"},\"finalizeMovedFundsSweepTimeoutSlashingAmountUpdate(BridgeGovernanceParameters.MovingFundsData storage,uint256)\":{\"details\":\"Can be called after the governance delay elapses.\"},\"finalizeMovedFundsSweepTimeoutUpdate(BridgeGovernanceParameters.MovingFundsData storage,uint256)\":{\"details\":\"Can be called after the governance delay elapses.\"},\"finalizeMovedFundsSweepTxMaxTotalFeeUpdate(BridgeGovernanceParameters.MovingFundsData storage,uint256)\":{\"details\":\"Can be called after the governance delay elapses.\"},\"finalizeMovingFundsCommitmentGasOffsetUpdate(BridgeGovernanceParameters.MovingFundsData storage,uint256)\":{\"details\":\"Can be called after the governance delay elapses.\"},\"finalizeMovingFundsDustThresholdUpdate(BridgeGovernanceParameters.MovingFundsData storage,uint256)\":{\"details\":\"Can be called after the governance delay elapses.\"},\"finalizeMovingFundsTimeoutNotifierRewardMultiplierUpdate(BridgeGovernanceParameters.MovingFundsData storage,uint256)\":{\"details\":\"Can be called after the governance delay elapses.\"},\"finalizeMovingFundsTimeoutResetDelayUpdate(BridgeGovernanceParameters.MovingFundsData storage,uint256)\":{\"details\":\"Can be called after the governance delay elapses.\"},\"finalizeMovingFundsTimeoutSlashingAmountUpdate(BridgeGovernanceParameters.MovingFundsData storage,uint256)\":{\"details\":\"Can be called after the governance delay elapses.\"},\"finalizeMovingFundsTimeoutUpdate(BridgeGovernanceParameters.MovingFundsData storage,uint256)\":{\"details\":\"Can be called after the governance delay elapses.\"},\"finalizeMovingFundsTxMaxTotalFeeUpdate(BridgeGovernanceParameters.MovingFundsData storage,uint256)\":{\"details\":\"Can be called after the governance delay elapses.\"},\"finalizeRedemptionDustThresholdUpdate(BridgeGovernanceParameters.RedemptionData storage,uint256)\":{\"details\":\"Can be called after the governance delay elapses.\"},\"finalizeRedemptionTimeoutNotifierRewardMultiplierUpdate(BridgeGovernanceParameters.RedemptionData storage,uint256)\":{\"details\":\"Can be called after the governance delay elapses.\"},\"finalizeRedemptionTimeoutSlashingAmountUpdate(BridgeGovernanceParameters.RedemptionData storage,uint256)\":{\"details\":\"Can be called after the governance delay elapses.\"},\"finalizeRedemptionTimeoutUpdate(BridgeGovernanceParameters.RedemptionData storage,uint256)\":{\"details\":\"Can be called after the governance delay elapses.\"},\"finalizeRedemptionTreasuryFeeDivisorUpdate(BridgeGovernanceParameters.RedemptionData storage,uint256)\":{\"details\":\"Can be called after the governance delay elapses.\"},\"finalizeRedemptionTxMaxFeeUpdate(BridgeGovernanceParameters.RedemptionData storage,uint256)\":{\"details\":\"Can be called after the governance delay elapses.\"},\"finalizeRedemptionTxMaxTotalFeeUpdate(BridgeGovernanceParameters.RedemptionData storage,uint256)\":{\"details\":\"Can be called after the governance delay elapses.\"},\"finalizeTreasuryUpdate(BridgeGovernanceParameters.TreasuryData storage,uint256)\":{\"details\":\"Can be called after the governance delay elapses.\"},\"finalizeWalletClosingPeriodUpdate(BridgeGovernanceParameters.WalletData storage,uint256)\":{\"details\":\"Can be called after the governance delay elapses.\"},\"finalizeWalletClosureMinBtcBalanceUpdate(BridgeGovernanceParameters.WalletData storage,uint256)\":{\"details\":\"Can be called after the governance delay elapses.\"},\"finalizeWalletCreationMaxBtcBalanceUpdate(BridgeGovernanceParameters.WalletData storage,uint256)\":{\"details\":\"Can be called after the governance delay elapses.\"},\"finalizeWalletCreationMinBtcBalanceUpdate(BridgeGovernanceParameters.WalletData storage,uint256)\":{\"details\":\"Can be called after the governance delay elapses.\"},\"finalizeWalletCreationPeriodUpdate(BridgeGovernanceParameters.WalletData storage,uint256)\":{\"details\":\"Can be called after the governance delay elapses.\"},\"finalizeWalletMaxAgeUpdate(BridgeGovernanceParameters.WalletData storage,uint256)\":{\"details\":\"Can be called after the governance delay elapses.\"},\"finalizeWalletMaxBtcTransferUpdate(BridgeGovernanceParameters.WalletData storage,uint256)\":{\"details\":\"Can be called after the governance delay elapses.\"}},\"title\":\"Bridge Governance library for storing updatable parameters.\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"beginDepositDustThresholdUpdate(BridgeGovernanceParameters.DepositData storage,uint64)\":{\"notice\":\"Begins the deposit dust threshold amount update process.\"},\"beginDepositRevealAheadPeriodUpdate(BridgeGovernanceParameters.DepositData storage,uint32)\":{\"notice\":\"Begins the deposit reveal ahead period update process.\"},\"beginDepositTreasuryFeeDivisorUpdate(BridgeGovernanceParameters.DepositData storage,uint64)\":{\"notice\":\"Begins the deposit treasury fee divisor amount update process.\"},\"beginDepositTxMaxFeeUpdate(BridgeGovernanceParameters.DepositData storage,uint64)\":{\"notice\":\"Begins the deposit tx max fee amount update process.\"},\"beginFraudChallengeDefeatTimeoutUpdate(BridgeGovernanceParameters.FraudData storage,uint32)\":{\"notice\":\"Begins the fraud challenge defeat timeout amount update process.\"},\"beginFraudChallengeDepositAmountUpdate(BridgeGovernanceParameters.FraudData storage,uint96)\":{\"notice\":\"Begins the fraud challenge deposit amount update process.\"},\"beginFraudNotifierRewardMultiplierUpdate(BridgeGovernanceParameters.FraudData storage,uint32)\":{\"notice\":\"Begins the fraud notifier reward multiplier amount update process.\"},\"beginFraudSlashingAmountUpdate(BridgeGovernanceParameters.FraudData storage,uint96)\":{\"notice\":\"Begins the fraud slashing amount update process.\"},\"beginMovedFundsSweepTimeoutNotifierRewardMultiplierUpdate(BridgeGovernanceParameters.MovingFundsData storage,uint32)\":{\"notice\":\"Begins the moved funds sweep timeout notifier reward multiplier amount update process.\"},\"beginMovedFundsSweepTimeoutSlashingAmountUpdate(BridgeGovernanceParameters.MovingFundsData storage,uint96)\":{\"notice\":\"Begins the moved funds sweep timeout slashing amount update process.\"},\"beginMovedFundsSweepTimeoutUpdate(BridgeGovernanceParameters.MovingFundsData storage,uint32)\":{\"notice\":\"Begins the moved funds sweep timeout amount update process.\"},\"beginMovedFundsSweepTxMaxTotalFeeUpdate(BridgeGovernanceParameters.MovingFundsData storage,uint64)\":{\"notice\":\"Begins the moved funds sweep tx max total fee amount update process.\"},\"beginMovingFundsCommitmentGasOffsetUpdate(BridgeGovernanceParameters.MovingFundsData storage,uint16)\":{\"notice\":\"Begins the moving funds commitment gas offset update process.\"},\"beginMovingFundsDustThresholdUpdate(BridgeGovernanceParameters.MovingFundsData storage,uint64)\":{\"notice\":\"Begins the moving funds dust threshold amount update process.\"},\"beginMovingFundsTimeoutNotifierRewardMultiplierUpdate(BridgeGovernanceParameters.MovingFundsData storage,uint32)\":{\"notice\":\"Begins the moving funds timeout notifier reward multiplier amount update process.\"},\"beginMovingFundsTimeoutResetDelayUpdate(BridgeGovernanceParameters.MovingFundsData storage,uint32)\":{\"notice\":\"Begins the moving funds timeout reset delay amount update process.\"},\"beginMovingFundsTimeoutSlashingAmountUpdate(BridgeGovernanceParameters.MovingFundsData storage,uint96)\":{\"notice\":\"Begins the moving funds timeout slashing amount update process.\"},\"beginMovingFundsTimeoutUpdate(BridgeGovernanceParameters.MovingFundsData storage,uint32)\":{\"notice\":\"Begins the moving funds timeout amount update process.\"},\"beginMovingFundsTxMaxTotalFeeUpdate(BridgeGovernanceParameters.MovingFundsData storage,uint64)\":{\"notice\":\"Begins the moving funds tx max total fee amount update process.\"},\"beginRedemptionDustThresholdUpdate(BridgeGovernanceParameters.RedemptionData storage,uint64)\":{\"notice\":\"Begins the redemption dust threshold amount update process.\"},\"beginRedemptionTimeoutNotifierRewardMultiplierUpdate(BridgeGovernanceParameters.RedemptionData storage,uint32)\":{\"notice\":\"Begins the redemption timeout notifier reward multiplier amount update process.\"},\"beginRedemptionTimeoutSlashingAmountUpdate(BridgeGovernanceParameters.RedemptionData storage,uint96)\":{\"notice\":\"Begins the redemption timeout slashing amount update process.\"},\"beginRedemptionTimeoutUpdate(BridgeGovernanceParameters.RedemptionData storage,uint32)\":{\"notice\":\"Begins the redemption timeout amount update process.\"},\"beginRedemptionTreasuryFeeDivisorUpdate(BridgeGovernanceParameters.RedemptionData storage,uint64)\":{\"notice\":\"Begins the redemption treasury fee divisor amount update process.\"},\"beginRedemptionTxMaxFeeUpdate(BridgeGovernanceParameters.RedemptionData storage,uint64)\":{\"notice\":\"Begins the redemption tx max fee amount update process.\"},\"beginRedemptionTxMaxTotalFeeUpdate(BridgeGovernanceParameters.RedemptionData storage,uint64)\":{\"notice\":\"Begins the redemption tx max total fee amount update process.\"},\"beginTreasuryUpdate(BridgeGovernanceParameters.TreasuryData storage,address)\":{\"notice\":\"Begins the treasury address update process.\"},\"beginWalletClosingPeriodUpdate(BridgeGovernanceParameters.WalletData storage,uint32)\":{\"notice\":\"Begins the wallet closing period amount update process.\"},\"beginWalletClosureMinBtcBalanceUpdate(BridgeGovernanceParameters.WalletData storage,uint64)\":{\"notice\":\"Begins the wallet closure min btc balance amount update process.\"},\"beginWalletCreationMaxBtcBalanceUpdate(BridgeGovernanceParameters.WalletData storage,uint64)\":{\"notice\":\"Begins the wallet creation max btc balance amount update process.\"},\"beginWalletCreationMinBtcBalanceUpdate(BridgeGovernanceParameters.WalletData storage,uint64)\":{\"notice\":\"Begins the wallet creation min btc balance amount update process.\"},\"beginWalletCreationPeriodUpdate(BridgeGovernanceParameters.WalletData storage,uint32)\":{\"notice\":\"Begins the wallet creation period amount update process.\"},\"beginWalletMaxAgeUpdate(BridgeGovernanceParameters.WalletData storage,uint32)\":{\"notice\":\"Begins the wallet max age amount update process.\"},\"beginWalletMaxBtcTransferUpdate(BridgeGovernanceParameters.WalletData storage,uint64)\":{\"notice\":\"Begins the wallet max btc transfer amount update process.\"},\"finalizeDepositDustThresholdUpdate(BridgeGovernanceParameters.DepositData storage,uint256)\":{\"notice\":\"Finalizes the deposit dust threshold amount update process.\"},\"finalizeDepositRevealAheadPeriodUpdate(BridgeGovernanceParameters.DepositData storage,uint256)\":{\"notice\":\"Finalizes the deposit reveal ahead period update process.\"},\"finalizeDepositTreasuryFeeDivisorUpdate(BridgeGovernanceParameters.DepositData storage,uint256)\":{\"notice\":\"Finalizes the deposit treasury fee divisor amount update process.\"},\"finalizeDepositTxMaxFeeUpdate(BridgeGovernanceParameters.DepositData storage,uint256)\":{\"notice\":\"Finalizes the deposit tx max fee amount update process.\"},\"finalizeFraudChallengeDefeatTimeoutUpdate(BridgeGovernanceParameters.FraudData storage,uint256)\":{\"notice\":\"Finalizes the fraud challenge defeat timeout amount update process.\"},\"finalizeFraudChallengeDepositAmountUpdate(BridgeGovernanceParameters.FraudData storage,uint256)\":{\"notice\":\"Finalizes the fraud challenge deposit amount update process.\"},\"finalizeFraudNotifierRewardMultiplierUpdate(BridgeGovernanceParameters.FraudData storage,uint256)\":{\"notice\":\"Finalizes the fraud notifier reward multiplier amount update process.\"},\"finalizeFraudSlashingAmountUpdate(BridgeGovernanceParameters.FraudData storage,uint256)\":{\"notice\":\"Finalizes the fraud slashing amount update process.\"},\"finalizeMovedFundsSweepTimeoutNotifierRewardMultiplierUpdate(BridgeGovernanceParameters.MovingFundsData storage,uint256)\":{\"notice\":\"Finalizes the moved funds sweep timeout notifier reward multiplier amount update process.\"},\"finalizeMovedFundsSweepTimeoutSlashingAmountUpdate(BridgeGovernanceParameters.MovingFundsData storage,uint256)\":{\"notice\":\"Finalizes the moved funds sweep timeout slashing amount update process.\"},\"finalizeMovedFundsSweepTimeoutUpdate(BridgeGovernanceParameters.MovingFundsData storage,uint256)\":{\"notice\":\"Finalizes the moved funds sweep timeout amount update process.\"},\"finalizeMovedFundsSweepTxMaxTotalFeeUpdate(BridgeGovernanceParameters.MovingFundsData storage,uint256)\":{\"notice\":\"Finalizes the moved funds sweep tx max total fee amount update process.\"},\"finalizeMovingFundsCommitmentGasOffsetUpdate(BridgeGovernanceParameters.MovingFundsData storage,uint256)\":{\"notice\":\"Finalizes the moving funds commitment gas offset update process.\"},\"finalizeMovingFundsDustThresholdUpdate(BridgeGovernanceParameters.MovingFundsData storage,uint256)\":{\"notice\":\"Finalizes the moving funds dust threshold amount update process.\"},\"finalizeMovingFundsTimeoutNotifierRewardMultiplierUpdate(BridgeGovernanceParameters.MovingFundsData storage,uint256)\":{\"notice\":\"Finalizes the moving funds timeout notifier reward multiplier amount update process.\"},\"finalizeMovingFundsTimeoutResetDelayUpdate(BridgeGovernanceParameters.MovingFundsData storage,uint256)\":{\"notice\":\"Finalizes the moving funds timeout reset delay amount update process.\"},\"finalizeMovingFundsTimeoutSlashingAmountUpdate(BridgeGovernanceParameters.MovingFundsData storage,uint256)\":{\"notice\":\"Finalizes the moving funds timeout slashing amount update process.\"},\"finalizeMovingFundsTimeoutUpdate(BridgeGovernanceParameters.MovingFundsData storage,uint256)\":{\"notice\":\"Finalizes the moving funds timeout amount update process.\"},\"finalizeMovingFundsTxMaxTotalFeeUpdate(BridgeGovernanceParameters.MovingFundsData storage,uint256)\":{\"notice\":\"Finalizes the moving funds tx max total fee amount update process.\"},\"finalizeRedemptionDustThresholdUpdate(BridgeGovernanceParameters.RedemptionData storage,uint256)\":{\"notice\":\"Finalizes the redemption dust threshold amount update process.\"},\"finalizeRedemptionTimeoutNotifierRewardMultiplierUpdate(BridgeGovernanceParameters.RedemptionData storage,uint256)\":{\"notice\":\"Finalizes the redemption timeout notifier reward multiplier amount update process.\"},\"finalizeRedemptionTimeoutSlashingAmountUpdate(BridgeGovernanceParameters.RedemptionData storage,uint256)\":{\"notice\":\"Finalizes the redemption timeout slashing amount update process.\"},\"finalizeRedemptionTimeoutUpdate(BridgeGovernanceParameters.RedemptionData storage,uint256)\":{\"notice\":\"Finalizes the redemption timeout amount update process.\"},\"finalizeRedemptionTreasuryFeeDivisorUpdate(BridgeGovernanceParameters.RedemptionData storage,uint256)\":{\"notice\":\"Finalizes the redemption treasury fee divisor amount update process.\"},\"finalizeRedemptionTxMaxFeeUpdate(BridgeGovernanceParameters.RedemptionData storage,uint256)\":{\"notice\":\"Finalizes the redemption tx max fee amount update process.\"},\"finalizeRedemptionTxMaxTotalFeeUpdate(BridgeGovernanceParameters.RedemptionData storage,uint256)\":{\"notice\":\"Finalizes the redemption tx max total fee amount update process.\"},\"finalizeTreasuryUpdate(BridgeGovernanceParameters.TreasuryData storage,uint256)\":{\"notice\":\"Finalizes the treasury address update process.\"},\"finalizeWalletClosingPeriodUpdate(BridgeGovernanceParameters.WalletData storage,uint256)\":{\"notice\":\"Finalizes the wallet closing period amount update process.\"},\"finalizeWalletClosureMinBtcBalanceUpdate(BridgeGovernanceParameters.WalletData storage,uint256)\":{\"notice\":\"Finalizes the wallet closure min btc balance amount update process.\"},\"finalizeWalletCreationMaxBtcBalanceUpdate(BridgeGovernanceParameters.WalletData storage,uint256)\":{\"notice\":\"Finalizes the wallet creation max btc balance amount update process.\"},\"finalizeWalletCreationMinBtcBalanceUpdate(BridgeGovernanceParameters.WalletData storage,uint256)\":{\"notice\":\"Finalizes the wallet creation min btc balance amount update process.\"},\"finalizeWalletCreationPeriodUpdate(BridgeGovernanceParameters.WalletData storage,uint256)\":{\"notice\":\"Finalizes the wallet creation period amount update process.\"},\"finalizeWalletMaxAgeUpdate(BridgeGovernanceParameters.WalletData storage,uint256)\":{\"notice\":\"Finalizes the wallet max age amount update process.\"},\"finalizeWalletMaxBtcTransferUpdate(BridgeGovernanceParameters.WalletData storage,uint256)\":{\"notice\":\"Finalizes the wallet max btc transfer amount update process.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/bridge/BridgeGovernanceParameters.sol\":\"BridgeGovernanceParameters\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[]},\"sources\":{\"contracts/bridge/BridgeGovernanceParameters.sol\":{\"content\":\"// SPDX-License-Identifier: GPL-3.0-only\\n\\n// \\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588 \\u2590\\u2588\\u2588\\u2588\\u2588\\u258c \\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\n// \\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588 \\u2590\\u2588\\u2588\\u2588\\u2588\\u258c \\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\n// \\u2590\\u2588\\u2588\\u2588\\u2588\\u258c \\u2590\\u2588\\u2588\\u2588\\u2588\\u258c\\n// \\u2590\\u2588\\u2588\\u2588\\u2588\\u258c \\u2590\\u2588\\u2588\\u2588\\u2588\\u258c\\n// \\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588 \\u2590\\u2588\\u2588\\u2588\\u2588\\u258c \\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\n// \\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588 \\u2590\\u2588\\u2588\\u2588\\u2588\\u258c \\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\n// \\u2590\\u2588\\u2588\\u2588\\u2588\\u258c \\u2590\\u2588\\u2588\\u2588\\u2588\\u258c\\n// \\u2590\\u2588\\u2588\\u2588\\u2588\\u258c \\u2590\\u2588\\u2588\\u2588\\u2588\\u258c\\n// \\u2590\\u2588\\u2588\\u2588\\u2588\\u258c \\u2590\\u2588\\u2588\\u2588\\u2588\\u258c\\n// \\u2590\\u2588\\u2588\\u2588\\u2588\\u258c \\u2590\\u2588\\u2588\\u2588\\u2588\\u258c\\n// \\u2590\\u2588\\u2588\\u2588\\u2588\\u258c \\u2590\\u2588\\u2588\\u2588\\u2588\\u258c\\n// \\u2590\\u2588\\u2588\\u2588\\u2588\\u258c \\u2590\\u2588\\u2588\\u2588\\u2588\\u258c\\n\\npragma solidity 0.8.17;\\n\\n/// @title Bridge Governance library for storing updatable parameters.\\nlibrary BridgeGovernanceParameters {\\n struct TreasuryData {\\n address newTreasury;\\n uint256 treasuryChangeInitiated;\\n }\\n\\n struct DepositData {\\n uint64 newDepositDustThreshold;\\n uint256 depositDustThresholdChangeInitiated;\\n uint64 newDepositTreasuryFeeDivisor;\\n uint256 depositTreasuryFeeDivisorChangeInitiated;\\n uint64 newDepositTxMaxFee;\\n uint256 depositTxMaxFeeChangeInitiated;\\n uint32 newDepositRevealAheadPeriod;\\n uint256 depositRevealAheadPeriodChangeInitiated;\\n }\\n\\n struct RedemptionData {\\n uint64 newRedemptionDustThreshold;\\n uint256 redemptionDustThresholdChangeInitiated;\\n uint64 newRedemptionTreasuryFeeDivisor;\\n uint256 redemptionTreasuryFeeDivisorChangeInitiated;\\n uint64 newRedemptionTxMaxFee;\\n uint256 redemptionTxMaxFeeChangeInitiated;\\n uint64 newRedemptionTxMaxTotalFee;\\n uint256 redemptionTxMaxTotalFeeChangeInitiated;\\n uint32 newRedemptionTimeout;\\n uint256 redemptionTimeoutChangeInitiated;\\n uint96 newRedemptionTimeoutSlashingAmount;\\n uint256 redemptionTimeoutSlashingAmountChangeInitiated;\\n uint32 newRedemptionTimeoutNotifierRewardMultiplier;\\n uint256 redemptionTimeoutNotifierRewardMultiplierChangeInitiated;\\n }\\n\\n struct MovingFundsData {\\n uint64 newMovingFundsTxMaxTotalFee;\\n uint256 movingFundsTxMaxTotalFeeChangeInitiated;\\n uint64 newMovingFundsDustThreshold;\\n uint256 movingFundsDustThresholdChangeInitiated;\\n uint32 newMovingFundsTimeoutResetDelay;\\n uint256 movingFundsTimeoutResetDelayChangeInitiated;\\n uint32 newMovingFundsTimeout;\\n uint256 movingFundsTimeoutChangeInitiated;\\n uint96 newMovingFundsTimeoutSlashingAmount;\\n uint256 movingFundsTimeoutSlashingAmountChangeInitiated;\\n uint32 newMovingFundsTimeoutNotifierRewardMultiplier;\\n uint256 movingFundsTimeoutNotifierRewardMultiplierChangeInitiated;\\n uint16 newMovingFundsCommitmentGasOffset;\\n uint256 movingFundsCommitmentGasOffsetChangeInitiated;\\n uint64 newMovedFundsSweepTxMaxTotalFee;\\n uint256 movedFundsSweepTxMaxTotalFeeChangeInitiated;\\n uint32 newMovedFundsSweepTimeout;\\n uint256 movedFundsSweepTimeoutChangeInitiated;\\n uint96 newMovedFundsSweepTimeoutSlashingAmount;\\n uint256 movedFundsSweepTimeoutSlashingAmountChangeInitiated;\\n uint32 newMovedFundsSweepTimeoutNotifierRewardMultiplier;\\n uint256 movedFundsSweepTimeoutNotifierRewardMultiplierChangeInitiated;\\n }\\n\\n struct WalletData {\\n uint32 newWalletCreationPeriod;\\n uint256 walletCreationPeriodChangeInitiated;\\n uint64 newWalletCreationMinBtcBalance;\\n uint256 walletCreationMinBtcBalanceChangeInitiated;\\n uint64 newWalletCreationMaxBtcBalance;\\n uint256 walletCreationMaxBtcBalanceChangeInitiated;\\n uint64 newWalletClosureMinBtcBalance;\\n uint256 walletClosureMinBtcBalanceChangeInitiated;\\n uint32 newWalletMaxAge;\\n uint256 walletMaxAgeChangeInitiated;\\n uint64 newWalletMaxBtcTransfer;\\n uint256 walletMaxBtcTransferChangeInitiated;\\n uint32 newWalletClosingPeriod;\\n uint256 walletClosingPeriodChangeInitiated;\\n }\\n\\n struct FraudData {\\n uint96 newFraudChallengeDepositAmount;\\n uint256 fraudChallengeDepositAmountChangeInitiated;\\n uint32 newFraudChallengeDefeatTimeout;\\n uint256 fraudChallengeDefeatTimeoutChangeInitiated;\\n uint96 newFraudSlashingAmount;\\n uint256 fraudSlashingAmountChangeInitiated;\\n uint32 newFraudNotifierRewardMultiplier;\\n uint256 fraudNotifierRewardMultiplierChangeInitiated;\\n }\\n\\n event DepositDustThresholdUpdateStarted(\\n uint64 newDepositDustThreshold,\\n uint256 timestamp\\n );\\n event DepositDustThresholdUpdated(uint64 depositDustThreshold);\\n\\n event DepositTreasuryFeeDivisorUpdateStarted(\\n uint64 depositTreasuryFeeDivisor,\\n uint256 timestamp\\n );\\n event DepositTreasuryFeeDivisorUpdated(uint64 depositTreasuryFeeDivisor);\\n\\n event DepositTxMaxFeeUpdateStarted(\\n uint64 newDepositTxMaxFee,\\n uint256 timestamp\\n );\\n event DepositTxMaxFeeUpdated(uint64 depositTxMaxFee);\\n\\n event DepositRevealAheadPeriodUpdateStarted(\\n uint32 newDepositRevealAheadPeriod,\\n uint256 timestamp\\n );\\n event DepositRevealAheadPeriodUpdated(uint32 depositRevealAheadPeriod);\\n\\n event RedemptionDustThresholdUpdateStarted(\\n uint64 newRedemptionDustThreshold,\\n uint256 timestamp\\n );\\n event RedemptionDustThresholdUpdated(uint64 redemptionDustThreshold);\\n\\n event RedemptionTreasuryFeeDivisorUpdateStarted(\\n uint64 newRedemptionTreasuryFeeDivisor,\\n uint256 timestamp\\n );\\n event RedemptionTreasuryFeeDivisorUpdated(\\n uint64 redemptionTreasuryFeeDivisor\\n );\\n\\n event RedemptionTxMaxFeeUpdateStarted(\\n uint64 newRedemptionTxMaxFee,\\n uint256 timestamp\\n );\\n event RedemptionTxMaxFeeUpdated(uint64 redemptionTxMaxFee);\\n\\n event RedemptionTxMaxTotalFeeUpdateStarted(\\n uint64 newRedemptionTxMaxTotalFee,\\n uint256 timestamp\\n );\\n event RedemptionTxMaxTotalFeeUpdated(uint64 redemptionTxMaxTotalFee);\\n\\n event RedemptionTimeoutUpdateStarted(\\n uint32 newRedemptionTimeout,\\n uint256 timestamp\\n );\\n event RedemptionTimeoutUpdated(uint32 redemptionTimeout);\\n\\n event RedemptionTimeoutSlashingAmountUpdateStarted(\\n uint96 newRedemptionTimeoutSlashingAmount,\\n uint256 timestamp\\n );\\n event RedemptionTimeoutSlashingAmountUpdated(\\n uint96 redemptionTimeoutSlashingAmount\\n );\\n\\n event RedemptionTimeoutNotifierRewardMultiplierUpdateStarted(\\n uint32 newRedemptionTimeoutNotifierRewardMultiplier,\\n uint256 timestamp\\n );\\n event RedemptionTimeoutNotifierRewardMultiplierUpdated(\\n uint32 redemptionTimeoutNotifierRewardMultiplier\\n );\\n\\n event MovingFundsTxMaxTotalFeeUpdateStarted(\\n uint64 newMovingFundsTxMaxTotalFee,\\n uint256 timestamp\\n );\\n event MovingFundsTxMaxTotalFeeUpdated(uint64 movingFundsTxMaxTotalFee);\\n\\n event MovingFundsDustThresholdUpdateStarted(\\n uint64 newMovingFundsDustThreshold,\\n uint256 timestamp\\n );\\n event MovingFundsDustThresholdUpdated(uint64 movingFundsDustThreshold);\\n\\n event MovingFundsTimeoutResetDelayUpdateStarted(\\n uint32 newMovingFundsTimeoutResetDelay,\\n uint256 timestamp\\n );\\n event MovingFundsTimeoutResetDelayUpdated(\\n uint32 movingFundsTimeoutResetDelay\\n );\\n\\n event MovingFundsTimeoutUpdateStarted(\\n uint32 newMovingFundsTimeout,\\n uint256 timestamp\\n );\\n event MovingFundsTimeoutUpdated(uint32 movingFundsTimeout);\\n\\n event MovingFundsTimeoutSlashingAmountUpdateStarted(\\n uint96 newMovingFundsTimeoutSlashingAmount,\\n uint256 timestamp\\n );\\n event MovingFundsTimeoutSlashingAmountUpdated(\\n uint96 movingFundsTimeoutSlashingAmount\\n );\\n\\n event MovingFundsTimeoutNotifierRewardMultiplierUpdateStarted(\\n uint32 newMovingFundsTimeoutNotifierRewardMultiplier,\\n uint256 timestamp\\n );\\n event MovingFundsTimeoutNotifierRewardMultiplierUpdated(\\n uint32 movingFundsTimeoutNotifierRewardMultiplier\\n );\\n\\n event MovingFundsCommitmentGasOffsetUpdateStarted(\\n uint16 newMovingFundsCommitmentGasOffset,\\n uint256 timestamp\\n );\\n event MovingFundsCommitmentGasOffsetUpdated(\\n uint16 movingFundsCommitmentGasOffset\\n );\\n\\n event MovedFundsSweepTxMaxTotalFeeUpdateStarted(\\n uint64 newMovedFundsSweepTxMaxTotalFee,\\n uint256 timestamp\\n );\\n event MovedFundsSweepTxMaxTotalFeeUpdated(\\n uint64 movedFundsSweepTxMaxTotalFee\\n );\\n\\n event MovedFundsSweepTimeoutUpdateStarted(\\n uint32 newMovedFundsSweepTimeout,\\n uint256 timestamp\\n );\\n event MovedFundsSweepTimeoutUpdated(uint32 movedFundsSweepTimeout);\\n\\n event MovedFundsSweepTimeoutSlashingAmountUpdateStarted(\\n uint96 newMovedFundsSweepTimeoutSlashingAmount,\\n uint256 timestamp\\n );\\n event MovedFundsSweepTimeoutSlashingAmountUpdated(\\n uint96 movedFundsSweepTimeoutSlashingAmount\\n );\\n\\n event MovedFundsSweepTimeoutNotifierRewardMultiplierUpdateStarted(\\n uint32 newMovedFundsSweepTimeoutNotifierRewardMultiplier,\\n uint256 timestamp\\n );\\n event MovedFundsSweepTimeoutNotifierRewardMultiplierUpdated(\\n uint32 movedFundsSweepTimeoutNotifierRewardMultiplier\\n );\\n\\n event WalletCreationPeriodUpdateStarted(\\n uint32 newWalletCreationPeriod,\\n uint256 timestamp\\n );\\n event WalletCreationPeriodUpdated(uint32 walletCreationPeriod);\\n\\n event WalletCreationMinBtcBalanceUpdateStarted(\\n uint64 newWalletCreationMinBtcBalance,\\n uint256 timestamp\\n );\\n event WalletCreationMinBtcBalanceUpdated(\\n uint64 walletCreationMinBtcBalance\\n );\\n\\n event WalletCreationMaxBtcBalanceUpdateStarted(\\n uint64 newWalletCreationMaxBtcBalance,\\n uint256 timestamp\\n );\\n event WalletCreationMaxBtcBalanceUpdated(\\n uint64 walletCreationMaxBtcBalance\\n );\\n\\n event WalletClosureMinBtcBalanceUpdateStarted(\\n uint64 newWalletClosureMinBtcBalance,\\n uint256 timestamp\\n );\\n event WalletClosureMinBtcBalanceUpdated(uint64 walletClosureMinBtcBalance);\\n\\n event WalletMaxAgeUpdateStarted(uint32 newWalletMaxAge, uint256 timestamp);\\n event WalletMaxAgeUpdated(uint32 walletMaxAge);\\n\\n event WalletMaxBtcTransferUpdateStarted(\\n uint64 newWalletMaxBtcTransfer,\\n uint256 timestamp\\n );\\n event WalletMaxBtcTransferUpdated(uint64 walletMaxBtcTransfer);\\n\\n event WalletClosingPeriodUpdateStarted(\\n uint32 newWalletClosingPeriod,\\n uint256 timestamp\\n );\\n event WalletClosingPeriodUpdated(uint32 walletClosingPeriod);\\n\\n event FraudChallengeDepositAmountUpdateStarted(\\n uint96 newFraudChallengeDepositAmount,\\n uint256 timestamp\\n );\\n event FraudChallengeDepositAmountUpdated(\\n uint96 fraudChallengeDepositAmount\\n );\\n\\n event FraudChallengeDefeatTimeoutUpdateStarted(\\n uint32 newFraudChallengeDefeatTimeout,\\n uint256 timestamp\\n );\\n event FraudChallengeDefeatTimeoutUpdated(\\n uint32 fraudChallengeDefeatTimeout\\n );\\n\\n event FraudSlashingAmountUpdateStarted(\\n uint96 newFraudSlashingAmount,\\n uint256 timestamp\\n );\\n event FraudSlashingAmountUpdated(uint96 fraudSlashingAmount);\\n\\n event FraudNotifierRewardMultiplierUpdateStarted(\\n uint32 newFraudNotifierRewardMultiplier,\\n uint256 timestamp\\n );\\n event FraudNotifierRewardMultiplierUpdated(\\n uint32 fraudNotifierRewardMultiplier\\n );\\n\\n event TreasuryUpdateStarted(address newTreasury, uint256 timestamp);\\n event TreasuryUpdated(address treasury);\\n\\n /// @notice Reverts if called before the governance delay elapses.\\n /// @param changeInitiatedTimestamp Timestamp indicating the beginning\\n /// of the change.\\n modifier onlyAfterGovernanceDelay(\\n uint256 changeInitiatedTimestamp,\\n uint256 governanceDelay\\n ) {\\n /* solhint-disable not-rely-on-time */\\n require(changeInitiatedTimestamp > 0, \\\"Change not initiated\\\");\\n require(\\n block.timestamp - changeInitiatedTimestamp >= governanceDelay,\\n \\\"Governance delay has not elapsed\\\"\\n );\\n _;\\n /* solhint-enable not-rely-on-time */\\n }\\n\\n // --- Deposit\\n\\n /// @notice Begins the deposit dust threshold amount update process.\\n /// @param _newDepositDustThreshold New deposit dust threshold amount.\\n function beginDepositDustThresholdUpdate(\\n DepositData storage self,\\n uint64 _newDepositDustThreshold\\n ) external {\\n /* solhint-disable not-rely-on-time */\\n self.newDepositDustThreshold = _newDepositDustThreshold;\\n self.depositDustThresholdChangeInitiated = block.timestamp;\\n emit DepositDustThresholdUpdateStarted(\\n _newDepositDustThreshold,\\n block.timestamp\\n );\\n /* solhint-enable not-rely-on-time */\\n }\\n\\n /// @notice Finalizes the deposit dust threshold amount update process.\\n /// @dev Can be called after the governance delay elapses.\\n function finalizeDepositDustThresholdUpdate(\\n DepositData storage self,\\n uint256 governanceDelay\\n )\\n external\\n onlyAfterGovernanceDelay(\\n self.depositDustThresholdChangeInitiated,\\n governanceDelay\\n )\\n {\\n emit DepositDustThresholdUpdated(self.newDepositDustThreshold);\\n\\n self.newDepositDustThreshold = 0;\\n self.depositDustThresholdChangeInitiated = 0;\\n }\\n\\n /// @notice Begins the deposit treasury fee divisor amount update process.\\n /// @param _newDepositTreasuryFeeDivisor New deposit treasury fee divisor amount.\\n function beginDepositTreasuryFeeDivisorUpdate(\\n DepositData storage self,\\n uint64 _newDepositTreasuryFeeDivisor\\n ) external {\\n /* solhint-disable not-rely-on-time */\\n self.newDepositTreasuryFeeDivisor = _newDepositTreasuryFeeDivisor;\\n self.depositTreasuryFeeDivisorChangeInitiated = block.timestamp;\\n emit DepositTreasuryFeeDivisorUpdateStarted(\\n _newDepositTreasuryFeeDivisor,\\n block.timestamp\\n );\\n /* solhint-enable not-rely-on-time */\\n }\\n\\n /// @notice Finalizes the deposit treasury fee divisor amount update process.\\n /// @dev Can be called after the governance delay elapses.\\n function finalizeDepositTreasuryFeeDivisorUpdate(\\n DepositData storage self,\\n uint256 governanceDelay\\n )\\n external\\n onlyAfterGovernanceDelay(\\n self.depositTreasuryFeeDivisorChangeInitiated,\\n governanceDelay\\n )\\n {\\n emit DepositTreasuryFeeDivisorUpdated(\\n self.newDepositTreasuryFeeDivisor\\n );\\n\\n self.newDepositTreasuryFeeDivisor = 0;\\n self.depositTreasuryFeeDivisorChangeInitiated = 0;\\n }\\n\\n /// @notice Begins the deposit tx max fee amount update process.\\n /// @param _newDepositTxMaxFee New deposit tx max fee amount.\\n function beginDepositTxMaxFeeUpdate(\\n DepositData storage self,\\n uint64 _newDepositTxMaxFee\\n ) external {\\n /* solhint-disable not-rely-on-time */\\n self.newDepositTxMaxFee = _newDepositTxMaxFee;\\n self.depositTxMaxFeeChangeInitiated = block.timestamp;\\n emit DepositTxMaxFeeUpdateStarted(_newDepositTxMaxFee, block.timestamp);\\n /* solhint-enable not-rely-on-time */\\n }\\n\\n /// @notice Finalizes the deposit tx max fee amount update process.\\n /// @dev Can be called after the governance delay elapses.\\n function finalizeDepositTxMaxFeeUpdate(\\n DepositData storage self,\\n uint256 governanceDelay\\n )\\n external\\n onlyAfterGovernanceDelay(\\n self.depositTxMaxFeeChangeInitiated,\\n governanceDelay\\n )\\n {\\n emit DepositTxMaxFeeUpdated(self.newDepositTxMaxFee);\\n\\n self.newDepositTxMaxFee = 0;\\n self.depositTxMaxFeeChangeInitiated = 0;\\n }\\n\\n /// @notice Begins the deposit reveal ahead period update process.\\n /// @param _newDepositRevealAheadPeriod New deposit reveal ahead period.\\n function beginDepositRevealAheadPeriodUpdate(\\n DepositData storage self,\\n uint32 _newDepositRevealAheadPeriod\\n ) external {\\n /* solhint-disable not-rely-on-time */\\n self.newDepositRevealAheadPeriod = _newDepositRevealAheadPeriod;\\n self.depositRevealAheadPeriodChangeInitiated = block.timestamp;\\n emit DepositRevealAheadPeriodUpdateStarted(\\n _newDepositRevealAheadPeriod,\\n block.timestamp\\n );\\n /* solhint-enable not-rely-on-time */\\n }\\n\\n /// @notice Finalizes the deposit reveal ahead period update process.\\n /// @dev Can be called after the governance delay elapses.\\n function finalizeDepositRevealAheadPeriodUpdate(\\n DepositData storage self,\\n uint256 governanceDelay\\n )\\n external\\n onlyAfterGovernanceDelay(\\n self.depositRevealAheadPeriodChangeInitiated,\\n governanceDelay\\n )\\n {\\n emit DepositRevealAheadPeriodUpdated(self.newDepositRevealAheadPeriod);\\n\\n self.newDepositRevealAheadPeriod = 0;\\n self.depositRevealAheadPeriodChangeInitiated = 0;\\n }\\n\\n // --- Redemption\\n\\n /// @notice Begins the redemption dust threshold amount update process.\\n /// @param _newRedemptionDustThreshold New redemption dust threshold amount.\\n function beginRedemptionDustThresholdUpdate(\\n RedemptionData storage self,\\n uint64 _newRedemptionDustThreshold\\n ) external {\\n /* solhint-disable not-rely-on-time */\\n self.newRedemptionDustThreshold = _newRedemptionDustThreshold;\\n self.redemptionDustThresholdChangeInitiated = block.timestamp;\\n emit RedemptionDustThresholdUpdateStarted(\\n _newRedemptionDustThreshold,\\n block.timestamp\\n );\\n /* solhint-enable not-rely-on-time */\\n }\\n\\n /// @notice Finalizes the redemption dust threshold amount update process.\\n /// @dev Can be called after the governance delay elapses.\\n function finalizeRedemptionDustThresholdUpdate(\\n RedemptionData storage self,\\n uint256 governanceDelay\\n )\\n external\\n onlyAfterGovernanceDelay(\\n self.redemptionDustThresholdChangeInitiated,\\n governanceDelay\\n )\\n {\\n emit RedemptionDustThresholdUpdated(self.newRedemptionDustThreshold);\\n\\n self.newRedemptionDustThreshold = 0;\\n self.redemptionDustThresholdChangeInitiated = 0;\\n }\\n\\n /// @notice Begins the redemption treasury fee divisor amount update process.\\n /// @param _newRedemptionTreasuryFeeDivisor New redemption treasury fee divisor\\n /// amount.\\n function beginRedemptionTreasuryFeeDivisorUpdate(\\n RedemptionData storage self,\\n uint64 _newRedemptionTreasuryFeeDivisor\\n ) external {\\n /* solhint-disable not-rely-on-time */\\n self.newRedemptionTreasuryFeeDivisor = _newRedemptionTreasuryFeeDivisor;\\n self.redemptionTreasuryFeeDivisorChangeInitiated = block.timestamp;\\n emit RedemptionTreasuryFeeDivisorUpdateStarted(\\n _newRedemptionTreasuryFeeDivisor,\\n block.timestamp\\n );\\n /* solhint-enable not-rely-on-time */\\n }\\n\\n /// @notice Finalizes the redemption treasury fee divisor amount update process.\\n /// @dev Can be called after the governance delay elapses.\\n function finalizeRedemptionTreasuryFeeDivisorUpdate(\\n RedemptionData storage self,\\n uint256 governanceDelay\\n )\\n external\\n onlyAfterGovernanceDelay(\\n self.redemptionTreasuryFeeDivisorChangeInitiated,\\n governanceDelay\\n )\\n {\\n emit RedemptionTreasuryFeeDivisorUpdated(\\n self.newRedemptionTreasuryFeeDivisor\\n );\\n\\n self.newRedemptionTreasuryFeeDivisor = 0;\\n self.redemptionTreasuryFeeDivisorChangeInitiated = 0;\\n }\\n\\n /// @notice Begins the redemption tx max fee amount update process.\\n /// @param _newRedemptionTxMaxFee New redemption tx max fee amount.\\n function beginRedemptionTxMaxFeeUpdate(\\n RedemptionData storage self,\\n uint64 _newRedemptionTxMaxFee\\n ) external {\\n /* solhint-disable not-rely-on-time */\\n self.newRedemptionTxMaxFee = _newRedemptionTxMaxFee;\\n self.redemptionTxMaxFeeChangeInitiated = block.timestamp;\\n emit RedemptionTxMaxFeeUpdateStarted(\\n _newRedemptionTxMaxFee,\\n block.timestamp\\n );\\n /* solhint-enable not-rely-on-time */\\n }\\n\\n /// @notice Finalizes the redemption tx max fee amount update process.\\n /// @dev Can be called after the governance delay elapses.\\n function finalizeRedemptionTxMaxFeeUpdate(\\n RedemptionData storage self,\\n uint256 governanceDelay\\n )\\n external\\n onlyAfterGovernanceDelay(\\n self.redemptionTxMaxFeeChangeInitiated,\\n governanceDelay\\n )\\n {\\n emit RedemptionTxMaxFeeUpdated(self.newRedemptionTxMaxFee);\\n\\n self.newRedemptionTxMaxFee = 0;\\n self.redemptionTxMaxFeeChangeInitiated = 0;\\n }\\n\\n /// @notice Begins the redemption tx max total fee amount update process.\\n /// @param _newRedemptionTxMaxTotalFee New redemption tx max total fee amount.\\n function beginRedemptionTxMaxTotalFeeUpdate(\\n RedemptionData storage self,\\n uint64 _newRedemptionTxMaxTotalFee\\n ) external {\\n /* solhint-disable not-rely-on-time */\\n self.newRedemptionTxMaxTotalFee = _newRedemptionTxMaxTotalFee;\\n self.redemptionTxMaxTotalFeeChangeInitiated = block.timestamp;\\n emit RedemptionTxMaxTotalFeeUpdateStarted(\\n _newRedemptionTxMaxTotalFee,\\n block.timestamp\\n );\\n /* solhint-enable not-rely-on-time */\\n }\\n\\n /// @notice Finalizes the redemption tx max total fee amount update process.\\n /// @dev Can be called after the governance delay elapses.\\n function finalizeRedemptionTxMaxTotalFeeUpdate(\\n RedemptionData storage self,\\n uint256 governanceDelay\\n )\\n external\\n onlyAfterGovernanceDelay(\\n self.redemptionTxMaxTotalFeeChangeInitiated,\\n governanceDelay\\n )\\n {\\n emit RedemptionTxMaxTotalFeeUpdated(self.newRedemptionTxMaxTotalFee);\\n\\n self.newRedemptionTxMaxTotalFee = 0;\\n self.redemptionTxMaxTotalFeeChangeInitiated = 0;\\n }\\n\\n /// @notice Begins the redemption timeout amount update process.\\n /// @param _newRedemptionTimeout New redemption timeout amount.\\n function beginRedemptionTimeoutUpdate(\\n RedemptionData storage self,\\n uint32 _newRedemptionTimeout\\n ) external {\\n /* solhint-disable not-rely-on-time */\\n self.newRedemptionTimeout = _newRedemptionTimeout;\\n self.redemptionTimeoutChangeInitiated = block.timestamp;\\n emit RedemptionTimeoutUpdateStarted(\\n _newRedemptionTimeout,\\n block.timestamp\\n );\\n /* solhint-enable not-rely-on-time */\\n }\\n\\n /// @notice Finalizes the redemption timeout amount update\\n /// process.\\n /// @dev Can be called after the governance delay elapses.\\n function finalizeRedemptionTimeoutUpdate(\\n RedemptionData storage self,\\n uint256 governanceDelay\\n )\\n external\\n onlyAfterGovernanceDelay(\\n self.redemptionTimeoutChangeInitiated,\\n governanceDelay\\n )\\n {\\n emit RedemptionTimeoutUpdated(self.newRedemptionTimeout);\\n\\n self.newRedemptionTimeout = 0;\\n self.redemptionTimeoutChangeInitiated = 0;\\n }\\n\\n /// @notice Begins the redemption timeout slashing amount update process.\\n /// @param _newRedemptionTimeoutSlashingAmount New redemption timeout slashing\\n /// amount.\\n function beginRedemptionTimeoutSlashingAmountUpdate(\\n RedemptionData storage self,\\n uint96 _newRedemptionTimeoutSlashingAmount\\n ) external {\\n /* solhint-disable not-rely-on-time */\\n self\\n .newRedemptionTimeoutSlashingAmount = _newRedemptionTimeoutSlashingAmount;\\n self.redemptionTimeoutSlashingAmountChangeInitiated = block.timestamp;\\n emit RedemptionTimeoutSlashingAmountUpdateStarted(\\n _newRedemptionTimeoutSlashingAmount,\\n block.timestamp\\n );\\n /* solhint-enable not-rely-on-time */\\n }\\n\\n /// @notice Finalizes the redemption timeout slashing amount update process.\\n /// @dev Can be called after the governance delay elapses.\\n function finalizeRedemptionTimeoutSlashingAmountUpdate(\\n RedemptionData storage self,\\n uint256 governanceDelay\\n )\\n external\\n onlyAfterGovernanceDelay(\\n self.redemptionTimeoutSlashingAmountChangeInitiated,\\n governanceDelay\\n )\\n {\\n emit RedemptionTimeoutSlashingAmountUpdated(\\n self.newRedemptionTimeoutSlashingAmount\\n );\\n\\n self.newRedemptionTimeoutSlashingAmount = 0;\\n self.redemptionTimeoutSlashingAmountChangeInitiated = 0;\\n }\\n\\n /// @notice Begins the redemption timeout notifier reward multiplier amount\\n /// update process.\\n /// @param _newRedemptionTimeoutNotifierRewardMultiplier New redemption\\n /// timeout notifier reward multiplier amount.\\n function beginRedemptionTimeoutNotifierRewardMultiplierUpdate(\\n RedemptionData storage self,\\n uint32 _newRedemptionTimeoutNotifierRewardMultiplier\\n ) external {\\n /* solhint-disable not-rely-on-time */\\n self\\n .newRedemptionTimeoutNotifierRewardMultiplier = _newRedemptionTimeoutNotifierRewardMultiplier;\\n self.redemptionTimeoutNotifierRewardMultiplierChangeInitiated = block\\n .timestamp;\\n emit RedemptionTimeoutNotifierRewardMultiplierUpdateStarted(\\n _newRedemptionTimeoutNotifierRewardMultiplier,\\n block.timestamp\\n );\\n /* solhint-enable not-rely-on-time */\\n }\\n\\n /// @notice Finalizes the redemption timeout notifier reward multiplier amount update process.\\n /// @dev Can be called after the governance delay elapses.\\n function finalizeRedemptionTimeoutNotifierRewardMultiplierUpdate(\\n RedemptionData storage self,\\n uint256 governanceDelay\\n )\\n external\\n onlyAfterGovernanceDelay(\\n self.redemptionTimeoutNotifierRewardMultiplierChangeInitiated,\\n governanceDelay\\n )\\n {\\n emit RedemptionTimeoutNotifierRewardMultiplierUpdated(\\n self.newRedemptionTimeoutNotifierRewardMultiplier\\n );\\n\\n self.newRedemptionTimeoutNotifierRewardMultiplier = 0;\\n self.redemptionTimeoutNotifierRewardMultiplierChangeInitiated = 0;\\n }\\n\\n // --- Moving funds\\n\\n /// @notice Begins the moving funds tx max total fee amount update process.\\n /// @param _newMovingFundsTxMaxTotalFee New moving funds tx max total fee amount.\\n function beginMovingFundsTxMaxTotalFeeUpdate(\\n MovingFundsData storage self,\\n uint64 _newMovingFundsTxMaxTotalFee\\n ) external {\\n /* solhint-disable not-rely-on-time */\\n self.newMovingFundsTxMaxTotalFee = _newMovingFundsTxMaxTotalFee;\\n self.movingFundsTxMaxTotalFeeChangeInitiated = block.timestamp;\\n emit MovingFundsTxMaxTotalFeeUpdateStarted(\\n _newMovingFundsTxMaxTotalFee,\\n block.timestamp\\n );\\n /* solhint-enable not-rely-on-time */\\n }\\n\\n /// @notice Finalizes the moving funds tx max total fee amount update process.\\n /// @dev Can be called after the governance delay elapses.\\n function finalizeMovingFundsTxMaxTotalFeeUpdate(\\n MovingFundsData storage self,\\n uint256 governanceDelay\\n )\\n external\\n onlyAfterGovernanceDelay(\\n self.movingFundsTxMaxTotalFeeChangeInitiated,\\n governanceDelay\\n )\\n {\\n emit MovingFundsTxMaxTotalFeeUpdated(self.newMovingFundsTxMaxTotalFee);\\n\\n self.newMovingFundsTxMaxTotalFee = 0;\\n self.movingFundsTxMaxTotalFeeChangeInitiated = 0;\\n }\\n\\n /// @notice Begins the moving funds dust threshold amount update process.\\n /// @param _newMovingFundsDustThreshold New moving funds dust threshold amount.\\n function beginMovingFundsDustThresholdUpdate(\\n MovingFundsData storage self,\\n uint64 _newMovingFundsDustThreshold\\n ) external {\\n /* solhint-disable not-rely-on-time */\\n self.newMovingFundsDustThreshold = _newMovingFundsDustThreshold;\\n self.movingFundsDustThresholdChangeInitiated = block.timestamp;\\n emit MovingFundsDustThresholdUpdateStarted(\\n _newMovingFundsDustThreshold,\\n block.timestamp\\n );\\n /* solhint-enable not-rely-on-time */\\n }\\n\\n /// @notice Finalizes the moving funds dust threshold amount update process.\\n /// @dev Can be called after the governance delay elapses.\\n function finalizeMovingFundsDustThresholdUpdate(\\n MovingFundsData storage self,\\n uint256 governanceDelay\\n )\\n external\\n onlyAfterGovernanceDelay(\\n self.movingFundsDustThresholdChangeInitiated,\\n governanceDelay\\n )\\n {\\n emit MovingFundsDustThresholdUpdated(self.newMovingFundsDustThreshold);\\n\\n self.newMovingFundsDustThreshold = 0;\\n self.movingFundsDustThresholdChangeInitiated = 0;\\n }\\n\\n /// @notice Begins the moving funds timeout reset delay amount update process.\\n /// @param _newMovingFundsTimeoutResetDelay New moving funds timeout reset\\n /// delay amount.\\n function beginMovingFundsTimeoutResetDelayUpdate(\\n MovingFundsData storage self,\\n uint32 _newMovingFundsTimeoutResetDelay\\n ) external {\\n /* solhint-disable not-rely-on-time */\\n self.newMovingFundsTimeoutResetDelay = _newMovingFundsTimeoutResetDelay;\\n self.movingFundsTimeoutResetDelayChangeInitiated = block.timestamp;\\n emit MovingFundsTimeoutResetDelayUpdateStarted(\\n _newMovingFundsTimeoutResetDelay,\\n block.timestamp\\n );\\n /* solhint-enable not-rely-on-time */\\n }\\n\\n /// @notice Finalizes the moving funds timeout reset delay amount update process.\\n /// @dev Can be called after the governance delay elapses.\\n function finalizeMovingFundsTimeoutResetDelayUpdate(\\n MovingFundsData storage self,\\n uint256 governanceDelay\\n )\\n external\\n onlyAfterGovernanceDelay(\\n self.movingFundsTimeoutResetDelayChangeInitiated,\\n governanceDelay\\n )\\n {\\n emit MovingFundsTimeoutResetDelayUpdated(\\n self.newMovingFundsTimeoutResetDelay\\n );\\n\\n self.newMovingFundsTimeoutResetDelay = 0;\\n self.movingFundsTimeoutResetDelayChangeInitiated = 0;\\n }\\n\\n /// @notice Begins the moving funds timeout amount update process.\\n /// @param _newMovingFundsTimeout New moving funds timeout amount.\\n function beginMovingFundsTimeoutUpdate(\\n MovingFundsData storage self,\\n uint32 _newMovingFundsTimeout\\n ) external {\\n /* solhint-disable not-rely-on-time */\\n self.newMovingFundsTimeout = _newMovingFundsTimeout;\\n self.movingFundsTimeoutChangeInitiated = block.timestamp;\\n emit MovingFundsTimeoutUpdateStarted(\\n _newMovingFundsTimeout,\\n block.timestamp\\n );\\n /* solhint-enable not-rely-on-time */\\n }\\n\\n /// @notice Finalizes the moving funds timeout amount update process.\\n /// @dev Can be called after the governance delay elapses.\\n function finalizeMovingFundsTimeoutUpdate(\\n MovingFundsData storage self,\\n uint256 governanceDelay\\n )\\n external\\n onlyAfterGovernanceDelay(\\n self.movingFundsTimeoutChangeInitiated,\\n governanceDelay\\n )\\n {\\n emit MovingFundsTimeoutUpdated(self.newMovingFundsTimeout);\\n\\n self.newMovingFundsTimeout = 0;\\n self.movingFundsTimeoutChangeInitiated = 0;\\n }\\n\\n /// @notice Begins the moving funds timeout slashing amount update process.\\n /// @param _newMovingFundsTimeoutSlashingAmount New moving funds timeout slashing amount.\\n function beginMovingFundsTimeoutSlashingAmountUpdate(\\n MovingFundsData storage self,\\n uint96 _newMovingFundsTimeoutSlashingAmount\\n ) external {\\n /* solhint-disable not-rely-on-time */\\n self\\n .newMovingFundsTimeoutSlashingAmount = _newMovingFundsTimeoutSlashingAmount;\\n self.movingFundsTimeoutSlashingAmountChangeInitiated = block.timestamp;\\n emit MovingFundsTimeoutSlashingAmountUpdateStarted(\\n _newMovingFundsTimeoutSlashingAmount,\\n block.timestamp\\n );\\n /* solhint-enable not-rely-on-time */\\n }\\n\\n /// @notice Finalizes the moving funds timeout slashing amount update process.\\n /// @dev Can be called after the governance delay elapses.\\n function finalizeMovingFundsTimeoutSlashingAmountUpdate(\\n MovingFundsData storage self,\\n uint256 governanceDelay\\n )\\n external\\n onlyAfterGovernanceDelay(\\n self.movingFundsTimeoutSlashingAmountChangeInitiated,\\n governanceDelay\\n )\\n {\\n emit MovingFundsTimeoutSlashingAmountUpdated(\\n self.newMovingFundsTimeoutSlashingAmount\\n );\\n\\n self.newMovingFundsTimeoutSlashingAmount = 0;\\n self.movingFundsTimeoutSlashingAmountChangeInitiated = 0;\\n }\\n\\n /// @notice Begins the moving funds timeout notifier reward multiplier amount\\n /// update process.\\n /// @param _newMovingFundsTimeoutNotifierRewardMultiplier New moving funds\\n /// timeout notifier reward multiplier amount.\\n function beginMovingFundsTimeoutNotifierRewardMultiplierUpdate(\\n MovingFundsData storage self,\\n uint32 _newMovingFundsTimeoutNotifierRewardMultiplier\\n ) external {\\n /* solhint-disable not-rely-on-time */\\n self\\n .newMovingFundsTimeoutNotifierRewardMultiplier = _newMovingFundsTimeoutNotifierRewardMultiplier;\\n self.movingFundsTimeoutNotifierRewardMultiplierChangeInitiated = block\\n .timestamp;\\n emit MovingFundsTimeoutNotifierRewardMultiplierUpdateStarted(\\n _newMovingFundsTimeoutNotifierRewardMultiplier,\\n block.timestamp\\n );\\n /* solhint-enable not-rely-on-time */\\n }\\n\\n /// @notice Finalizes the moving funds timeout notifier reward multiplier\\n /// amount update process.\\n /// @dev Can be called after the governance delay elapses.\\n function finalizeMovingFundsTimeoutNotifierRewardMultiplierUpdate(\\n MovingFundsData storage self,\\n uint256 governanceDelay\\n )\\n external\\n onlyAfterGovernanceDelay(\\n self.movingFundsTimeoutNotifierRewardMultiplierChangeInitiated,\\n governanceDelay\\n )\\n {\\n emit MovingFundsTimeoutNotifierRewardMultiplierUpdated(\\n self.newMovingFundsTimeoutNotifierRewardMultiplier\\n );\\n\\n self.newMovingFundsTimeoutNotifierRewardMultiplier = 0;\\n self.movingFundsTimeoutNotifierRewardMultiplierChangeInitiated = 0;\\n }\\n\\n /// @notice Begins the moving funds commitment gas offset update process.\\n /// @param _newMovingFundsCommitmentGasOffset New moving funds commitment\\n /// gas offset.\\n function beginMovingFundsCommitmentGasOffsetUpdate(\\n MovingFundsData storage self,\\n uint16 _newMovingFundsCommitmentGasOffset\\n ) external {\\n /* solhint-disable not-rely-on-time */\\n self\\n .newMovingFundsCommitmentGasOffset = _newMovingFundsCommitmentGasOffset;\\n self.movingFundsCommitmentGasOffsetChangeInitiated = block.timestamp;\\n emit MovingFundsCommitmentGasOffsetUpdateStarted(\\n _newMovingFundsCommitmentGasOffset,\\n block.timestamp\\n );\\n /* solhint-enable not-rely-on-time */\\n }\\n\\n /// @notice Finalizes the moving funds commitment gas offset update process.\\n /// @dev Can be called after the governance delay elapses.\\n function finalizeMovingFundsCommitmentGasOffsetUpdate(\\n MovingFundsData storage self,\\n uint256 governanceDelay\\n )\\n external\\n onlyAfterGovernanceDelay(\\n self.movingFundsCommitmentGasOffsetChangeInitiated,\\n governanceDelay\\n )\\n {\\n emit MovingFundsCommitmentGasOffsetUpdated(\\n self.newMovingFundsCommitmentGasOffset\\n );\\n\\n self.newMovingFundsCommitmentGasOffset = 0;\\n self.movingFundsCommitmentGasOffsetChangeInitiated = 0;\\n }\\n\\n /// @notice Begins the moved funds sweep tx max total fee amount update process.\\n /// @param _newMovedFundsSweepTxMaxTotalFee New moved funds sweep tx max total\\n /// fee amount.\\n function beginMovedFundsSweepTxMaxTotalFeeUpdate(\\n MovingFundsData storage self,\\n uint64 _newMovedFundsSweepTxMaxTotalFee\\n ) external {\\n /* solhint-disable not-rely-on-time */\\n self.newMovedFundsSweepTxMaxTotalFee = _newMovedFundsSweepTxMaxTotalFee;\\n self.movedFundsSweepTxMaxTotalFeeChangeInitiated = block.timestamp;\\n emit MovedFundsSweepTxMaxTotalFeeUpdateStarted(\\n _newMovedFundsSweepTxMaxTotalFee,\\n block.timestamp\\n );\\n /* solhint-enable not-rely-on-time */\\n }\\n\\n /// @notice Finalizes the moved funds sweep tx max total fee amount update\\n /// process.\\n /// @dev Can be called after the governance delay elapses.\\n function finalizeMovedFundsSweepTxMaxTotalFeeUpdate(\\n MovingFundsData storage self,\\n uint256 governanceDelay\\n )\\n external\\n onlyAfterGovernanceDelay(\\n self.movedFundsSweepTxMaxTotalFeeChangeInitiated,\\n governanceDelay\\n )\\n {\\n emit MovedFundsSweepTxMaxTotalFeeUpdated(\\n self.newMovedFundsSweepTxMaxTotalFee\\n );\\n\\n self.newMovedFundsSweepTxMaxTotalFee = 0;\\n self.movedFundsSweepTxMaxTotalFeeChangeInitiated = 0;\\n }\\n\\n /// @notice Begins the moved funds sweep timeout amount update process.\\n /// @param _newMovedFundsSweepTimeout New moved funds sweep timeout amount.\\n function beginMovedFundsSweepTimeoutUpdate(\\n MovingFundsData storage self,\\n uint32 _newMovedFundsSweepTimeout\\n ) external {\\n /* solhint-disable not-rely-on-time */\\n self.newMovedFundsSweepTimeout = _newMovedFundsSweepTimeout;\\n self.movedFundsSweepTimeoutChangeInitiated = block.timestamp;\\n emit MovedFundsSweepTimeoutUpdateStarted(\\n _newMovedFundsSweepTimeout,\\n block.timestamp\\n );\\n /* solhint-enable not-rely-on-time */\\n }\\n\\n /// @notice Finalizes the moved funds sweep timeout amount update process.\\n /// @dev Can be called after the governance delay elapses.\\n function finalizeMovedFundsSweepTimeoutUpdate(\\n MovingFundsData storage self,\\n uint256 governanceDelay\\n )\\n external\\n onlyAfterGovernanceDelay(\\n self.movedFundsSweepTimeoutChangeInitiated,\\n governanceDelay\\n )\\n {\\n emit MovedFundsSweepTimeoutUpdated(self.newMovedFundsSweepTimeout);\\n\\n self.newMovedFundsSweepTimeout = 0;\\n self.movedFundsSweepTimeoutChangeInitiated = 0;\\n }\\n\\n /// @notice Begins the moved funds sweep timeout slashing amount update\\n /// process.\\n /// @param _newMovedFundsSweepTimeoutSlashingAmount New moved funds sweep\\n /// timeout slashing amount.\\n function beginMovedFundsSweepTimeoutSlashingAmountUpdate(\\n MovingFundsData storage self,\\n uint96 _newMovedFundsSweepTimeoutSlashingAmount\\n ) external {\\n /* solhint-disable not-rely-on-time */\\n self\\n .newMovedFundsSweepTimeoutSlashingAmount = _newMovedFundsSweepTimeoutSlashingAmount;\\n self.movedFundsSweepTimeoutSlashingAmountChangeInitiated = block\\n .timestamp;\\n emit MovedFundsSweepTimeoutSlashingAmountUpdateStarted(\\n _newMovedFundsSweepTimeoutSlashingAmount,\\n block.timestamp\\n );\\n /* solhint-enable not-rely-on-time */\\n }\\n\\n /// @notice Finalizes the moved funds sweep timeout slashing amount\\n /// update process.\\n /// @dev Can be called after the governance delay elapses.\\n function finalizeMovedFundsSweepTimeoutSlashingAmountUpdate(\\n MovingFundsData storage self,\\n uint256 governanceDelay\\n )\\n external\\n onlyAfterGovernanceDelay(\\n self.movedFundsSweepTimeoutSlashingAmountChangeInitiated,\\n governanceDelay\\n )\\n {\\n emit MovedFundsSweepTimeoutSlashingAmountUpdated(\\n self.newMovedFundsSweepTimeoutSlashingAmount\\n );\\n\\n self.newMovedFundsSweepTimeoutSlashingAmount = 0;\\n self.movedFundsSweepTimeoutSlashingAmountChangeInitiated = 0;\\n }\\n\\n /// @notice Begins the moved funds sweep timeout notifier reward multiplier\\n /// amount update process.\\n /// @param _newMovedFundsSweepTimeoutNotifierRewardMultiplier New moved funds\\n /// sweep timeout notifier reward multiplier amount.\\n function beginMovedFundsSweepTimeoutNotifierRewardMultiplierUpdate(\\n MovingFundsData storage self,\\n uint32 _newMovedFundsSweepTimeoutNotifierRewardMultiplier\\n ) external {\\n /* solhint-disable not-rely-on-time */\\n self\\n .newMovedFundsSweepTimeoutNotifierRewardMultiplier = _newMovedFundsSweepTimeoutNotifierRewardMultiplier;\\n self\\n .movedFundsSweepTimeoutNotifierRewardMultiplierChangeInitiated = block\\n .timestamp;\\n emit MovedFundsSweepTimeoutNotifierRewardMultiplierUpdateStarted(\\n _newMovedFundsSweepTimeoutNotifierRewardMultiplier,\\n block.timestamp\\n );\\n /* solhint-enable not-rely-on-time */\\n }\\n\\n /// @notice Finalizes the moved funds sweep timeout notifier reward multiplier\\n /// amount update process.\\n /// @dev Can be called after the governance delay elapses.\\n function finalizeMovedFundsSweepTimeoutNotifierRewardMultiplierUpdate(\\n MovingFundsData storage self,\\n uint256 governanceDelay\\n )\\n external\\n onlyAfterGovernanceDelay(\\n self.movedFundsSweepTimeoutNotifierRewardMultiplierChangeInitiated,\\n governanceDelay\\n )\\n {\\n emit MovedFundsSweepTimeoutNotifierRewardMultiplierUpdated(\\n self.newMovedFundsSweepTimeoutNotifierRewardMultiplier\\n );\\n\\n self.newMovedFundsSweepTimeoutNotifierRewardMultiplier = 0;\\n self.movedFundsSweepTimeoutNotifierRewardMultiplierChangeInitiated = 0;\\n }\\n\\n // --- Wallet params\\n\\n /// @notice Begins the wallet creation period amount update process.\\n /// @param _newWalletCreationPeriod New wallet creation period amount.\\n function beginWalletCreationPeriodUpdate(\\n WalletData storage self,\\n uint32 _newWalletCreationPeriod\\n ) external {\\n /* solhint-disable not-rely-on-time */\\n self.newWalletCreationPeriod = _newWalletCreationPeriod;\\n self.walletCreationPeriodChangeInitiated = block.timestamp;\\n emit WalletCreationPeriodUpdateStarted(\\n _newWalletCreationPeriod,\\n block.timestamp\\n );\\n /* solhint-enable not-rely-on-time */\\n }\\n\\n /// @notice Finalizes the wallet creation period amount update process.\\n /// @dev Can be called after the governance delay elapses.\\n function finalizeWalletCreationPeriodUpdate(\\n WalletData storage self,\\n uint256 governanceDelay\\n )\\n external\\n onlyAfterGovernanceDelay(\\n self.walletCreationPeriodChangeInitiated,\\n governanceDelay\\n )\\n {\\n emit WalletCreationPeriodUpdated(self.newWalletCreationPeriod);\\n\\n self.newWalletCreationPeriod = 0;\\n self.walletCreationPeriodChangeInitiated = 0;\\n }\\n\\n /// @notice Begins the wallet creation min btc balance amount update process.\\n /// @param _newWalletCreationMinBtcBalance New wallet creation min btc balance\\n /// amount.\\n function beginWalletCreationMinBtcBalanceUpdate(\\n WalletData storage self,\\n uint64 _newWalletCreationMinBtcBalance\\n ) external {\\n /* solhint-disable not-rely-on-time */\\n self.newWalletCreationMinBtcBalance = _newWalletCreationMinBtcBalance;\\n self.walletCreationMinBtcBalanceChangeInitiated = block.timestamp;\\n emit WalletCreationMinBtcBalanceUpdateStarted(\\n _newWalletCreationMinBtcBalance,\\n block.timestamp\\n );\\n /* solhint-enable not-rely-on-time */\\n }\\n\\n /// @notice Finalizes the wallet creation min btc balance amount update process.\\n /// @dev Can be called after the governance delay elapses.\\n function finalizeWalletCreationMinBtcBalanceUpdate(\\n WalletData storage self,\\n uint256 governanceDelay\\n )\\n external\\n onlyAfterGovernanceDelay(\\n self.walletCreationMinBtcBalanceChangeInitiated,\\n governanceDelay\\n )\\n {\\n emit WalletCreationMinBtcBalanceUpdated(\\n self.newWalletCreationMinBtcBalance\\n );\\n\\n self.newWalletCreationMinBtcBalance = 0;\\n self.walletCreationMinBtcBalanceChangeInitiated = 0;\\n }\\n\\n /// @notice Begins the wallet creation max btc balance amount update process.\\n /// @param _newWalletCreationMaxBtcBalance New wallet creation max btc balance\\n /// amount.\\n function beginWalletCreationMaxBtcBalanceUpdate(\\n WalletData storage self,\\n uint64 _newWalletCreationMaxBtcBalance\\n ) external {\\n /* solhint-disable not-rely-on-time */\\n self.newWalletCreationMaxBtcBalance = _newWalletCreationMaxBtcBalance;\\n self.walletCreationMaxBtcBalanceChangeInitiated = block.timestamp;\\n emit WalletCreationMaxBtcBalanceUpdateStarted(\\n _newWalletCreationMaxBtcBalance,\\n block.timestamp\\n );\\n /* solhint-enable not-rely-on-time */\\n }\\n\\n /// @notice Finalizes the wallet creation max btc balance amount update process.\\n /// @dev Can be called after the governance delay elapses.\\n function finalizeWalletCreationMaxBtcBalanceUpdate(\\n WalletData storage self,\\n uint256 governanceDelay\\n )\\n external\\n onlyAfterGovernanceDelay(\\n self.walletCreationMaxBtcBalanceChangeInitiated,\\n governanceDelay\\n )\\n {\\n emit WalletCreationMaxBtcBalanceUpdated(\\n self.newWalletCreationMaxBtcBalance\\n );\\n\\n self.newWalletCreationMaxBtcBalance = 0;\\n self.walletCreationMaxBtcBalanceChangeInitiated = 0;\\n }\\n\\n /// @notice Begins the wallet closure min btc balance amount update process.\\n /// @param _newWalletClosureMinBtcBalance New wallet closure min btc balance amount.\\n function beginWalletClosureMinBtcBalanceUpdate(\\n WalletData storage self,\\n uint64 _newWalletClosureMinBtcBalance\\n ) external {\\n /* solhint-disable not-rely-on-time */\\n self.newWalletClosureMinBtcBalance = _newWalletClosureMinBtcBalance;\\n self.walletClosureMinBtcBalanceChangeInitiated = block.timestamp;\\n emit WalletClosureMinBtcBalanceUpdateStarted(\\n _newWalletClosureMinBtcBalance,\\n block.timestamp\\n );\\n /* solhint-enable not-rely-on-time */\\n }\\n\\n /// @notice Finalizes the wallet closure min btc balance amount update process.\\n /// @dev Can be called after the governance delay elapses.\\n function finalizeWalletClosureMinBtcBalanceUpdate(\\n WalletData storage self,\\n uint256 governanceDelay\\n )\\n external\\n onlyAfterGovernanceDelay(\\n self.walletClosureMinBtcBalanceChangeInitiated,\\n governanceDelay\\n )\\n {\\n emit WalletClosureMinBtcBalanceUpdated(\\n self.newWalletClosureMinBtcBalance\\n );\\n\\n self.newWalletClosureMinBtcBalance = 0;\\n self.walletClosureMinBtcBalanceChangeInitiated = 0;\\n }\\n\\n /// @notice Begins the wallet max age amount update process.\\n /// @param _newWalletMaxAge New wallet max age amount.\\n function beginWalletMaxAgeUpdate(\\n WalletData storage self,\\n uint32 _newWalletMaxAge\\n ) external {\\n /* solhint-disable not-rely-on-time */\\n self.newWalletMaxAge = _newWalletMaxAge;\\n self.walletMaxAgeChangeInitiated = block.timestamp;\\n emit WalletMaxAgeUpdateStarted(_newWalletMaxAge, block.timestamp);\\n /* solhint-enable not-rely-on-time */\\n }\\n\\n /// @notice Finalizes the wallet max age amount update process.\\n /// @dev Can be called after the governance delay elapses.\\n function finalizeWalletMaxAgeUpdate(\\n WalletData storage self,\\n uint256 governanceDelay\\n )\\n external\\n onlyAfterGovernanceDelay(\\n self.walletMaxAgeChangeInitiated,\\n governanceDelay\\n )\\n {\\n emit WalletMaxAgeUpdated(self.newWalletMaxAge);\\n\\n self.newWalletMaxAge = 0;\\n self.walletMaxAgeChangeInitiated = 0;\\n }\\n\\n /// @notice Begins the wallet max btc transfer amount update process.\\n /// @param _newWalletMaxBtcTransfer New wallet max btc transfer amount.\\n function beginWalletMaxBtcTransferUpdate(\\n WalletData storage self,\\n uint64 _newWalletMaxBtcTransfer\\n ) external {\\n /* solhint-disable not-rely-on-time */\\n self.newWalletMaxBtcTransfer = _newWalletMaxBtcTransfer;\\n self.walletMaxBtcTransferChangeInitiated = block.timestamp;\\n emit WalletMaxBtcTransferUpdateStarted(\\n _newWalletMaxBtcTransfer,\\n block.timestamp\\n );\\n /* solhint-enable not-rely-on-time */\\n }\\n\\n /// @notice Finalizes the wallet max btc transfer amount update process.\\n /// @dev Can be called after the governance delay elapses.\\n function finalizeWalletMaxBtcTransferUpdate(\\n WalletData storage self,\\n uint256 governanceDelay\\n )\\n external\\n onlyAfterGovernanceDelay(\\n self.walletMaxBtcTransferChangeInitiated,\\n governanceDelay\\n )\\n {\\n emit WalletMaxBtcTransferUpdated(self.newWalletMaxBtcTransfer);\\n\\n self.newWalletMaxBtcTransfer = 0;\\n self.walletMaxBtcTransferChangeInitiated = 0;\\n }\\n\\n /// @notice Begins the wallet closing period amount update process.\\n /// @param _newWalletClosingPeriod New wallet closing period amount.\\n function beginWalletClosingPeriodUpdate(\\n WalletData storage self,\\n uint32 _newWalletClosingPeriod\\n ) external {\\n /* solhint-disable not-rely-on-time */\\n self.newWalletClosingPeriod = _newWalletClosingPeriod;\\n self.walletClosingPeriodChangeInitiated = block.timestamp;\\n emit WalletClosingPeriodUpdateStarted(\\n _newWalletClosingPeriod,\\n block.timestamp\\n );\\n /* solhint-enable not-rely-on-time */\\n }\\n\\n /// @notice Finalizes the wallet closing period amount update process.\\n /// @dev Can be called after the governance delay elapses.\\n function finalizeWalletClosingPeriodUpdate(\\n WalletData storage self,\\n uint256 governanceDelay\\n )\\n external\\n onlyAfterGovernanceDelay(\\n self.walletClosingPeriodChangeInitiated,\\n governanceDelay\\n )\\n {\\n emit WalletClosingPeriodUpdated(self.newWalletClosingPeriod);\\n\\n self.newWalletClosingPeriod = 0;\\n self.walletClosingPeriodChangeInitiated = 0;\\n }\\n\\n // --- Fraud\\n\\n /// @notice Begins the fraud challenge deposit amount update process.\\n /// @param _newFraudChallengeDepositAmount New fraud challenge deposit amount.\\n function beginFraudChallengeDepositAmountUpdate(\\n FraudData storage self,\\n uint96 _newFraudChallengeDepositAmount\\n ) external {\\n /* solhint-disable not-rely-on-time */\\n self.newFraudChallengeDepositAmount = _newFraudChallengeDepositAmount;\\n self.fraudChallengeDepositAmountChangeInitiated = block.timestamp;\\n emit FraudChallengeDepositAmountUpdateStarted(\\n _newFraudChallengeDepositAmount,\\n block.timestamp\\n );\\n /* solhint-enable not-rely-on-time */\\n }\\n\\n /// @notice Finalizes the fraud challenge deposit amount update process.\\n /// @dev Can be called after the governance delay elapses.\\n function finalizeFraudChallengeDepositAmountUpdate(\\n FraudData storage self,\\n uint256 governanceDelay\\n )\\n external\\n onlyAfterGovernanceDelay(\\n self.fraudChallengeDepositAmountChangeInitiated,\\n governanceDelay\\n )\\n {\\n emit FraudChallengeDepositAmountUpdated(\\n self.newFraudChallengeDepositAmount\\n );\\n\\n self.newFraudChallengeDepositAmount = 0;\\n self.fraudChallengeDepositAmountChangeInitiated = 0;\\n }\\n\\n /// @notice Begins the fraud challenge defeat timeout amount update process.\\n /// @param _newFraudChallengeDefeatTimeout New fraud challenge defeat timeout\\n /// amount.\\n function beginFraudChallengeDefeatTimeoutUpdate(\\n FraudData storage self,\\n uint32 _newFraudChallengeDefeatTimeout\\n ) external {\\n /* solhint-disable not-rely-on-time */\\n self.newFraudChallengeDefeatTimeout = _newFraudChallengeDefeatTimeout;\\n self.fraudChallengeDefeatTimeoutChangeInitiated = block.timestamp;\\n emit FraudChallengeDefeatTimeoutUpdateStarted(\\n _newFraudChallengeDefeatTimeout,\\n block.timestamp\\n );\\n /* solhint-enable not-rely-on-time */\\n }\\n\\n /// @notice Finalizes the fraud challenge defeat timeout amount update process.\\n /// @dev Can be called after the governance delay elapses.\\n function finalizeFraudChallengeDefeatTimeoutUpdate(\\n FraudData storage self,\\n uint256 governanceDelay\\n )\\n external\\n onlyAfterGovernanceDelay(\\n self.fraudChallengeDefeatTimeoutChangeInitiated,\\n governanceDelay\\n )\\n {\\n emit FraudChallengeDefeatTimeoutUpdated(\\n self.newFraudChallengeDefeatTimeout\\n );\\n\\n self.newFraudChallengeDefeatTimeout = 0;\\n self.fraudChallengeDefeatTimeoutChangeInitiated = 0;\\n }\\n\\n /// @notice Begins the fraud slashing amount update process.\\n /// @param _newFraudSlashingAmount New fraud slashing amount.\\n function beginFraudSlashingAmountUpdate(\\n FraudData storage self,\\n uint96 _newFraudSlashingAmount\\n ) external {\\n /* solhint-disable not-rely-on-time */\\n self.newFraudSlashingAmount = _newFraudSlashingAmount;\\n self.fraudSlashingAmountChangeInitiated = block.timestamp;\\n emit FraudSlashingAmountUpdateStarted(\\n _newFraudSlashingAmount,\\n block.timestamp\\n );\\n /* solhint-enable not-rely-on-time */\\n }\\n\\n /// @notice Finalizes the fraud slashing amount update process.\\n /// @dev Can be called after the governance delay elapses.\\n function finalizeFraudSlashingAmountUpdate(\\n FraudData storage self,\\n uint256 governanceDelay\\n )\\n external\\n onlyAfterGovernanceDelay(\\n self.fraudSlashingAmountChangeInitiated,\\n governanceDelay\\n )\\n {\\n emit FraudSlashingAmountUpdated(self.newFraudSlashingAmount);\\n\\n self.newFraudSlashingAmount = 0;\\n self.fraudSlashingAmountChangeInitiated = 0;\\n }\\n\\n /// @notice Begins the fraud notifier reward multiplier amount update process.\\n /// @param _newFraudNotifierRewardMultiplier New fraud notifier reward multiplier\\n /// amount.\\n function beginFraudNotifierRewardMultiplierUpdate(\\n FraudData storage self,\\n uint32 _newFraudNotifierRewardMultiplier\\n ) external {\\n /* solhint-disable not-rely-on-time */\\n self\\n .newFraudNotifierRewardMultiplier = _newFraudNotifierRewardMultiplier;\\n self.fraudNotifierRewardMultiplierChangeInitiated = block.timestamp;\\n emit FraudNotifierRewardMultiplierUpdateStarted(\\n _newFraudNotifierRewardMultiplier,\\n block.timestamp\\n );\\n /* solhint-enable not-rely-on-time */\\n }\\n\\n /// @notice Finalizes the fraud notifier reward multiplier amount update process.\\n /// @dev Can be called after the governance delay elapses.\\n function finalizeFraudNotifierRewardMultiplierUpdate(\\n FraudData storage self,\\n uint256 governanceDelay\\n )\\n external\\n onlyAfterGovernanceDelay(\\n self.fraudNotifierRewardMultiplierChangeInitiated,\\n governanceDelay\\n )\\n {\\n emit FraudNotifierRewardMultiplierUpdated(\\n self.newFraudNotifierRewardMultiplier\\n );\\n\\n self.newFraudNotifierRewardMultiplier = 0;\\n self.fraudNotifierRewardMultiplierChangeInitiated = 0;\\n }\\n\\n /// @notice Begins the treasury address update process.\\n /// @dev It does not perform any parameter validation.\\n /// @param _newTreasury New treasury address.\\n function beginTreasuryUpdate(\\n TreasuryData storage self,\\n address _newTreasury\\n ) external {\\n /* solhint-disable not-rely-on-time */\\n self.newTreasury = _newTreasury;\\n self.treasuryChangeInitiated = block.timestamp;\\n emit TreasuryUpdateStarted(_newTreasury, block.timestamp);\\n /* solhint-enable not-rely-on-time */\\n }\\n\\n /// @notice Finalizes the treasury address update process.\\n /// @dev Can be called after the governance delay elapses.\\n function finalizeTreasuryUpdate(\\n TreasuryData storage self,\\n uint256 governanceDelay\\n )\\n external\\n onlyAfterGovernanceDelay(self.treasuryChangeInitiated, governanceDelay)\\n {\\n emit TreasuryUpdated(self.newTreasury);\\n\\n self.newTreasury = address(0);\\n self.treasuryChangeInitiated = 0;\\n }\\n}\\n\",\"keccak256\":\"0x454a63646db4af75bdbae85e1d64010510d307f98ace69c1661c07c5f44182ba\",\"license\":\"GPL-3.0-only\"}},\"version\":1}",
|
|
1113
1113
|
"bytecode": "0x61392f61003a600b82828239805160001a60731461002d57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600436106104465760003560e01c80638c0fc65a1161023f578063c4faa8671161013f578063e37b9e1b116100d2578063ef672a46116100a1578063f543e37d11610086578063f543e37d14610c6d578063f818e43c14610c8d578063ffbe062714610cad57600080fd5b8063ef672a4614610c2d578063f08cac3914610c4d57600080fd5b8063e37b9e1b14610bad578063e61a788614610bcd578063e961fd9e14610bed578063ec9f476014610c0d57600080fd5b8063d6964b971161010e578063d6964b9714610b2d578063d7e1b31714610b4d578063dbf8380314610b6d578063dcce6cc814610b8d57600080fd5b8063c4faa86714610aad578063c6244eda14610acd578063cef037d814610aed578063d2a27c3314610b0d57600080fd5b8063a62029f6116101d2578063af11623a116101a1578063baa9397311610186578063baa9397314610a4d578063bbb64b5c14610a6d578063bf08acfc14610a8d57600080fd5b8063af11623a14610a0d578063b56b115014610a2d57600080fd5b8063a62029f61461098d578063a6b0e7bd146109ad578063a9e31763146109cd578063ae256383146109ed57600080fd5b80639232db3f1161020e5780639232db3f1461090d57806393703bc81461092d5780639707e9ad1461094d578063a48814a51461096d57600080fd5b80638c0fc65a1461088d5780638f2ca645146108ad5780638f53d804146108cd57806391346cbb146108ed57600080fd5b80634a46b8331161034a578063728bd45d116102dd57806381f5c03a116102ac5780638a346d4d116102915780638a346d4d1461082d5780638a397dd71461084d5780638ae0c4341461086d57600080fd5b806381f5c03a146107ed57806383eb9c591461080d57600080fd5b8063728bd45d1461076d57806372c9ed961461078d5780637d105c79146107ad578063810698b2146107cd57600080fd5b806368decba21161031957806368decba2146106ed5780636d5be9be1461070d5780636d9b5e321461072d5780637058858a1461074d57600080fd5b80634a46b8331461066d57806351a3d06e1461068d57806353cf6f65146106ad57806368af5021146106cd57600080fd5b80632647ff62116103dd5780633861f138116103ac5780633c127400116103915780633c1274001461060d5780634569ab881461062d5780634a320d9c1461064d57600080fd5b80633861f138146105cd5780633a5ade20146105ed57600080fd5b80632647ff621461054d5780632d453d571461056d578063313e9c001461058d578063362c2372146105ad57600080fd5b8063158c660e11610419578063158c660e146104cd578063161d610c146104ed5780631b3f064f1461050d5780632520e8bf1461052d57600080fd5b806304b8e2eb1461044b57806305be330f1461046d5780630b5a08ed1461048d5780630c4e5686146104ad575b600080fd5b81801561045757600080fd5b5061046b610466366004613740565b610ccd565b005b81801561047957600080fd5b5061046b61048836600461376c565b610d36565b81801561049957600080fd5b5061046b6104a836600461376c565b610e22565b8180156104b957600080fd5b5061046b6104c836600461376c565b610f0a565b8180156104d957600080fd5b5061046b6104e8366004613740565b610ff1565b8180156104f957600080fd5b5061046b6105083660046137a2565b611052565b81801561051957600080fd5b5061046b61052836600461376c565b6110a6565b81801561053957600080fd5b5061046b61054836600461376c565b61118c565b81801561055957600080fd5b5061046b6105683660046137a2565b611253565b81801561057957600080fd5b5061046b6105883660046137a2565b6112ac565b81801561059957600080fd5b5061046b6105a83660046137a2565b611305565b8180156105b957600080fd5b5061046b6105c836600461376c565b61135e565b8180156105d957600080fd5b5061046b6105e836600461376c565b61144d565b8180156105f957600080fd5b5061046b610608366004613740565b61153c565b81801561061957600080fd5b5061046b610628366004613740565b61159d565b81801561063957600080fd5b5061046b61064836600461376c565b6115f9565b81801561065957600080fd5b5061046b6106683660046137e1565b6116e7565b81801561067957600080fd5b5061046b61068836600461376c565b611750565b81801561069957600080fd5b5061046b6106a836600461376c565b61184f565b8180156106b957600080fd5b5061046b6106c83660046137a2565b611935565b8180156106d957600080fd5b5061046b6106e8366004613740565b61198e565b8180156106f957600080fd5b5061046b61070836600461376c565b6119ef565b81801561071957600080fd5b5061046b61072836600461376c565b611ade565b81801561073957600080fd5b5061046b610748366004613804565b611bd4565b81801561075957600080fd5b5061046b6107683660046137a2565b611c29565b81801561077957600080fd5b5061046b61078836600461376c565b611c82565b81801561079957600080fd5b5061046b6107a8366004613740565b611d69565b8180156107b957600080fd5b5061046b6107c836600461376c565b611dca565b8180156107d957600080fd5b5061046b6107e8366004613740565b611eb0565b8180156107f957600080fd5b5061046b61080836600461376c565b611f0c565b81801561081957600080fd5b5061046b6108283660046137a2565b611fd7565b81801561083957600080fd5b5061046b61084836600461376c565b612030565b81801561085957600080fd5b5061046b6108683660046137e1565b6120fb565b81801561087957600080fd5b5061046b6108883660046137e1565b612164565b81801561089957600080fd5b5061046b6108a836600461376c565b6121cd565b8180156108b957600080fd5b5061046b6108c836600461376c565b6122b3565b8180156108d957600080fd5b5061046b6108e8366004613740565b6123a2565b8180156108f957600080fd5b5061046b610908366004613740565b6123fe565b81801561091957600080fd5b5061046b61092836600461376c565b61245f565b81801561093957600080fd5b5061046b6109483660046137a2565b61252a565b81801561095957600080fd5b5061046b6109683660046137a2565b612583565b81801561097957600080fd5b5061046b61098836600461376c565b6125dc565b81801561099957600080fd5b5061046b6109a836600461376c565b6126a3565b8180156109b957600080fd5b5061046b6109c83660046137a2565b612782565b8180156109d957600080fd5b5061046b6109e836600461376c565b6127db565b8180156109f957600080fd5b5061046b610a0836600461376c565b6128d1565b818015610a1957600080fd5b5061046b610a2836600461376c565b612999565b818015610a3957600080fd5b5061046b610a4836600461383b565b612a87565b818015610a5957600080fd5b5061046b610a68366004613740565b612afb565b818015610a7957600080fd5b5061046b610a883660046137e1565b612b5c565b818015610a9957600080fd5b5061046b610aa83660046137e1565b612bc5565b818015610ab957600080fd5b5061046b610ac836600461376c565b612c29565b818015610ad957600080fd5b5061046b610ae83660046137a2565b612cf4565b818015610af957600080fd5b5061046b610b08366004613740565b612d4d565b818015610b1957600080fd5b5061046b610b2836600461376c565b612dae565b818015610b3957600080fd5b5061046b610b4836600461376c565b612e94565b818015610b5957600080fd5b5061046b610b6836600461376c565b612f5f565b818015610b7957600080fd5b5061046b610b8836600461376c565b613041565b818015610b9957600080fd5b5061046b610ba836600461376c565b613108565b818015610bb957600080fd5b5061046b610bc83660046137a2565b6131cf565b818015610bd957600080fd5b5061046b610be83660046137a2565b613228565b818015610bf957600080fd5b5061046b610c08366004613740565b613281565b818015610c1957600080fd5b5061046b610c2836600461376c565b6132e2565b818015610c3957600080fd5b5061046b610c48366004613740565b6133aa565b818015610c5957600080fd5b5061046b610c6836600461376c565b61340b565b818015610c7957600080fd5b5061046b610c88366004613740565b6134d6565b818015610c9957600080fd5b5061046b610ca836600461376c565b613537565b818015610cb957600080fd5b5061046b610cc836600461376c565b61362d565b60068201805467ffffffffffffffff191667ffffffffffffffff831690811790915542600784018190556040805192835260208301919091527f949d7b074d82c57bb9ad387b130ed559db5aa5572b2a8bee80e51782b755bb6791015b60405180910390a15050565b81600901548160008211610d7f5760405162461bcd60e51b815260206004820152601460248201526000805160206138ba83398151915260448201526064015b60405180910390fd5b80610d8a8342613879565b1015610dc65760405162461bcd60e51b815260206004820181905260248201526000805160206138da8339815191526044820152606401610d76565b600884015460405163ffffffff90911681527fb9680823827cf58b566fd60a2a37e51011531b53fa90ff8f109d6d94921dde00906020015b60405180910390a150505060088101805463ffffffff191690556000600990910155565b81600101548160008211610e665760405162461bcd60e51b815260206004820152601460248201526000805160206138ba8339815191526044820152606401610d76565b80610e718342613879565b1015610ead5760405162461bcd60e51b815260206004820181905260248201526000805160206138da8339815191526044820152606401610d76565b835460405167ffffffffffffffff90911681527fbbfca111be9d28e7d8f9fb6c295256b2b9c3f3543cabf84ca01a0dd9c20529ff906020015b60405180910390a15050815467ffffffffffffffff19168255506000600190910155565b81600701548160008211610f4e5760405162461bcd60e51b815260206004820152601460248201526000805160206138ba8339815191526044820152606401610d76565b80610f598342613879565b1015610f955760405162461bcd60e51b815260206004820181905260248201526000805160206138da8339815191526044820152606401610d76565b600684015460405163ffffffff90911681527fdfb0d92703f9c02bea5e85c78c61615a7787a6112f23a5008ab7a1255351d266906020015b60405180910390a150505060068101805463ffffffff191690556000600790910155565b60028201805467ffffffffffffffff191667ffffffffffffffff831690811790915542600384018190556040805192835260208301919091527f76a5182b037807820539094f3f917068359864c2650f44ef2bde448b489da3109101610d2a565b815463ffffffff191663ffffffff8216908117835542600184018190556040805192835260208301919091527f8ff9974dce33e4e1ab7a866e83b0e492ac88ac9da862750abeadd9ecaa8e2f079101610d2a565b81600b015481600082116110ea5760405162461bcd60e51b815260206004820152601460248201526000805160206138ba8339815191526044820152606401610d76565b806110f58342613879565b10156111315760405162461bcd60e51b815260206004820181905260248201526000805160206138da8339815191526044820152606401610d76565b600a84015460405163ffffffff90911681527f2112314bb5bea9826b281dde0122aa7e040047443aeda3644ece915a52bc9a749060200160405180910390a1505050600a8101805463ffffffff191690556000600b90910155565b816007015481600082116111d05760405162461bcd60e51b815260206004820152601460248201526000805160206138ba8339815191526044820152606401610d76565b806111db8342613879565b10156112175760405162461bcd60e51b815260206004820181905260248201526000805160206138da8339815191526044820152606401610d76565b600684015460405163ffffffff90911681527f7317b9dcf397c30f603d57f6e08fbb4d859fa22db569f87c690387a4df293f2c90602001610fcd565b60068201805463ffffffff191663ffffffff831690811790915542600784018190556040805192835260208301919091527fd78a4fafa70ac62ae37ce48293c7d669b122dd46814022c00ba669bf4b4a386d9101610d2a565b60028201805463ffffffff191663ffffffff831690811790915542600384018190556040805192835260208301919091527f8836f8d92102e8d8a0d420a47760c9b4b54aa1f8e32e5cb171d2d43ab0e673429101610d2a565b600c8201805463ffffffff191663ffffffff831690811790915542600d84018190556040805192835260208301919091527ff42b1e01019c1c4eb06400525a13c78cfac7cae1aaaf16c274af3b22c99759ec9101610d2a565b816003015481600082116113a25760405162461bcd60e51b815260206004820152601460248201526000805160206138ba8339815191526044820152606401610d76565b806113ad8342613879565b10156113e95760405162461bcd60e51b815260206004820181905260248201526000805160206138da8339815191526044820152606401610d76565b600284015460405167ffffffffffffffff90911681527f431c5a8cb6dd33491583c7815a0818c69b7fc8a94783eae61e33aef252fddbd0906020015b60405180910390a150505060028101805467ffffffffffffffff191690556000600390910155565b816007015481600082116114915760405162461bcd60e51b815260206004820152601460248201526000805160206138ba8339815191526044820152606401610d76565b8061149c8342613879565b10156114d85760405162461bcd60e51b815260206004820181905260248201526000805160206138da8339815191526044820152606401610d76565b600684015460405167ffffffffffffffff90911681527fb0656ca1749dc17da2baf729b66edbb523659fb8bed7715f38fcb73279a4dc75906020015b60405180910390a150505060068101805467ffffffffffffffff191690556000600790910155565b600e8201805467ffffffffffffffff191667ffffffffffffffff831690811790915542600f84018190556040805192835260208301919091527f05669005b886e580c79084c73739ba100ab9ae87719fd9d6ef1419fe3789a7c49101610d2a565b815467ffffffffffffffff191667ffffffffffffffff8216908117835542600184018190556040805192835260208301919091527f5c4654b43143b94f29cf4ebad47134b001bcbcb3ef0aef65e694f62cbe46c6a79101610d2a565b81600f0154816000821161163d5760405162461bcd60e51b815260206004820152601460248201526000805160206138ba8339815191526044820152606401610d76565b806116488342613879565b10156116845760405162461bcd60e51b815260206004820181905260248201526000805160206138da8339815191526044820152606401610d76565b600e84015460405167ffffffffffffffff90911681527fa68de01622bc09db684e9a5b7531f86c5d14d8e32d918306520eefdfe6d318f99060200160405180910390a1505050600e8101805467ffffffffffffffff191690556000600f90910155565b6012820180546bffffffffffffffffffffffff19166bffffffffffffffffffffffff831690811790915542601384018190556040805192835260208301919091527f051bc9e9157b1a02972b271cb2f1516019abd23de5be2946013bda0da8ec69b39101610d2a565b816001015481600082116117945760405162461bcd60e51b815260206004820152601460248201526000805160206138ba8339815191526044820152606401610d76565b8061179f8342613879565b10156117db5760405162461bcd60e51b815260206004820181905260248201526000805160206138da8339815191526044820152606401610d76565b835460405173ffffffffffffffffffffffffffffffffffffffff90911681527f7dae230f18360d76a040c81f050aa14eb9d6dc7901b20fc5d855e2a20fe814d19060200160405180910390a15050815473ffffffffffffffffffffffffffffffffffffffff19168255506000600190910155565b816005015481600082116118935760405162461bcd60e51b815260206004820152601460248201526000805160206138ba8339815191526044820152606401610d76565b8061189e8342613879565b10156118da5760405162461bcd60e51b815260206004820181905260248201526000805160206138da8339815191526044820152606401610d76565b600484015460405163ffffffff90911681527f6b20244a647adad8f426a4a4755e2c9a9d89eb50baf894d8df705767243bf9289060200160405180910390a150505060048101805463ffffffff191690556000600590910155565b60068201805463ffffffff191663ffffffff831690811790915542600784018190556040805192835260208301919091527f0ac224e8e596d329f4516bc07dcd1b4194564fad71f3082c9efe928e7ed185409101610d2a565b60048201805467ffffffffffffffff191667ffffffffffffffff831690811790915542600584018190556040805192835260208301919091527f4615b100872b234e1e7ec689a86d1f33f2cfaa24c9da9d698e01e9c098c836989101610d2a565b81600501548160008211611a335760405162461bcd60e51b815260206004820152601460248201526000805160206138ba8339815191526044820152606401610d76565b80611a3e8342613879565b1015611a7a5760405162461bcd60e51b815260206004820181905260248201526000805160206138da8339815191526044820152606401610d76565b600484015460405167ffffffffffffffff90911681527f06968768e0d00c7660b2c1a39a53291dfbfc5ce86a43e0984439c4a2b8c8f749906020015b60405180910390a150505060048101805467ffffffffffffffff191690556000600590910155565b81601301548160008211611b225760405162461bcd60e51b815260206004820152601460248201526000805160206138ba8339815191526044820152606401610d76565b80611b2d8342613879565b1015611b695760405162461bcd60e51b815260206004820181905260248201526000805160206138da8339815191526044820152606401610d76565b60128401546040516bffffffffffffffffffffffff90911681527f6428457bf6936b7ebb53f01d7514e74164f1fafdbced23a1ad42cba6d30aa76c9060200160405180910390a15050506012810180546bffffffffffffffffffffffff191690556000601390910155565b600c8201805461ffff191661ffff831690811790915542600d84018190556040805192835260208301919091527f8aaeb3dcadfd574063a2591d507f5871cb28606696ee47cbb0db63c80dd6974b9101610d2a565b60068201805463ffffffff191663ffffffff831690811790915542600784018190556040805192835260208301919091527f1e08c36903920704be8a6916f280b4e867d922211e9803ff04e2aced9d265f739101610d2a565b81600d01548160008211611cc65760405162461bcd60e51b815260206004820152601460248201526000805160206138ba8339815191526044820152606401610d76565b80611cd18342613879565b1015611d0d5760405162461bcd60e51b815260206004820181905260248201526000805160206138da8339815191526044820152606401610d76565b600c84015460405163ffffffff90911681527fc9423cbcc9a99687becedc8906909fd9a1c22c3eaf424a83aeddec2474376080906020015b60405180910390a1505050600c8101805463ffffffff191690556000600d90910155565b60028201805467ffffffffffffffff191667ffffffffffffffff831690811790915542600384018190556040805192835260208301919091527f6b06983d319f78d0c731c9766ae9c8fb3748dc2d23b08c2f1f5bd6fb5198e7bf9101610d2a565b81601501548160008211611e0e5760405162461bcd60e51b815260206004820152601460248201526000805160206138ba8339815191526044820152606401610d76565b80611e198342613879565b1015611e555760405162461bcd60e51b815260206004820181905260248201526000805160206138da8339815191526044820152606401610d76565b601484015460405163ffffffff90911681527fd5f2efb331273142b812e89753d20e94c3be338de4584536ce726ea597eaab5e9060200160405180910390a150505060148101805463ffffffff191690556000601590910155565b815467ffffffffffffffff191667ffffffffffffffff8216908117835542600184018190556040805192835260208301919091527fac954c09b0344aca418aa0861fc390a93715bdff0854aca190fd8772dc57fe979101610d2a565b81600301548160008211611f505760405162461bcd60e51b815260206004820152601460248201526000805160206138ba8339815191526044820152606401610d76565b80611f5b8342613879565b1015611f975760405162461bcd60e51b815260206004820181905260248201526000805160206138da8339815191526044820152606401610d76565b600284015460405167ffffffffffffffff90911681527f8047149479b5ccc7291a0195ddbfd0fa246d65de18f60087ce39b46bf0c6b14e90602001611425565b600c8201805463ffffffff191663ffffffff831690811790915542600d84018190556040805192835260208301919091527f73b633ecce293f6df47e8252b90ddc40f544d6b85ac39fc0c6333648937b8d0d9101610d2a565b816007015481600082116120745760405162461bcd60e51b815260206004820152601460248201526000805160206138ba8339815191526044820152606401610d76565b8061207f8342613879565b10156120bb5760405162461bcd60e51b815260206004820181905260248201526000805160206138da8339815191526044820152606401610d76565b600684015460405167ffffffffffffffff90911681527f85a94bed431a23877e95ccda9b7ba1da8c6c1ef30b65fa4f78169cc49bffbb2590602001611514565b6004820180546bffffffffffffffffffffffff19166bffffffffffffffffffffffff831690811790915542600584018190556040805192835260208301919091527f7cd6454fd7076905da0e7825499e4dee1be09fd4306c3ed6492c51c618b790d09101610d2a565b6008820180546bffffffffffffffffffffffff19166bffffffffffffffffffffffff831690811790915542600984018190556040805192835260208301919091527fda898177aecf6e0e6a03582800735c18302356777eb588597e06568debd671c69101610d2a565b816011015481600082116122115760405162461bcd60e51b815260206004820152601460248201526000805160206138ba8339815191526044820152606401610d76565b8061221c8342613879565b10156122585760405162461bcd60e51b815260206004820181905260248201526000805160206138da8339815191526044820152606401610d76565b601084015460405163ffffffff90911681527fc876e271e20dc6242d20f4f9c6d66400fc30243e96afafda0e117540e7737d499060200160405180910390a150505060108101805463ffffffff191690556000601190910155565b816001015481600082116122f75760405162461bcd60e51b815260206004820152601460248201526000805160206138ba8339815191526044820152606401610d76565b806123028342613879565b101561233e5760405162461bcd60e51b815260206004820181905260248201526000805160206138da8339815191526044820152606401610d76565b83546040516bffffffffffffffffffffffff90911681527f6cb97f9ca1d18a52ca1c02560b06eb5b13b9f87f853af7d68a897050491a8a2b9060200160405180910390a1505081546bffffffffffffffffffffffff19168255506000600190910155565b815467ffffffffffffffff191667ffffffffffffffff8216908117835542600184018190556040805192835260208301919091527f98dd542d97651b5127b059a1ad4aac35ad3347676545cf3e83392c72354386669101610d2a565b600a8201805467ffffffffffffffff191667ffffffffffffffff831690811790915542600b84018190556040805192835260208301919091527f89613176301fd5b6377b1be0f71609b15f24bf325d740111d87032ae7015ec179101610d2a565b816005015481600082116124a35760405162461bcd60e51b815260206004820152601460248201526000805160206138ba8339815191526044820152606401610d76565b806124ae8342613879565b10156124ea5760405162461bcd60e51b815260206004820181905260248201526000805160206138da8339815191526044820152606401610d76565b600484015460405167ffffffffffffffff90911681527ff643803909ee8491bda68a03c6f70f1f6d1904b2ad38c4811854319c8b3302f090602001611ab6565b60108201805463ffffffff191663ffffffff831690811790915542601184018190556040805192835260208301919091527f6ba501e0661efd372926ad3c39d2a279956a42378bac4adb928fbc8b3464f6a89101610d2a565b60048201805463ffffffff191663ffffffff831690811790915542600584018190556040805192835260208301919091527ff8e7470ad5eef5bc33900ad5e40ef12d1cef35c271ce4273663844d040ab746a9101610d2a565b816009015481600082116126205760405162461bcd60e51b815260206004820152601460248201526000805160206138ba8339815191526044820152606401610d76565b8061262b8342613879565b10156126675760405162461bcd60e51b815260206004820181905260248201526000805160206138da8339815191526044820152606401610d76565b600884015460405163ffffffff90911681527f162c74b20880ac3d251bf644d485058395bde24db9c3c44c0d51cfc724b2760090602001610dfe565b816001015481600082116126e75760405162461bcd60e51b815260206004820152601460248201526000805160206138ba8339815191526044820152606401610d76565b806126f28342613879565b101561272e5760405162461bcd60e51b815260206004820181905260248201526000805160206138da8339815191526044820152606401610d76565b835460405163ffffffff90911681527f0c96a98792be84d818dd96f4167766ce3fbb8fdbfece805d7c2ec87873797b629060200160405180910390a15050815463ffffffff19168255506000600190910155565b600a8201805463ffffffff191663ffffffff831690811790915542600b84018190556040805192835260208301919091527f3251aa19df48dcc8b769af272f88708ab1d1327074c6a8b82b3ac74b57c60cee9101610d2a565b8160050154816000821161281f5760405162461bcd60e51b815260206004820152601460248201526000805160206138ba8339815191526044820152606401610d76565b8061282a8342613879565b10156128665760405162461bcd60e51b815260206004820181905260248201526000805160206138da8339815191526044820152606401610d76565b60048401546040516bffffffffffffffffffffffff90911681527f90e318745caa1bc19c689297db8dcdc340b80fc98a367b85f79f69d5f6cd33259060200160405180910390a15050506004810180546bffffffffffffffffffffffff191690556000600590910155565b816001015481600082116129155760405162461bcd60e51b815260206004820152601460248201526000805160206138ba8339815191526044820152606401610d76565b806129208342613879565b101561295c5760405162461bcd60e51b815260206004820181905260248201526000805160206138da8339815191526044820152606401610d76565b835460405167ffffffffffffffff90911681527f1d4d1bbc7d6e32c8f7c1d6726a92f960b9186357aca96fe09b6285141e045d7690602001610ee6565b81600b015481600082116129dd5760405162461bcd60e51b815260206004820152601460248201526000805160206138ba8339815191526044820152606401610d76565b806129e88342613879565b1015612a245760405162461bcd60e51b815260206004820181905260248201526000805160206138da8339815191526044820152606401610d76565b600a84015460405167ffffffffffffffff90911681527fad6deef5a8c53c425ed14686283dc4ed1c5d76b4067fdec6286554cbabbad1d29060200160405180910390a1505050600a8101805467ffffffffffffffff191690556000600b90910155565b815473ffffffffffffffffffffffffffffffffffffffff191673ffffffffffffffffffffffffffffffffffffffff8216908117835542600184018190556040805192835260208301919091527fa15677023740e8ec73ecc939e3bdef2cb46305d12a01b0719974d6de926fc2069101610d2a565b60028201805467ffffffffffffffff191667ffffffffffffffff831690811790915542600384018190556040805192835260208301919091527f4dd68fd50ad0f7c816ad3c0415fc008aa325ac2ee17bbc2eabd12eee50d6f1989101610d2a565b600a820180546bffffffffffffffffffffffff19166bffffffffffffffffffffffff831690811790915542600b84018190556040805192835260208301919091527f30e88b7e9348603e30dbd420578fe6f4a5e67a6ffeef038dcaee28923ff6b9619101610d2a565b81546bffffffffffffffffffffffff19166bffffffffffffffffffffffff8216908117835542600184018190556040805192835260208301919091527fcbe81098e6ad8611694f6298b3c420591836d2331f9449f1a303d7a44866668f9101610d2a565b81600301548160008211612c6d5760405162461bcd60e51b815260206004820152601460248201526000805160206138ba8339815191526044820152606401610d76565b80612c788342613879565b1015612cb45760405162461bcd60e51b815260206004820181905260248201526000805160206138da8339815191526044820152606401610d76565b600284015460405167ffffffffffffffff90911681527f4d7314643f18dee092360da442c2508d11f8871beaa77cd91458cb11ed26b6b590602001611425565b60148201805463ffffffff191663ffffffff831690811790915542601584018190556040805192835260208301919091527f1e3e367e1ca2a3564ebf5c06be86fad103c210022381b613a5dacdb949ba6bcc9101610d2a565b60048201805467ffffffffffffffff191667ffffffffffffffff831690811790915542600584018190556040805192835260208301919091527fc0994c2dabe9767e3093a9586b16ea2b5eacbd26f96a42fd7e6702f78ddc3d6d9101610d2a565b81600301548160008211612df25760405162461bcd60e51b815260206004820152601460248201526000805160206138ba8339815191526044820152606401610d76565b80612dfd8342613879565b1015612e395760405162461bcd60e51b815260206004820181905260248201526000805160206138da8339815191526044820152606401610d76565b600284015460405163ffffffff90911681527f074922ffd548010bba0e133e7cd83d24dbb64db27909056c8af476b18cb5693d9060200160405180910390a150505060028101805463ffffffff191690556000600390910155565b81600301548160008211612ed85760405162461bcd60e51b815260206004820152601460248201526000805160206138ba8339815191526044820152606401610d76565b80612ee38342613879565b1015612f1f5760405162461bcd60e51b815260206004820181905260248201526000805160206138da8339815191526044820152606401610d76565b600284015460405167ffffffffffffffff90911681527f623bc381cf1ef54b5180b6de0a7250ba8ec89ab4f796b015d72455af7df4459390602001611425565b81600d01548160008211612fa35760405162461bcd60e51b815260206004820152601460248201526000805160206138ba8339815191526044820152606401610d76565b80612fae8342613879565b1015612fea5760405162461bcd60e51b815260206004820181905260248201526000805160206138da8339815191526044820152606401610d76565b600c84015460405161ffff90911681527fdfe388b13220717467df80a8379a14769197f030b2c9a4c36acf508fb5d26f079060200160405180910390a1505050600c8101805461ffff191690556000600d90910155565b81600d015481600082116130855760405162461bcd60e51b815260206004820152601460248201526000805160206138ba8339815191526044820152606401610d76565b806130908342613879565b10156130cc5760405162461bcd60e51b815260206004820181905260248201526000805160206138da8339815191526044820152606401610d76565b600c84015460405163ffffffff90911681527f0e6ee2c03f4f699f8dd8e435f97d5dc9ceca824afb71fb983ca468a88889dbdc90602001611d45565b8160070154816000821161314c5760405162461bcd60e51b815260206004820152601460248201526000805160206138ba8339815191526044820152606401610d76565b806131578342613879565b10156131935760405162461bcd60e51b815260206004820181905260248201526000805160206138da8339815191526044820152606401610d76565b600684015460405163ffffffff90911681527f3d2b4d531beb6eb57d2d34304a003ad98fb742aada113a77016af4bdf26b26b590602001610fcd565b60088201805463ffffffff191663ffffffff831690811790915542600984018190556040805192835260208301919091527fc50143039c2137e4c7179475cecb7dccf691b8ff455c00f407fd3da1b1f6ab3c9101610d2a565b60088201805463ffffffff191663ffffffff831690811790915542600984018190556040805192835260208301919091527ffe7d4ad0e5cf0277caaf534bf0ec3115ef01d705f7cf4e065a326feb8421d13c9101610d2a565b60028201805467ffffffffffffffff191667ffffffffffffffff831690811790915542600384018190556040805192835260208301919091527f13025f95adce3953a5f0dbb6e318930e32a2787978bd142814ddc65880a032cd9101610d2a565b816001015481600082116133265760405162461bcd60e51b815260206004820152601460248201526000805160206138ba8339815191526044820152606401610d76565b806133318342613879565b101561336d5760405162461bcd60e51b815260206004820181905260248201526000805160206138da8339815191526044820152606401610d76565b835460405167ffffffffffffffff90911681527fd075f19fce98166c3a4ee8e0382d570d2b68278b404b8746d1ba0fdccebf1b2c90602001610ee6565b60068201805467ffffffffffffffff191667ffffffffffffffff831690811790915542600784018190556040805192835260208301919091527faadf6e4a31c36f4a2dd040eadea37d00bf52d0fc4812dbb3884318a9929bf7fc9101610d2a565b8160050154816000821161344f5760405162461bcd60e51b815260206004820152601460248201526000805160206138ba8339815191526044820152606401610d76565b8061345a8342613879565b10156134965760405162461bcd60e51b815260206004820181905260248201526000805160206138da8339815191526044820152606401610d76565b600484015460405167ffffffffffffffff90911681527fe48f76476c660a0ae77140cd9a12b6df6104814b9253d10bc7ba8e44104d4a7190602001611ab6565b60048201805467ffffffffffffffff191667ffffffffffffffff831690811790915542600584018190556040805192835260208301919091527f1b156438ae04d51f67f0e6d20500a4ca4eddb90d0a752404a875b8a3aa5a44409101610d2a565b81600b0154816000821161357b5760405162461bcd60e51b815260206004820152601460248201526000805160206138ba8339815191526044820152606401610d76565b806135868342613879565b10156135c25760405162461bcd60e51b815260206004820181905260248201526000805160206138da8339815191526044820152606401610d76565b600a8401546040516bffffffffffffffffffffffff90911681527f3ddfe2be2f00cde428701184bb8836bd21ab2ddd753299cf1cc0d543a71cf6639060200160405180910390a1505050600a810180546bffffffffffffffffffffffff191690556000600b90910155565b816009015481600082116136715760405162461bcd60e51b815260206004820152601460248201526000805160206138ba8339815191526044820152606401610d76565b8061367c8342613879565b10156136b85760405162461bcd60e51b815260206004820181905260248201526000805160206138da8339815191526044820152606401610d76565b60088401546040516bffffffffffffffffffffffff90911681527f3c9259bc1ce37fff96828ea85755c3754f2bbfcd31704d13fe4323d1fc7a2dce9060200160405180910390a15050506008810180546bffffffffffffffffffffffff191690556000600990910155565b803567ffffffffffffffff8116811461373b57600080fd5b919050565b6000806040838503121561375357600080fd5b8235915061376360208401613723565b90509250929050565b6000806040838503121561377f57600080fd5b50508035926020909101359150565b803563ffffffff8116811461373b57600080fd5b600080604083850312156137b557600080fd5b823591506137636020840161378e565b80356bffffffffffffffffffffffff8116811461373b57600080fd5b600080604083850312156137f457600080fd5b82359150613763602084016137c5565b6000806040838503121561381757600080fd5b82359150602083013561ffff8116811461383057600080fd5b809150509250929050565b6000806040838503121561384e57600080fd5b82359150602083013573ffffffffffffffffffffffffffffffffffffffff8116811461383057600080fd5b818103818111156138b3577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b9291505056fe4368616e6765206e6f7420696e69746961746564000000000000000000000000476f7665726e616e63652064656c617920686173206e6f7420656c6170736564a26469706673582212208e4cf910ab3b2ecbee1d9e8afb95c91f2aeb5b29aaa2ee18d11fba4a5fc97cd564736f6c63430008110033",
|
|
1114
1114
|
"deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600436106104465760003560e01c80638c0fc65a1161023f578063c4faa8671161013f578063e37b9e1b116100d2578063ef672a46116100a1578063f543e37d11610086578063f543e37d14610c6d578063f818e43c14610c8d578063ffbe062714610cad57600080fd5b8063ef672a4614610c2d578063f08cac3914610c4d57600080fd5b8063e37b9e1b14610bad578063e61a788614610bcd578063e961fd9e14610bed578063ec9f476014610c0d57600080fd5b8063d6964b971161010e578063d6964b9714610b2d578063d7e1b31714610b4d578063dbf8380314610b6d578063dcce6cc814610b8d57600080fd5b8063c4faa86714610aad578063c6244eda14610acd578063cef037d814610aed578063d2a27c3314610b0d57600080fd5b8063a62029f6116101d2578063af11623a116101a1578063baa9397311610186578063baa9397314610a4d578063bbb64b5c14610a6d578063bf08acfc14610a8d57600080fd5b8063af11623a14610a0d578063b56b115014610a2d57600080fd5b8063a62029f61461098d578063a6b0e7bd146109ad578063a9e31763146109cd578063ae256383146109ed57600080fd5b80639232db3f1161020e5780639232db3f1461090d57806393703bc81461092d5780639707e9ad1461094d578063a48814a51461096d57600080fd5b80638c0fc65a1461088d5780638f2ca645146108ad5780638f53d804146108cd57806391346cbb146108ed57600080fd5b80634a46b8331161034a578063728bd45d116102dd57806381f5c03a116102ac5780638a346d4d116102915780638a346d4d1461082d5780638a397dd71461084d5780638ae0c4341461086d57600080fd5b806381f5c03a146107ed57806383eb9c591461080d57600080fd5b8063728bd45d1461076d57806372c9ed961461078d5780637d105c79146107ad578063810698b2146107cd57600080fd5b806368decba21161031957806368decba2146106ed5780636d5be9be1461070d5780636d9b5e321461072d5780637058858a1461074d57600080fd5b80634a46b8331461066d57806351a3d06e1461068d57806353cf6f65146106ad57806368af5021146106cd57600080fd5b80632647ff62116103dd5780633861f138116103ac5780633c127400116103915780633c1274001461060d5780634569ab881461062d5780634a320d9c1461064d57600080fd5b80633861f138146105cd5780633a5ade20146105ed57600080fd5b80632647ff621461054d5780632d453d571461056d578063313e9c001461058d578063362c2372146105ad57600080fd5b8063158c660e11610419578063158c660e146104cd578063161d610c146104ed5780631b3f064f1461050d5780632520e8bf1461052d57600080fd5b806304b8e2eb1461044b57806305be330f1461046d5780630b5a08ed1461048d5780630c4e5686146104ad575b600080fd5b81801561045757600080fd5b5061046b610466366004613740565b610ccd565b005b81801561047957600080fd5b5061046b61048836600461376c565b610d36565b81801561049957600080fd5b5061046b6104a836600461376c565b610e22565b8180156104b957600080fd5b5061046b6104c836600461376c565b610f0a565b8180156104d957600080fd5b5061046b6104e8366004613740565b610ff1565b8180156104f957600080fd5b5061046b6105083660046137a2565b611052565b81801561051957600080fd5b5061046b61052836600461376c565b6110a6565b81801561053957600080fd5b5061046b61054836600461376c565b61118c565b81801561055957600080fd5b5061046b6105683660046137a2565b611253565b81801561057957600080fd5b5061046b6105883660046137a2565b6112ac565b81801561059957600080fd5b5061046b6105a83660046137a2565b611305565b8180156105b957600080fd5b5061046b6105c836600461376c565b61135e565b8180156105d957600080fd5b5061046b6105e836600461376c565b61144d565b8180156105f957600080fd5b5061046b610608366004613740565b61153c565b81801561061957600080fd5b5061046b610628366004613740565b61159d565b81801561063957600080fd5b5061046b61064836600461376c565b6115f9565b81801561065957600080fd5b5061046b6106683660046137e1565b6116e7565b81801561067957600080fd5b5061046b61068836600461376c565b611750565b81801561069957600080fd5b5061046b6106a836600461376c565b61184f565b8180156106b957600080fd5b5061046b6106c83660046137a2565b611935565b8180156106d957600080fd5b5061046b6106e8366004613740565b61198e565b8180156106f957600080fd5b5061046b61070836600461376c565b6119ef565b81801561071957600080fd5b5061046b61072836600461376c565b611ade565b81801561073957600080fd5b5061046b610748366004613804565b611bd4565b81801561075957600080fd5b5061046b6107683660046137a2565b611c29565b81801561077957600080fd5b5061046b61078836600461376c565b611c82565b81801561079957600080fd5b5061046b6107a8366004613740565b611d69565b8180156107b957600080fd5b5061046b6107c836600461376c565b611dca565b8180156107d957600080fd5b5061046b6107e8366004613740565b611eb0565b8180156107f957600080fd5b5061046b61080836600461376c565b611f0c565b81801561081957600080fd5b5061046b6108283660046137a2565b611fd7565b81801561083957600080fd5b5061046b61084836600461376c565b612030565b81801561085957600080fd5b5061046b6108683660046137e1565b6120fb565b81801561087957600080fd5b5061046b6108883660046137e1565b612164565b81801561089957600080fd5b5061046b6108a836600461376c565b6121cd565b8180156108b957600080fd5b5061046b6108c836600461376c565b6122b3565b8180156108d957600080fd5b5061046b6108e8366004613740565b6123a2565b8180156108f957600080fd5b5061046b610908366004613740565b6123fe565b81801561091957600080fd5b5061046b61092836600461376c565b61245f565b81801561093957600080fd5b5061046b6109483660046137a2565b61252a565b81801561095957600080fd5b5061046b6109683660046137a2565b612583565b81801561097957600080fd5b5061046b61098836600461376c565b6125dc565b81801561099957600080fd5b5061046b6109a836600461376c565b6126a3565b8180156109b957600080fd5b5061046b6109c83660046137a2565b612782565b8180156109d957600080fd5b5061046b6109e836600461376c565b6127db565b8180156109f957600080fd5b5061046b610a0836600461376c565b6128d1565b818015610a1957600080fd5b5061046b610a2836600461376c565b612999565b818015610a3957600080fd5b5061046b610a4836600461383b565b612a87565b818015610a5957600080fd5b5061046b610a68366004613740565b612afb565b818015610a7957600080fd5b5061046b610a883660046137e1565b612b5c565b818015610a9957600080fd5b5061046b610aa83660046137e1565b612bc5565b818015610ab957600080fd5b5061046b610ac836600461376c565b612c29565b818015610ad957600080fd5b5061046b610ae83660046137a2565b612cf4565b818015610af957600080fd5b5061046b610b08366004613740565b612d4d565b818015610b1957600080fd5b5061046b610b2836600461376c565b612dae565b818015610b3957600080fd5b5061046b610b4836600461376c565b612e94565b818015610b5957600080fd5b5061046b610b6836600461376c565b612f5f565b818015610b7957600080fd5b5061046b610b8836600461376c565b613041565b818015610b9957600080fd5b5061046b610ba836600461376c565b613108565b818015610bb957600080fd5b5061046b610bc83660046137a2565b6131cf565b818015610bd957600080fd5b5061046b610be83660046137a2565b613228565b818015610bf957600080fd5b5061046b610c08366004613740565b613281565b818015610c1957600080fd5b5061046b610c2836600461376c565b6132e2565b818015610c3957600080fd5b5061046b610c48366004613740565b6133aa565b818015610c5957600080fd5b5061046b610c6836600461376c565b61340b565b818015610c7957600080fd5b5061046b610c88366004613740565b6134d6565b818015610c9957600080fd5b5061046b610ca836600461376c565b613537565b818015610cb957600080fd5b5061046b610cc836600461376c565b61362d565b60068201805467ffffffffffffffff191667ffffffffffffffff831690811790915542600784018190556040805192835260208301919091527f949d7b074d82c57bb9ad387b130ed559db5aa5572b2a8bee80e51782b755bb6791015b60405180910390a15050565b81600901548160008211610d7f5760405162461bcd60e51b815260206004820152601460248201526000805160206138ba83398151915260448201526064015b60405180910390fd5b80610d8a8342613879565b1015610dc65760405162461bcd60e51b815260206004820181905260248201526000805160206138da8339815191526044820152606401610d76565b600884015460405163ffffffff90911681527fb9680823827cf58b566fd60a2a37e51011531b53fa90ff8f109d6d94921dde00906020015b60405180910390a150505060088101805463ffffffff191690556000600990910155565b81600101548160008211610e665760405162461bcd60e51b815260206004820152601460248201526000805160206138ba8339815191526044820152606401610d76565b80610e718342613879565b1015610ead5760405162461bcd60e51b815260206004820181905260248201526000805160206138da8339815191526044820152606401610d76565b835460405167ffffffffffffffff90911681527fbbfca111be9d28e7d8f9fb6c295256b2b9c3f3543cabf84ca01a0dd9c20529ff906020015b60405180910390a15050815467ffffffffffffffff19168255506000600190910155565b81600701548160008211610f4e5760405162461bcd60e51b815260206004820152601460248201526000805160206138ba8339815191526044820152606401610d76565b80610f598342613879565b1015610f955760405162461bcd60e51b815260206004820181905260248201526000805160206138da8339815191526044820152606401610d76565b600684015460405163ffffffff90911681527fdfb0d92703f9c02bea5e85c78c61615a7787a6112f23a5008ab7a1255351d266906020015b60405180910390a150505060068101805463ffffffff191690556000600790910155565b60028201805467ffffffffffffffff191667ffffffffffffffff831690811790915542600384018190556040805192835260208301919091527f76a5182b037807820539094f3f917068359864c2650f44ef2bde448b489da3109101610d2a565b815463ffffffff191663ffffffff8216908117835542600184018190556040805192835260208301919091527f8ff9974dce33e4e1ab7a866e83b0e492ac88ac9da862750abeadd9ecaa8e2f079101610d2a565b81600b015481600082116110ea5760405162461bcd60e51b815260206004820152601460248201526000805160206138ba8339815191526044820152606401610d76565b806110f58342613879565b10156111315760405162461bcd60e51b815260206004820181905260248201526000805160206138da8339815191526044820152606401610d76565b600a84015460405163ffffffff90911681527f2112314bb5bea9826b281dde0122aa7e040047443aeda3644ece915a52bc9a749060200160405180910390a1505050600a8101805463ffffffff191690556000600b90910155565b816007015481600082116111d05760405162461bcd60e51b815260206004820152601460248201526000805160206138ba8339815191526044820152606401610d76565b806111db8342613879565b10156112175760405162461bcd60e51b815260206004820181905260248201526000805160206138da8339815191526044820152606401610d76565b600684015460405163ffffffff90911681527f7317b9dcf397c30f603d57f6e08fbb4d859fa22db569f87c690387a4df293f2c90602001610fcd565b60068201805463ffffffff191663ffffffff831690811790915542600784018190556040805192835260208301919091527fd78a4fafa70ac62ae37ce48293c7d669b122dd46814022c00ba669bf4b4a386d9101610d2a565b60028201805463ffffffff191663ffffffff831690811790915542600384018190556040805192835260208301919091527f8836f8d92102e8d8a0d420a47760c9b4b54aa1f8e32e5cb171d2d43ab0e673429101610d2a565b600c8201805463ffffffff191663ffffffff831690811790915542600d84018190556040805192835260208301919091527ff42b1e01019c1c4eb06400525a13c78cfac7cae1aaaf16c274af3b22c99759ec9101610d2a565b816003015481600082116113a25760405162461bcd60e51b815260206004820152601460248201526000805160206138ba8339815191526044820152606401610d76565b806113ad8342613879565b10156113e95760405162461bcd60e51b815260206004820181905260248201526000805160206138da8339815191526044820152606401610d76565b600284015460405167ffffffffffffffff90911681527f431c5a8cb6dd33491583c7815a0818c69b7fc8a94783eae61e33aef252fddbd0906020015b60405180910390a150505060028101805467ffffffffffffffff191690556000600390910155565b816007015481600082116114915760405162461bcd60e51b815260206004820152601460248201526000805160206138ba8339815191526044820152606401610d76565b8061149c8342613879565b10156114d85760405162461bcd60e51b815260206004820181905260248201526000805160206138da8339815191526044820152606401610d76565b600684015460405167ffffffffffffffff90911681527fb0656ca1749dc17da2baf729b66edbb523659fb8bed7715f38fcb73279a4dc75906020015b60405180910390a150505060068101805467ffffffffffffffff191690556000600790910155565b600e8201805467ffffffffffffffff191667ffffffffffffffff831690811790915542600f84018190556040805192835260208301919091527f05669005b886e580c79084c73739ba100ab9ae87719fd9d6ef1419fe3789a7c49101610d2a565b815467ffffffffffffffff191667ffffffffffffffff8216908117835542600184018190556040805192835260208301919091527f5c4654b43143b94f29cf4ebad47134b001bcbcb3ef0aef65e694f62cbe46c6a79101610d2a565b81600f0154816000821161163d5760405162461bcd60e51b815260206004820152601460248201526000805160206138ba8339815191526044820152606401610d76565b806116488342613879565b10156116845760405162461bcd60e51b815260206004820181905260248201526000805160206138da8339815191526044820152606401610d76565b600e84015460405167ffffffffffffffff90911681527fa68de01622bc09db684e9a5b7531f86c5d14d8e32d918306520eefdfe6d318f99060200160405180910390a1505050600e8101805467ffffffffffffffff191690556000600f90910155565b6012820180546bffffffffffffffffffffffff19166bffffffffffffffffffffffff831690811790915542601384018190556040805192835260208301919091527f051bc9e9157b1a02972b271cb2f1516019abd23de5be2946013bda0da8ec69b39101610d2a565b816001015481600082116117945760405162461bcd60e51b815260206004820152601460248201526000805160206138ba8339815191526044820152606401610d76565b8061179f8342613879565b10156117db5760405162461bcd60e51b815260206004820181905260248201526000805160206138da8339815191526044820152606401610d76565b835460405173ffffffffffffffffffffffffffffffffffffffff90911681527f7dae230f18360d76a040c81f050aa14eb9d6dc7901b20fc5d855e2a20fe814d19060200160405180910390a15050815473ffffffffffffffffffffffffffffffffffffffff19168255506000600190910155565b816005015481600082116118935760405162461bcd60e51b815260206004820152601460248201526000805160206138ba8339815191526044820152606401610d76565b8061189e8342613879565b10156118da5760405162461bcd60e51b815260206004820181905260248201526000805160206138da8339815191526044820152606401610d76565b600484015460405163ffffffff90911681527f6b20244a647adad8f426a4a4755e2c9a9d89eb50baf894d8df705767243bf9289060200160405180910390a150505060048101805463ffffffff191690556000600590910155565b60068201805463ffffffff191663ffffffff831690811790915542600784018190556040805192835260208301919091527f0ac224e8e596d329f4516bc07dcd1b4194564fad71f3082c9efe928e7ed185409101610d2a565b60048201805467ffffffffffffffff191667ffffffffffffffff831690811790915542600584018190556040805192835260208301919091527f4615b100872b234e1e7ec689a86d1f33f2cfaa24c9da9d698e01e9c098c836989101610d2a565b81600501548160008211611a335760405162461bcd60e51b815260206004820152601460248201526000805160206138ba8339815191526044820152606401610d76565b80611a3e8342613879565b1015611a7a5760405162461bcd60e51b815260206004820181905260248201526000805160206138da8339815191526044820152606401610d76565b600484015460405167ffffffffffffffff90911681527f06968768e0d00c7660b2c1a39a53291dfbfc5ce86a43e0984439c4a2b8c8f749906020015b60405180910390a150505060048101805467ffffffffffffffff191690556000600590910155565b81601301548160008211611b225760405162461bcd60e51b815260206004820152601460248201526000805160206138ba8339815191526044820152606401610d76565b80611b2d8342613879565b1015611b695760405162461bcd60e51b815260206004820181905260248201526000805160206138da8339815191526044820152606401610d76565b60128401546040516bffffffffffffffffffffffff90911681527f6428457bf6936b7ebb53f01d7514e74164f1fafdbced23a1ad42cba6d30aa76c9060200160405180910390a15050506012810180546bffffffffffffffffffffffff191690556000601390910155565b600c8201805461ffff191661ffff831690811790915542600d84018190556040805192835260208301919091527f8aaeb3dcadfd574063a2591d507f5871cb28606696ee47cbb0db63c80dd6974b9101610d2a565b60068201805463ffffffff191663ffffffff831690811790915542600784018190556040805192835260208301919091527f1e08c36903920704be8a6916f280b4e867d922211e9803ff04e2aced9d265f739101610d2a565b81600d01548160008211611cc65760405162461bcd60e51b815260206004820152601460248201526000805160206138ba8339815191526044820152606401610d76565b80611cd18342613879565b1015611d0d5760405162461bcd60e51b815260206004820181905260248201526000805160206138da8339815191526044820152606401610d76565b600c84015460405163ffffffff90911681527fc9423cbcc9a99687becedc8906909fd9a1c22c3eaf424a83aeddec2474376080906020015b60405180910390a1505050600c8101805463ffffffff191690556000600d90910155565b60028201805467ffffffffffffffff191667ffffffffffffffff831690811790915542600384018190556040805192835260208301919091527f6b06983d319f78d0c731c9766ae9c8fb3748dc2d23b08c2f1f5bd6fb5198e7bf9101610d2a565b81601501548160008211611e0e5760405162461bcd60e51b815260206004820152601460248201526000805160206138ba8339815191526044820152606401610d76565b80611e198342613879565b1015611e555760405162461bcd60e51b815260206004820181905260248201526000805160206138da8339815191526044820152606401610d76565b601484015460405163ffffffff90911681527fd5f2efb331273142b812e89753d20e94c3be338de4584536ce726ea597eaab5e9060200160405180910390a150505060148101805463ffffffff191690556000601590910155565b815467ffffffffffffffff191667ffffffffffffffff8216908117835542600184018190556040805192835260208301919091527fac954c09b0344aca418aa0861fc390a93715bdff0854aca190fd8772dc57fe979101610d2a565b81600301548160008211611f505760405162461bcd60e51b815260206004820152601460248201526000805160206138ba8339815191526044820152606401610d76565b80611f5b8342613879565b1015611f975760405162461bcd60e51b815260206004820181905260248201526000805160206138da8339815191526044820152606401610d76565b600284015460405167ffffffffffffffff90911681527f8047149479b5ccc7291a0195ddbfd0fa246d65de18f60087ce39b46bf0c6b14e90602001611425565b600c8201805463ffffffff191663ffffffff831690811790915542600d84018190556040805192835260208301919091527f73b633ecce293f6df47e8252b90ddc40f544d6b85ac39fc0c6333648937b8d0d9101610d2a565b816007015481600082116120745760405162461bcd60e51b815260206004820152601460248201526000805160206138ba8339815191526044820152606401610d76565b8061207f8342613879565b10156120bb5760405162461bcd60e51b815260206004820181905260248201526000805160206138da8339815191526044820152606401610d76565b600684015460405167ffffffffffffffff90911681527f85a94bed431a23877e95ccda9b7ba1da8c6c1ef30b65fa4f78169cc49bffbb2590602001611514565b6004820180546bffffffffffffffffffffffff19166bffffffffffffffffffffffff831690811790915542600584018190556040805192835260208301919091527f7cd6454fd7076905da0e7825499e4dee1be09fd4306c3ed6492c51c618b790d09101610d2a565b6008820180546bffffffffffffffffffffffff19166bffffffffffffffffffffffff831690811790915542600984018190556040805192835260208301919091527fda898177aecf6e0e6a03582800735c18302356777eb588597e06568debd671c69101610d2a565b816011015481600082116122115760405162461bcd60e51b815260206004820152601460248201526000805160206138ba8339815191526044820152606401610d76565b8061221c8342613879565b10156122585760405162461bcd60e51b815260206004820181905260248201526000805160206138da8339815191526044820152606401610d76565b601084015460405163ffffffff90911681527fc876e271e20dc6242d20f4f9c6d66400fc30243e96afafda0e117540e7737d499060200160405180910390a150505060108101805463ffffffff191690556000601190910155565b816001015481600082116122f75760405162461bcd60e51b815260206004820152601460248201526000805160206138ba8339815191526044820152606401610d76565b806123028342613879565b101561233e5760405162461bcd60e51b815260206004820181905260248201526000805160206138da8339815191526044820152606401610d76565b83546040516bffffffffffffffffffffffff90911681527f6cb97f9ca1d18a52ca1c02560b06eb5b13b9f87f853af7d68a897050491a8a2b9060200160405180910390a1505081546bffffffffffffffffffffffff19168255506000600190910155565b815467ffffffffffffffff191667ffffffffffffffff8216908117835542600184018190556040805192835260208301919091527f98dd542d97651b5127b059a1ad4aac35ad3347676545cf3e83392c72354386669101610d2a565b600a8201805467ffffffffffffffff191667ffffffffffffffff831690811790915542600b84018190556040805192835260208301919091527f89613176301fd5b6377b1be0f71609b15f24bf325d740111d87032ae7015ec179101610d2a565b816005015481600082116124a35760405162461bcd60e51b815260206004820152601460248201526000805160206138ba8339815191526044820152606401610d76565b806124ae8342613879565b10156124ea5760405162461bcd60e51b815260206004820181905260248201526000805160206138da8339815191526044820152606401610d76565b600484015460405167ffffffffffffffff90911681527ff643803909ee8491bda68a03c6f70f1f6d1904b2ad38c4811854319c8b3302f090602001611ab6565b60108201805463ffffffff191663ffffffff831690811790915542601184018190556040805192835260208301919091527f6ba501e0661efd372926ad3c39d2a279956a42378bac4adb928fbc8b3464f6a89101610d2a565b60048201805463ffffffff191663ffffffff831690811790915542600584018190556040805192835260208301919091527ff8e7470ad5eef5bc33900ad5e40ef12d1cef35c271ce4273663844d040ab746a9101610d2a565b816009015481600082116126205760405162461bcd60e51b815260206004820152601460248201526000805160206138ba8339815191526044820152606401610d76565b8061262b8342613879565b10156126675760405162461bcd60e51b815260206004820181905260248201526000805160206138da8339815191526044820152606401610d76565b600884015460405163ffffffff90911681527f162c74b20880ac3d251bf644d485058395bde24db9c3c44c0d51cfc724b2760090602001610dfe565b816001015481600082116126e75760405162461bcd60e51b815260206004820152601460248201526000805160206138ba8339815191526044820152606401610d76565b806126f28342613879565b101561272e5760405162461bcd60e51b815260206004820181905260248201526000805160206138da8339815191526044820152606401610d76565b835460405163ffffffff90911681527f0c96a98792be84d818dd96f4167766ce3fbb8fdbfece805d7c2ec87873797b629060200160405180910390a15050815463ffffffff19168255506000600190910155565b600a8201805463ffffffff191663ffffffff831690811790915542600b84018190556040805192835260208301919091527f3251aa19df48dcc8b769af272f88708ab1d1327074c6a8b82b3ac74b57c60cee9101610d2a565b8160050154816000821161281f5760405162461bcd60e51b815260206004820152601460248201526000805160206138ba8339815191526044820152606401610d76565b8061282a8342613879565b10156128665760405162461bcd60e51b815260206004820181905260248201526000805160206138da8339815191526044820152606401610d76565b60048401546040516bffffffffffffffffffffffff90911681527f90e318745caa1bc19c689297db8dcdc340b80fc98a367b85f79f69d5f6cd33259060200160405180910390a15050506004810180546bffffffffffffffffffffffff191690556000600590910155565b816001015481600082116129155760405162461bcd60e51b815260206004820152601460248201526000805160206138ba8339815191526044820152606401610d76565b806129208342613879565b101561295c5760405162461bcd60e51b815260206004820181905260248201526000805160206138da8339815191526044820152606401610d76565b835460405167ffffffffffffffff90911681527f1d4d1bbc7d6e32c8f7c1d6726a92f960b9186357aca96fe09b6285141e045d7690602001610ee6565b81600b015481600082116129dd5760405162461bcd60e51b815260206004820152601460248201526000805160206138ba8339815191526044820152606401610d76565b806129e88342613879565b1015612a245760405162461bcd60e51b815260206004820181905260248201526000805160206138da8339815191526044820152606401610d76565b600a84015460405167ffffffffffffffff90911681527fad6deef5a8c53c425ed14686283dc4ed1c5d76b4067fdec6286554cbabbad1d29060200160405180910390a1505050600a8101805467ffffffffffffffff191690556000600b90910155565b815473ffffffffffffffffffffffffffffffffffffffff191673ffffffffffffffffffffffffffffffffffffffff8216908117835542600184018190556040805192835260208301919091527fa15677023740e8ec73ecc939e3bdef2cb46305d12a01b0719974d6de926fc2069101610d2a565b60028201805467ffffffffffffffff191667ffffffffffffffff831690811790915542600384018190556040805192835260208301919091527f4dd68fd50ad0f7c816ad3c0415fc008aa325ac2ee17bbc2eabd12eee50d6f1989101610d2a565b600a820180546bffffffffffffffffffffffff19166bffffffffffffffffffffffff831690811790915542600b84018190556040805192835260208301919091527f30e88b7e9348603e30dbd420578fe6f4a5e67a6ffeef038dcaee28923ff6b9619101610d2a565b81546bffffffffffffffffffffffff19166bffffffffffffffffffffffff8216908117835542600184018190556040805192835260208301919091527fcbe81098e6ad8611694f6298b3c420591836d2331f9449f1a303d7a44866668f9101610d2a565b81600301548160008211612c6d5760405162461bcd60e51b815260206004820152601460248201526000805160206138ba8339815191526044820152606401610d76565b80612c788342613879565b1015612cb45760405162461bcd60e51b815260206004820181905260248201526000805160206138da8339815191526044820152606401610d76565b600284015460405167ffffffffffffffff90911681527f4d7314643f18dee092360da442c2508d11f8871beaa77cd91458cb11ed26b6b590602001611425565b60148201805463ffffffff191663ffffffff831690811790915542601584018190556040805192835260208301919091527f1e3e367e1ca2a3564ebf5c06be86fad103c210022381b613a5dacdb949ba6bcc9101610d2a565b60048201805467ffffffffffffffff191667ffffffffffffffff831690811790915542600584018190556040805192835260208301919091527fc0994c2dabe9767e3093a9586b16ea2b5eacbd26f96a42fd7e6702f78ddc3d6d9101610d2a565b81600301548160008211612df25760405162461bcd60e51b815260206004820152601460248201526000805160206138ba8339815191526044820152606401610d76565b80612dfd8342613879565b1015612e395760405162461bcd60e51b815260206004820181905260248201526000805160206138da8339815191526044820152606401610d76565b600284015460405163ffffffff90911681527f074922ffd548010bba0e133e7cd83d24dbb64db27909056c8af476b18cb5693d9060200160405180910390a150505060028101805463ffffffff191690556000600390910155565b81600301548160008211612ed85760405162461bcd60e51b815260206004820152601460248201526000805160206138ba8339815191526044820152606401610d76565b80612ee38342613879565b1015612f1f5760405162461bcd60e51b815260206004820181905260248201526000805160206138da8339815191526044820152606401610d76565b600284015460405167ffffffffffffffff90911681527f623bc381cf1ef54b5180b6de0a7250ba8ec89ab4f796b015d72455af7df4459390602001611425565b81600d01548160008211612fa35760405162461bcd60e51b815260206004820152601460248201526000805160206138ba8339815191526044820152606401610d76565b80612fae8342613879565b1015612fea5760405162461bcd60e51b815260206004820181905260248201526000805160206138da8339815191526044820152606401610d76565b600c84015460405161ffff90911681527fdfe388b13220717467df80a8379a14769197f030b2c9a4c36acf508fb5d26f079060200160405180910390a1505050600c8101805461ffff191690556000600d90910155565b81600d015481600082116130855760405162461bcd60e51b815260206004820152601460248201526000805160206138ba8339815191526044820152606401610d76565b806130908342613879565b10156130cc5760405162461bcd60e51b815260206004820181905260248201526000805160206138da8339815191526044820152606401610d76565b600c84015460405163ffffffff90911681527f0e6ee2c03f4f699f8dd8e435f97d5dc9ceca824afb71fb983ca468a88889dbdc90602001611d45565b8160070154816000821161314c5760405162461bcd60e51b815260206004820152601460248201526000805160206138ba8339815191526044820152606401610d76565b806131578342613879565b10156131935760405162461bcd60e51b815260206004820181905260248201526000805160206138da8339815191526044820152606401610d76565b600684015460405163ffffffff90911681527f3d2b4d531beb6eb57d2d34304a003ad98fb742aada113a77016af4bdf26b26b590602001610fcd565b60088201805463ffffffff191663ffffffff831690811790915542600984018190556040805192835260208301919091527fc50143039c2137e4c7179475cecb7dccf691b8ff455c00f407fd3da1b1f6ab3c9101610d2a565b60088201805463ffffffff191663ffffffff831690811790915542600984018190556040805192835260208301919091527ffe7d4ad0e5cf0277caaf534bf0ec3115ef01d705f7cf4e065a326feb8421d13c9101610d2a565b60028201805467ffffffffffffffff191667ffffffffffffffff831690811790915542600384018190556040805192835260208301919091527f13025f95adce3953a5f0dbb6e318930e32a2787978bd142814ddc65880a032cd9101610d2a565b816001015481600082116133265760405162461bcd60e51b815260206004820152601460248201526000805160206138ba8339815191526044820152606401610d76565b806133318342613879565b101561336d5760405162461bcd60e51b815260206004820181905260248201526000805160206138da8339815191526044820152606401610d76565b835460405167ffffffffffffffff90911681527fd075f19fce98166c3a4ee8e0382d570d2b68278b404b8746d1ba0fdccebf1b2c90602001610ee6565b60068201805467ffffffffffffffff191667ffffffffffffffff831690811790915542600784018190556040805192835260208301919091527faadf6e4a31c36f4a2dd040eadea37d00bf52d0fc4812dbb3884318a9929bf7fc9101610d2a565b8160050154816000821161344f5760405162461bcd60e51b815260206004820152601460248201526000805160206138ba8339815191526044820152606401610d76565b8061345a8342613879565b10156134965760405162461bcd60e51b815260206004820181905260248201526000805160206138da8339815191526044820152606401610d76565b600484015460405167ffffffffffffffff90911681527fe48f76476c660a0ae77140cd9a12b6df6104814b9253d10bc7ba8e44104d4a7190602001611ab6565b60048201805467ffffffffffffffff191667ffffffffffffffff831690811790915542600584018190556040805192835260208301919091527f1b156438ae04d51f67f0e6d20500a4ca4eddb90d0a752404a875b8a3aa5a44409101610d2a565b81600b0154816000821161357b5760405162461bcd60e51b815260206004820152601460248201526000805160206138ba8339815191526044820152606401610d76565b806135868342613879565b10156135c25760405162461bcd60e51b815260206004820181905260248201526000805160206138da8339815191526044820152606401610d76565b600a8401546040516bffffffffffffffffffffffff90911681527f3ddfe2be2f00cde428701184bb8836bd21ab2ddd753299cf1cc0d543a71cf6639060200160405180910390a1505050600a810180546bffffffffffffffffffffffff191690556000600b90910155565b816009015481600082116136715760405162461bcd60e51b815260206004820152601460248201526000805160206138ba8339815191526044820152606401610d76565b8061367c8342613879565b10156136b85760405162461bcd60e51b815260206004820181905260248201526000805160206138da8339815191526044820152606401610d76565b60088401546040516bffffffffffffffffffffffff90911681527f3c9259bc1ce37fff96828ea85755c3754f2bbfcd31704d13fe4323d1fc7a2dce9060200160405180910390a15050506008810180546bffffffffffffffffffffffff191690556000600990910155565b803567ffffffffffffffff8116811461373b57600080fd5b919050565b6000806040838503121561375357600080fd5b8235915061376360208401613723565b90509250929050565b6000806040838503121561377f57600080fd5b50508035926020909101359150565b803563ffffffff8116811461373b57600080fd5b600080604083850312156137b557600080fd5b823591506137636020840161378e565b80356bffffffffffffffffffffffff8116811461373b57600080fd5b600080604083850312156137f457600080fd5b82359150613763602084016137c5565b6000806040838503121561381757600080fd5b82359150602083013561ffff8116811461383057600080fd5b809150509250929050565b6000806040838503121561384e57600080fd5b82359150602083013573ffffffffffffffffffffffffffffffffffffffff8116811461383057600080fd5b818103818111156138b3577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b9291505056fe4368616e6765206e6f7420696e69746961746564000000000000000000000000476f7665726e616e63652064656c617920686173206e6f7420656c6170736564a26469706673582212208e4cf910ab3b2ecbee1d9e8afb95c91f2aeb5b29aaa2ee18d11fba4a5fc97cd564736f6c63430008110033",
|